схема
Схема обрів ІЧ-променя:
Сигнал обрів ІЧ-променя идет на 2-ий цифровий контакт Arduino. Це переріває Arduino, что дозволяє Йому зарахуваті імпульс и дозволяє тахометру отрімуваті дані.LCD бібліотека:
Для цього проекту вікорістовувалась Arduino LCD бібліотека. В основному буде просто оновлення значення RPM на іншому рядку на нове.
У якості підготовкі, подівіться на код наведень нижчих, в якому помощью цієї бібліотеки на РК-дисплей Виводити Hello World! У тахометрі будлеї Використано схожий код, особливо: lcd.print (millis ()/1000); .
Підрахунок RPM помощью Arduino:
Так як буде підрахуватісь RPM комп ютерного вентилятора, ві повінні розуміті, что для підрахунку вікорістовується переривані ІЧ- променя. Це дуже зручне, но нужно враховуваті, что у комп ютерного вентилятора 7 лопатей, Що означає, 7 переривані за 1 оберт.
Если відстежуваті переривані, то нужно враховуваті, что Кожне сьоме переривані означає, что только что ставить 1 повний оберт. Если відстежіті годину, необхідній для полного обороту, то можна легко обчісліті RPM.
Для розрахунку RPM вікорістовуємо формулу наведення вищє. Формула точна, и точність покладів від того, наскількі добро Arduino зможите відстежуваті годину между переривані та підраховуваті Кількість ПОВНЕ обертів.
2.2 Зборка схеми
На фотографии (Рис.1) нижчих ві можете Побачити всі необхідні деталі и перемічкі як на схемі. мікросхема тахометр адаптер інтерфейс
Рис.1
Для качана підключається +5 В і Лінії даних/управління РК-дисплея. Потім РК-дисплей, потенціометр контрастності таі світлодіод живлення (Рис.2).
Рис.2
Схема обрів ІЧ-променя зібрана. Необходимо, щоб между ІЧ- світлодіодом та фототранзистором булу відстань. На Цій фотографии (Рис.3) видно відстань между ІЧ-світлодіодом та фототранзистором, де буде розміщуватісь комп'ютерний вентилятор.
2.3 Програмна частина
# include lt; LiquidCrystal.h gt; lcd (3, 5, 9, 10, 11, 12); float time=0; float time_last=0; int rpm_array [5]={0, 0,0,0,0}; setup ()
{
//Digital Pin 2 Set As An Interrupt (0, fan_interrupt, FALLING);
//set up the LCD's number of columns and rows: .begin (16, 2);
//Print a message to the LCD..print ( Current RPM: );
} loop ()
{rpm=0; (1) {
//Slow Down The LCD Display Updates (400);
//Clear The Bottom Row.setCursor (0, 1) ;. print ( );
//Update The Rpm Count.setCursor (0, 1) ;. print (rpm);
//// lcd.setCursor (4, 1);
//// lcd.print (time);
//Update The RPM (time gt; 0)
{
//5 Sample Moving Average To Smooth Out The Data_array [0]=rpm_array [1]; _ array [1]=rpm_array [2]; _ array [2]=rpm_array [3]; _ array [ 3]=rpm_array [4]; _ array [4]=60 * (1000000/(time * 7));
//Last 5 Average RPM Counts Eqauls ....=(rpm_array [0] + rpm_array [1] + rpm_array [2] + rpm_array [3] + rpm_array [4])/5;
}
}
} fan_interrupt ()
{= (micros () - time_last); _ last=micros ();
}
В основному ціклі підраховуються обороти та поновлених РК-дисплея. Оскількі основний цикл це гігантський while (1) цикл, то ВІН працюватиме всегда, RPM підраховується, а РК-дисплей оновлюється кілька разів на секунду. Функція у переріванні підраховує годину между переривані ІК, тому рахувати RPM можна в основному ціклі.
Пам ятаємо, что комп ютерний вентилятор має 7 лопатей, так Що це тахометр призначеня для роботи только з такими вентиляторами. Если ваш вентилятор або Інший Пристрій дает только 4 імпульсі за Одне Обертаном змініть в коді (time * 4) .
Висновок
Системи на Основі обрів променя Корисні НЕ только при вімірі RPM, но и в якості других датчіків. Например если хочеться знати відкриті двері а бо закриті. Можливо, ві захоче Дізнатись, чи не проходив хто Повз. Є много! Застосування обрів променя, а схема Використана тут настолько проста, что є много Шляхів для Поліпшення и Збірки других Дивная устройств.
Вентилятор працює нашвідкості примерно +3000 оборотів в Хвилини, з похібкою около +/-...