Показано с 1 по 7 из 7

Комбинированный просмотр

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

    По умолчанию Re: Цифровой тахометр с LED индикацией

    потенциометр подключить к аналоговому входу , на основе его данных изменять частоту софтового ШИМ.
    Софтовый ШИМ на требуемую частоту можно написать , но на чистом avr cи
    вот тебе код готового частотомера
    PHP код:
    #include <util/delay.h>  

    volatile unsigned int tachBuf;  
    unsigned long tachValue;  

    ISR(TIMER1_CAPT_vect)  
    {   
        
    TCNT1 0;    
        
    tachBuf ICR1+2;  
    }  
    //********************************************************************  
    void setup()      
    {    
       
    pinMode(8INPUT);  //Вход для импульсов спидометра  
       
    pinMode(6OUTPUT);//выход ШИМ  
       
    TCCR0B TCCR0B 0b11111000 5;//частота ШИМ   
       
    analogWrite(6128);  //Запустить ШИМ  
       
    digitalWrite(8HIGH); // включить подтяжку входа  
       
    Serial.begin(115200);  
       
    TIM_Init();//инициализация таймера  
      
    _delay_ms(300);  
    }    
    //********************************************************************  
    void loop()      
    {  
      
    cli();    
      
    tachValue =250000/tachBuf;  
      
    Serial.print("freq=");  
      
    Serial.println(tachValue,DEC);  
      
    tachBuf=1;  
      
    sei();  
      
    _delay_ms(300);  
    }     
    //********************************************************************  
    void TIM_Init(void)  
    {  
       
    TIMSK1=(1<<ICIE1);   
       
    TCCR1A=(0<<COM1A1)|(0<<COM1A0)|(0<<WGM11)|(0<<WGM10);    
       
    TCCR1B=(1<<ICNC1)|(1<<ICES1)|(0<<WGM13)|(0<<WGM12)|(0<<CS12)|(1<<CS11)|(1<<CS10);  
       
    TCNT1 0;                                             

    Последний раз редактировалось Chip; 30.01.2012 в 16:35.

  2. #2
    Новичок
    Регистрация
    28.01.2012
    Возраст
    38
    Сообщений
    13
    Вес репутации
    169

    По умолчанию Re: Цифровой тахометр с LED индикацией

    Цитата Сообщение от Chip Посмотреть сообщение
    потенциометр подключить к аналоговому входу , на основе его данных изменять частоту софтового ШИМ.
    Софтовый ШИМ на требуемую частоту можно написать , но на чистом avr cи
    вот тебе код готового частотомера

    1) Что значит, на чистом Си ? Всмысле написать в avr studio для данного МК (которое используется в моём Arduino), скомпилировать, и подключить в начале Кода как Delay.h ? Или написать на си в Arduino IDE как подпрограмму?

    2)Скетч для вывода на LCD ? (как я понял) (требует детального разбора, и правки под нужный диапазон частот?)

    3)Одновременная многозадачность :

    Вообщем эта ардуинка будет выполнять несколько функций :

    1) В приборную панель Nissan Note планируется изготовить подложку с светодиодами:
    1.1 По шкале тахометра, от 0 до 6000 об/мин будут полукругом распологатся SMD светодиоды. Цель : Когда стрелка будет подыматся в направлении от 0 до 6000, постепенно друг, за другом будут загоратся светодиоды (шкала тахометра не подсвечмвается, стрелоска подсвечивается)
    1.2 Тоже самое со спидометром (тут всё намного сложнее, даже идей нет как реализвовать, дело в том что датчика скорости на данном автомобиле нет, скорость вычисляется от ABS, который передаёт данные на ECM по CAN шине, как с неё считать скорость ума не приложу)
    1.3 Тоже и для шкалы уровня топлива
    1.4 Индикатор отсечки по показаниям тахометра, smd белого цвета начинающий моргать когда достигаются определёные обороты двигателя
    1.5 Цвет свечения стрелочек плавно изменяется в зависимости от скорости, тахометра, показателя уровня топлива соответственно

    Вообщем планы Бонопардовские, а знания почти нулевые.....

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

    По умолчанию Re: Цифровой тахометр с LED индикацией

    1-Уже выложил пример выше, можно через Serial monitor отправлять значения для изменения частоты
    2-смотря что за LCD
    3-Ранее выложенный скетч частотомера работает в фоновом режиме.
    Последний раз редактировалось Chip; 30.01.2012 в 18:42.

  4. #4
    Новичок
    Регистрация
    28.01.2012
    Возраст
    38
    Сообщений
    13
    Вес репутации
    169

    По умолчанию Re: Цифровой тахометр с LED индикацией

    Цитата Сообщение от Chip Посмотреть сообщение
    1-Уже выложил пример выше, можно через Serial monitor отправлять значения для изменения частоты
    2-смотря что за LCD
    3-Ранее выложенный скетч частотомера работает в фоновом режиме.
    1.Спасибо, долго писал сообщение, поэтому не увидел

    2. Про LCD я напутал ввиду своей "чайниковости" подумал что :
    "void loop()
    {
    cli();
    tachValue =250000/tachBuf;
    Serial.print("freq=");
    Serial.println(tachValue,DEC);
    tachBuf=1;
    sei();
    _delay_ms(300);
    } "

    Что то связаное с LCD

    Ну нету знаний пока, нету...

    3.Где то ранее читал, что использование функции delay тормозит выполнение всех функций на заданное время....

    Извините если чушь какую то несу.... надо еще много учится.... Может дадите пару ссылок, почитать про многозадачность и Arduino, желательно с примерами....

    За скетчи большое, спасибо буду в них разбиратся ))

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

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

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

Ваши права

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