Съдържание:

Измерване на скоростта на двигателя с помощта на Arduino: 6 стъпки
Измерване на скоростта на двигателя с помощта на Arduino: 6 стъпки

Видео: Измерване на скоростта на двигателя с помощта на Arduino: 6 стъпки

Видео: Измерване на скоростта на двигателя с помощта на Arduino: 6 стъпки
Видео: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Ноември
Anonim
Измерване на скоростта на двигателя с помощта на Arduino
Измерване на скоростта на двигателя с помощта на Arduino
Измерване на скоростта на двигателя с помощта на Arduino
Измерване на скоростта на двигателя с помощта на Arduino
Измерване на скоростта на двигателя с помощта на Arduino
Измерване на скоростта на двигателя с помощта на Arduino

Трудно ли е да се измери оборотите на двигателя ??? Не мисля така. Ето едно просто решение.

Само един IR сензор и Arduino във вашия комплект могат да го направят.

В този пост ще дам прост урок, обясняващ как да се измерват оборотите на всеки двигател с помощта на IR сензор и Arduino UNO/nano

Консумативи:

1. Arduion uno (Amazon) / Arduion nano (Amazon)

2. IR сензор (Amazon)

3. DC мотор всякакъв (Amazon)

4. LCD 16*2 (Amazon)

Използвани инструменти

1. Поялник (Amazon)

2. Машина за сваляне на тел (Amazon)

Стъпка 1: Стъпка: 1 Осигурете работно състояние на сензорите и устройствата

Какво е IR сензор? IR сензорът е електронно устройство, което излъчва светлината, за да усети някакъв обект от околността. IR сензор може да измерва топлината на обект, както и да открива движението. Обикновено в инфрачервения спектър всички обекти излъчват някаква форма на топлинно излъчване. Тези видове излъчвания са невидими за очите ни, но инфрачервеният сензор може да открие тези излъчвания.

Двигател с постоянен ток (DC) е вид електрическа машина, която преобразува електрическата енергия в механична. Двигателите с постоянен ток приемат електрическа енергия чрез постоянен ток и преобразуват тази енергия в механично въртене.

Двигателите с постоянен ток използват магнитни полета, които възникват от генерираните електрически токове, които захранват движението на ротор, фиксиран в изходния вал. Изходният въртящ момент и скоростта зависят както от електрическия вход, така и от конструкцията на двигателя.

Какво е Arduino?

Arduino е електронна платформа с отворен код, базирана на лесен за използване хардуер и софтуер. Платките Arduino могат да четат входове - светлина върху сензор, пръст върху бутон или съобщение в Twitter - и да го превърнат в изход - активиране на мотор, включване на светодиод, публикуване на нещо онлайн. Можете да кажете на дъската си какво да прави, като изпратите набор от инструкции към микроконтролера на дъската. За целта използвате езика за програмиране Arduino (базиран на Wiring) и софтуера Arduino (IDE), базиран на Processing.

Изтеглете ARDUINO IDE

Стъпка 2: Как работи?

Каква е логиката зад това ??

Работи много подобно на енкодера. Енкодерите са трудно разбираеми за начинаещи. Всичко, което трябва да знаете, е, че IR сензорът генерира импулс и ние откриваме интервала от време между всеки импулс.

В този случай инфрачервеният сензор ще изпрати импулс към Arduino, когато инфрачервеният му лъч бъде засечен с витла на двигатели. Обикновено използваме витла с две лопатки, но аз съм използвал витло с три лопатки, както е показано на фигурата. в зависимост от броя на лопатките на витлото трябва да променим някои стойности, докато изчисляваме оборотите.

нека помислим, че имаме витло, което има две лопатки. За всеки оборотен мотор острието ще прихваща IR лъча два пъти. По този начин IR сензорът ще генерира импулси при всяко прехващане.

Сега трябва да напишем програма, която може да измери броя импулси, произведени от IR сензора в определен интервал от време.

Има повече от един начин за решаване на проблем, но трябва да изберем кой е най -добрият в тези кодове Измерил съм продължителността между прекъсванията (IR сензор) Използвах функции micros () за измерване на продължителността на импулсите в микро секунди.

можете да използвате тази формула за измерване на RPMRPM = ((1/продължителност)*1000*1000*60)/лопатки

където, продължителност - интервал от време между импулсите.

60 - секунди до минути

1000 - мелница за сек

1000 - микро до мелница

остриета - няма крила в перката.

LCD дисплей - Arduino актуализира регистрите за команди и данни на LCD дисплея. Което показва ASCII символите на LCD дисплея.

Стъпка 3: Програмирайте вашия Arduino с помощта на Arduino IDE

#включва

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR сензор INPUT неподписан дълъг prevmicros; // За съхранение на време без знак без продължителност; // За съхраняване на времева разлика unsigned long lcdrefresh; // За съхранение на време за lcd за опресняване на int rpm; // RPM стойност boolean currentstate; // Текущо състояние на булево сканиране на сканиране на IR вход; // Състояние на IR сензора в предишната настройка за пусто сканиране () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////////// //////////////////////////////////////// RPM Измерване currentstate = digitalRead (IR_IN); // Прочетете състоянието на IR сензора if (prevstate! = Currentstate) // Ако има промяна във входа {if (currentstate == LOW) // Ако входът се променя само от HIGH на LOW {duration = (micros () - prevmicros); // Времева разлика между оборотите в микросекунди rpm = ((60000000/продължителност)/3); // об/ мин = (1/ мили мили)*1000*1000*60; prevmicros = micros (); // запаметяване на времето за изчисляване на оборота на nect}} prevstate = currentstate; // съхранява тези данни за сканиране (предишно сканиране) за следващо сканиране /////////////////////////////////////// /////////////////////////////////////////////////// LCD дисплей, ако ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Скорост на двигателя"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Стъпка 4: Симулация с помощта на Proteus

Симулация с помощта на Proteus
Симулация с помощта на Proteus

Този проект работи перфектно, когато се опитах да симулирам това с помощта на proteus.

Вместо да използвам IR сензор, използвах генератор на DC импулси, който ще симулира IR импулса, подобен на генерирания, когато инфрачервените лъчи ударят лопатките на витлата.

трябва да направите промени в програмата си в зависимост от сензора, който използвате

IR сензорът с LM358 трябва да използва тази команда.

if (currentstate == HIGH) // Ако входът се променя само от LOW на HIGH

IR сензорът с LM359 трябва да използва тази команда.

if (currentstate == LOW) // Ако входът се променя само от HIGH на LOW

Стъпка 5: Изпълнение на хардуера

Хардуерно изпълнение
Хардуерно изпълнение
Хардуерно изпълнение
Хардуерно изпълнение
Хардуерно изпълнение
Хардуерно изпълнение

За схематично използване на симулационните снимки или направете справка с програмните кодове и направете съответните връзки. Качете програмния код в Arduino и измерете оборотите на всеки двигател. Очаквайте следващата ми публикация и гледайте канала ми в YouTube.

Препоръчано: