Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 14
  1. #1
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Указатели ТОЖ и УТ на ардуино.

    Пытаюсь внедрить панель приборов от другого автомобиля в свой.
    В процессе испытаний выяснилось несоответствие показаний датчика температуры охлаждающей жидкости и датчика уровня топлива. В этой панели индикаторы ТОЖ и УТ сделаны на логометрах, которыми управляет микроконтроллер ШИМ-ом через мосфеты. Решил передать функцию управления логометрами своему контроллеру на ардуино. Он же управляет светодиодом недостаточного уровня топлива.
    Все вроде как работает, и с ТОЖ видимых проблем нет, а вот стрелка уровня топлива постоянно скачет вместе с плесканием топлива в баке.
    Понятно что надо сделать сглаживание, но знаний и умений не хватает.
    На сколько я понимаю нужно делать несколько измерений в течение определенного времени, складывать их результаты и делить на количество измерений. Помогите написать такой скетч. Может у кого есть готовый алгоритм?

    Вот то что пока есть:
    PHP код:
    int sensePin 0;
    int ledPin 6;
    int sensePin2 2;
    int ledPin2 5;
    int dut 8;
     
    void setup()
    {
      
    TCCR0B TCCR0B 0b11111000 2;
      
    pinMode(ledPinOUTPUT);
      
    pinMode(ledPin2OUTPUT);
      
    pinMode(dutOUTPUT);
      
    int dut LOW;
    }
    void loop()
    {
      
    int val analogRead(sensePin);
      
    val constrain(val45540);
      
    int val2 analogRead(sensePin2);
      
    val2 constrain(val2150988);
      
    int ledLevel map(val455400200);
      
    int ledLevel2 map(val215098830230);
      
    analogWrite(ledPinledLevel);
      
    analogWrite(ledPin2ledLevel2);
      if (
    val 435)
     {
      
    digitalWrite(dutHIGH);
     }
      else
     {
      
    digitalWrite(dutLOW);
      } 
     } 

  2. #2
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Количество замеров можно увеличивать
    Смотри пример:
    PHP код:
    val analogRead(sensePin);
    delay(100);
    val val+analogRead(sensePin);
    delay(100);
    val val+analogRead(sensePin);
    val=val/3

  3. #3
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    То есть если я хочу делать скажем 10 измерений нужно 9 раз повторить операцию:
    delay(100);
    val = val+analogRead(sensePin);

    и потом разделить val на 10?

    А покороче это нельзя записать как нибудь? В виде цикла

  4. #4
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Лучше конечно сделать вычисление циклом

  5. #5
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Вот так нормально?
    PHP код:
    int val analogRead(sensePin); 
    val constrain(val45540); 

    int var = 1
    if (var < 
    10)
    {
        
    delay(100); 
        
    val val+analogRead(sensePin); 
         var++;
    }
    val=val/10;

    int ledLevel map(val455400200);
    analogWrite(ledPinledLevel); 

  6. #6
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Я бы использовал цикл FOR, но и так тоже можно

  7. #7
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Спасибо большое
    В воскресенье попробую на машине

  8. #8
    Администратор Аватар для Chip
    Регистрация
    08.06.2007
    Возраст
    54
    Сообщений
    13,379
    Вес репутации
    10

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    У тебя ошибка в скетче
    Var перед IF всегда будет равен единице

  9. #9
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    а как правильно написать? так лучше?

    PHP код:
    int val analogRead(sensePin);  
    val constrain(val45540); 
    for (
    int var=0; var < 10; var++)
    {
        
    delay(100);  
        
    val val+analogRead(sensePin);
    }
    val=val/10
    int ledLevel map(val455400200); 
    analogWrite(ledPinledLevel); 
    Последний раз редактировалось ma1ex; 14.05.2012 в 12:22.

  10. #10
    Пользователь
    Регистрация
    18.04.2012
    Сообщений
    26
    Вес репутации
    154

    По умолчанию Re: Указатели ТОЖ и УТ на ардуино.

    Проверил, при 10 измерениях все равно скачет, а вот при 100 уже нет, так пока и оставил

Страница 1 из 2 12 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •