Мазмұны:

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/нано көмегімен кез келген қозғалтқыштың айналу жиілігін өлшеуді түсіндіретін қарапайым оқулық беремін.

Жабдықтар:

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

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

3. Кез келген тұрақты ток қозғалтқышы (Amazon)

4. СКД 16*2 (Amazon)

Қолданылатын құралдар

1. Пісіру үтігі (Амазонка)

2. Сым тартқыш (Amazon)

1 -қадам: Қадам: 1 Датчиктер мен құрылғылардың жұмыс жағдайын қамтамасыз етіңіз

ИҚ сенсоры - бұл қоршаған ортаның кейбір объектілерін сезіну үшін жарық шығаратын электронды құрылғы. IR сенсоры объектінің жылуын өлшей алады, сонымен қатар қозғалысты анықтайды. Әдетте инфрақызыл спектрде барлық объектілер жылулық сәулеленудің қандай да бір түрін шығарады. Сәулеленудің бұл түрлері біздің көзімізге көрінбейді, бірақ инфрақызыл сенсор бұл сәулелерді анықтай алады.

Тұрақты ток қозғалтқышы дегеніміз не? Тұрақты ток қозғалтқышы - электр энергиясын механикалық энергияға түрлендіретін электр машинасының түрі. Тұрақты ток қозғалтқыштары электр энергиясын тұрақты ток арқылы алады және бұл энергияны механикалық айналуға айналдырады.

Тұрақты ток қозғалтқыштары шығатын білікке бекітілген ротордың қозғалысын қамтамасыз ететін электр тогынан пайда болатын магнит өрістерін пайдаланады. Шығу моменті мен жылдамдығы электрлік кіріс пен қозғалтқыштың дизайнына байланысты.

Arduino дегеніміз не?

Arduino-бұл ашық аппараттық құралдар мен бағдарламалық жасақтамаға негізделген ашық электронды платформа. Arduino тақталары кірістерді оқи алады - сенсордағы жарық, түймедегі саусақ немесе Twitter хабарламасы - және оны шығысқа айналдырады - қозғалтқышты қосады, жарық диодты қосады, желіде бір нәрсе жариялайды. Сіз тақтаға микроконтроллерге нұсқаулар жиынтығын жіберу арқылы не істеу керектігін айта аласыз. Ол үшін сіз Arduino бағдарламалау тілін (сымға негізделген) және өңдеуге негізделген Arduino бағдарламалық жасақтамасын (IDE) қолданасыз.

ARDUINO IDE жүктеп алыңыз

2 -қадам: Бұл қалай жұмыс істейді?

Сонымен мұның астарында қандай логика жатыр?

Ол кодерге ұқсас жұмыс істейді. Жаңадан бастағандар үшін кодерлерді түсіну қиын. Сізге тек ИҚ сенсоры импульсті тудырады, біз әр импульстің арасындағы уақыт аралығын білеміз.

Бұл жағдайда инфрақызыл сенсор Arduino -ға импульсті жібереді, егер оның инфрақызыл сәулесі қозғалтқыш пропеллерімен ұсталса. Әдетте біз екі жүзі бар бұрандаларды қолданамыз, бірақ мен суретте көрсетілгендей үш жүзі бар винтті қолдандым. винт қалақтарының санына байланысты RPM есептеу кезінде кейбір мәндерді өзгертуіміз қажет.

бізде екі жүзі бар пропеллер бар деп есептейік. Әрбір қозғалтқыш үшін пышақ инфрақызыл сәулені екі рет ұстайды. Осылайша, ИҚ сенсоры ұстау кезінде импульсті шығарады.

Енді біз белгілі бір уақыт аралығында ИҚ сенсоры шығаратын импульс санын өлшейтін бағдарлама жазуымыз керек.

Мәселені шешудің бірнеше әдісі бар, бірақ біз осы кодтардың қайсысы жақсы екенін таңдауымыз керек, мен үзіліс арасындағы ұзақтығын өлшедім (IR сенсоры) Мен микро секундтарда импульстердің ұзақтығын өлшеу үшін micros () функцияларын қолдандым.

Сіз бұл формуланы RPMRPM = ((1/ұзақтығы)*1000*1000*60)/пышақтарды өлшеу үшін пайдалана аласыз

мұнда, ұзақтығы - импульстар арасындағы уақыт аралығы.

60 - секундтан минутқа дейін

1000 - секундына диірмен

1000 - диірменге дейін

пышақтар - бұранда қанаттар жоқ.

LCD дисплейі - Arduino СКД дисплейінің командалары мен деректер регистрлерін жаңартады. СКД дисплейде ASCII таңбаларын көрсетеді.

3 -қадам: Arduino IDE көмегімен Arduino бағдарламалау

#қосу

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR сенсоры INPUT белгісіз ұзақ превмикрос; // Қол қойылмаған ұзақ уақытты сақтау үшін; // Уақыт айырмашылығын сақтау үшін белгісіз ұзақ lcdrefresh; // int rpm жаңарту үшін lcd уақытты сақтау үшін; // RPM мәні логикалық ағымдағы күй; // IR кіріс сканерлеуінің ағымдағы жағдайы логикалық prevstate; // ИҚ сенсорының күйі алдыңғы сканерлеудің жарамсыз күйін орнатуда () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LOW; } жарамсыз цикл () {///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// йынакленым. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////. // IR сенсорының күйін оқыңыз, егер (prevstate! = Currentstate) // Егер кірісте өзгеріс болса {if (currentstate == LOW) // Егер енгізу тек HIGH -дан LOW -ге өзгерсе {ұзақтығы = (micros () - prevmicros); // Микросекунд/мин айналу арасындағы уақыт айырмашылығы = ((60000000/ұзақтығы)/3); // айн/ мин = (1/ уақыт миллисі)*1000*1000*60; prevmicros = micros (); // түйіннің айналуын есептеу үшін сақтау уақыты}} prevstate = currentstate; // келесі сканерлеу үшін осы сканерлеу (алдын ала қарап шығу) деректерін сақтау ///////////////////////////////////// СКД дисплей, егер // ((миллис ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print («Қозғалтқыш жылдамдығы»); lcd.setCursor (0, 1); lcd.print («RPM =»); lcd.print (айн / мин); lcdrefresh = millis (); }}

4 -қадам: Proteus көмегімен модельдеу

Proteus көмегімен модельдеу
Proteus көмегімен модельдеу

Мен протеус көмегімен оны модельдеуге тырысқанда, бұл жоба өте жақсы жұмыс істеді.

ИК сенсорды пайдаланудың орнына мен тұрақты импульстік генераторды қолдандым.

Сіз қолданатын сенсорға байланысты бағдарламаға өзгерістер енгізуіңіз керек

LM358 бар IR сенсоры бұл пәрменді қолдануы керек.

if (currentstate == HIGH) // Егер енгізу тек LOW -дан HIGH -ға ауысса

LM359 бар IR сенсоры бұл пәрменді қолдануы керек.

if (currentstate == LOW) // Егер енгізу тек HIGH -дан LOW -ге өзгерсе

5 -қадам: Жабдықтың орындалуы

Аппаратты орындау
Аппаратты орындау
Аппаратты орындау
Аппаратты орындау
Аппаратты орындау
Аппаратты орындау

Схемалық түрде модельдеу суреттерін қолданыңыз немесе бағдарлама кодтарына сілтеме жасаңыз және соған сәйкес қосылым жасаңыз. Бағдарлама кодын Arduino -ға жүктеңіз және кез келген қозғалтқыштың айналу жиілігін өлшеңіз. Менің келесі жазбамды күтіңіз және менің YouTube каналымды қараңыз.

Ұсынылған: