Страница 1 из 6 123456 ПоследняяПоследняя
Показано с 1 по 10 из 58
  1. #1
    Новичок
    Регистрация
    05.09.2011
    Возраст
    32
    Сообщений
    9
    Вес репутации
    165

    По умолчанию Тахометр на БСЗ

    Прива всем, имеется авто, карбюратор, с бесконтактной системой зажигания.
    Подключаю ардуино к датчику холла, хочу сделать тахометр... ну и вобщем то не работает))) может ктонить сможет мне помочь? спасибо)

    вот код:
    PHP код:
    //Reads the State of a Pot and displays on screen

    int potPin 1;
    int Old 0;
    int Now 0;
    long time 0;
    int count 0;

    void setup()
    {

      
    pinMode(potPinINPUT);  
      
    Serial.begin(9600); 
      
    Old analogRead(potPin);
      
    time millis();
    }

    void loop()
    {

      
    Now analogRead(potPin);
      if (
    abs(Now Old) >= 400)
      {
      
        
    Old Now;
        
    count++;
        if (
    count 50)
        {
          
    //замеряем время за 50 импульсов и все это переводим в обороты в минуту
          
    Serial.println(3000000/((millis() - time)*2)); 
          
    count 0;
          
    time millis();
        }
      }  

    Последний раз редактировалось Chip; 05.09.2011 в 21:47.

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

    По умолчанию Re: Тахометр на БСЗ

    Аналоговый вход зачем используешь?
    1-Переконфигурируй этот порт на цифровой.
    2-Ты не получишь 50 имульсов, длительность импульса на низких оборотах может составлять десятки миллисекунд . В итоге ты один импульс считаешь большое количество раз.

  3. #3
    Новичок
    Регистрация
    05.09.2011
    Возраст
    32
    Сообщений
    9
    Вес репутации
    165

    По умолчанию Re: Тахометр на БСЗ

    Chip, спс что откликнулся)
    Аналоговый вход.... не знаю зачем использую, счас попробую цифровой)
    по поводу импульсов... устройство именно так себя и веет, т.е. ставишь считывать хоть 2 импульса хоть 20000 оно это мгновенно считывает(((( хотя я же вроде сделал проверку чтобы считывал тока када смена импульса идет.....
    И как тогда быть?!? вообще чтоли не получится сделать?(((((((

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

    По умолчанию Re: Тахометр на БСЗ

    Получится, только нужно ждать окончания положительного импульса, только потом проверять наличие нового импульса

  5. #5
    Новичок
    Регистрация
    05.09.2011
    Возраст
    32
    Сообщений
    9
    Вес репутации
    165

    По умолчанию Re: Тахометр на БСЗ

    подключил к цифровому каналу, терь ваще ляпота - показывает 0 када искры нет, 1 када искра есть....
    осталось 2 проблемы:
    1) (millis() - time) возвращает всегда разные значения, от 0 до 40... почему может быть такая нестабильность?!?
    2) не могу перевести это все дело в об\мин
    может кто сможет подсказать чтонить?!? спасибо)

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

    По умолчанию Re: Тахометр на БСЗ

    Выложи свой скетч, я посмотрю в чем проблема

  7. #7
    Пользователь
    Регистрация
    01.11.2010
    Возраст
    42
    Сообщений
    57
    Вес репутации
    185

    По умолчанию Re: Тахометр на БСЗ

    А можно узнать как Arduino подключить к датчику Холла?
    Хочу поставить тахометр на скутер, там есть датчик положения коленвала, предполагаю что что он и есть датчик Холла, как лучше к нему подключиться, чтобы не нарушить цепь

    зы. Электрическая схема скутера: http://www.let-s.ru/letsdoc/el_shema_lets.pdf
    Последний раз редактировалось sirik; 07.09.2011 в 15:29.

  8. #8
    Новичок
    Регистрация
    05.09.2011
    Возраст
    32
    Сообщений
    9
    Вес репутации
    165

    По умолчанию Re: Тахометр на БСЗ

    sirik, мне кажетсо что у тебя там нет датчика холла... возможно датчик положения коленвала изменяет свое сопротивление в зависимости от положениеколенвала)
    а подключать просто - к одному контакту цепляешь свой проводок для ардуино, и провод который к камутатору идет)
    кстати... я так понял у тебя там карб стоит-> есть подсос, который надо в зависимости от температуры дергать.... я вот счас как раз упражняюсь чтобы застравить ардуино дергать воздушную заслонку про прогреве=)



    Chip, скетч:
    PHP код:
    int potPin 6// Порт для провода от датчика холла
    int Old 0// старое значение сигнала с датчика
    int Now 0;// последнее значение сигнала с датчика
    long time 0// для сохранения времени начала счета импульсов
    int count 0// колличество импльсов

    void setup()
    {

      
    pinMode(potPinINPUT);  
      
    Serial.begin(9600); 
      
    Old digitalRead(potPin); 
      
    time millis();
    }

    void loop()
    {

      
    Now digitalRead(potPin); // обновляем значение сигнала
      
    if (Now != Old// если значение сменилось
      
    {
        
    Old Now// запоминаем новое значени сигнала
        
    count++; // считаем колличество сигналов
        
    if (count 100// хотим пощитать 50 импульсов(25 оборотов), значит сигнал сменится 100 раз 
        
    {
          
    //замеряем время за 50 импульсов и все это переводим в обороты в минуту
          
    Serial.println(150000/(millis() - time)); // переводим полученный результат в обороты в минуту
          
    count 0// сбрасываем счетчик
          
    time millis(); // начинаем новый счет времени
        
    }
      }  

    Последний раз редактировалось Chip; 07.09.2011 в 22:18.

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

    По умолчанию Re: Тахометр на БСЗ

    Попробуй подправленный скетч
    Почему 150000 делишь?
    PHP код:
    int potPin 6// Порт для провода от датчика холла 
    int Old 0// старое значение сигнала с датчика 
    int Now 0;// последнее значение сигнала с датчика 
    long time 0// для сохранения времени начала счета импульсов 
    int count 0// колличество импльсов 

    void setup() 


      
    pinMode(potPinINPUT);   
      
    Serial.begin(9600);  
      
    Old digitalRead(potPin);  
      
    time millis(); 


    void loop() 


      
    Now digitalRead(potPin); // обновляем значение сигнала 
      
    if (Now != Old// если значение сменилось 
      

        
    Old Now// запоминаем новое значени сигнала 
        
    count++; // считаем колличество сигналов 
        
    if (count == 100// хотим пощитать 50 импульсов(25 оборотов), значит сигнал сменится 100 раз  
        

          
    //замеряем время за 50 импульсов и все это переводим в обороты в минуту 
          
    Serial.println(150000/(millis() - time)); // переводим полученный результат в обороты в минуту 
          
    count 0// сбрасываем счетчик 
          
    time millis(); // начинаем новый счет времени 
        

      }   

    Последний раз редактировалось Chip; 08.09.2011 в 00:04.

  10. #10
    Пользователь
    Регистрация
    01.11.2010
    Возраст
    42
    Сообщений
    57
    Вес репутации
    185

    По умолчанию Re: Тахометр на БСЗ

    2 Rembo2743: датчик Холла точно есть, попробую подключить как ты объяснил
    насчет подсоса: он автоматически работает при заводе скутера: чем холоднее на улице, тем дольше он работает

    и еще вопрос: допустим пришло всего 90 импульсов, тогда тахометр не выдаст ничего, имхо надо по времени ориентироваться. например раз в полсекунды выдавать на гора кол импульсов
    Последний раз редактировалось sirik; 08.09.2011 в 17:23.

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

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

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

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

Ваши права

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