Përmbajtje:

Matja e shpejtësisë motorike duke përdorur Arduino: 6 hapa
Matja e shpejtësisë motorike duke përdorur Arduino: 6 hapa

Video: Matja e shpejtësisë motorike duke përdorur Arduino: 6 hapa

Video: Matja e shpejtësisë motorike duke përdorur Arduino: 6 hapa
Video: Использование драйвера шагового двигателя L298N Для управления 4-проводным шаговым двигателем 2024, Nëntor
Anonim
Matja e shpejtësisë motorike duke përdorur Arduino
Matja e shpejtësisë motorike duke përdorur Arduino
Matja e shpejtësisë motorike duke përdorur Arduino
Matja e shpejtësisë motorike duke përdorur Arduino
Matja e shpejtësisë motorike duke përdorur Arduino
Matja e shpejtësisë motorike duke përdorur Arduino

A është e vështirë të matësh rpm të motorit ??? Unë nuk mendoj kështu. Këtu është një zgjidhje e thjeshtë.

Vetëm një sensor IR dhe Arduino në kompletin tuaj mund ta bëjnë këtë.

Në këtë postim do të jap një mësim të thjeshtë që shpjegon se si të matni RPM të çdo motori duke përdorur sensorin IR dhe Arduino UNO/nano

Furnizimet:

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

2. Sensori IR (Amazon)

3. Motori DC çdo (Amazon)

4. LCD 16*2 (Amazon)

Mjetet e Përdorura

1. Hekuri i saldimit (Amazon)

2. Zhveshës me tela (Amazon)

Hapi 1: Hapi: 1 Siguroni Kushtet e Punës të Sensorëve dhe Pajisjeve

Çfarë është një Sensor IR? Sensori IR është një pajisje elektronike, që lëshon dritë në mënyrë që të ndiejë ndonjë objekt të rrethinës. Një sensor IR mund të masë nxehtësinë e një objekti, si dhe zbulon lëvizjen. Zakonisht, në spektrin infra të kuqe, të gjithë objektet rrezatojnë një lloj rrezatimi termik. Këto lloj rrezatimesh janë të padukshme për sytë tanë, por sensori me rreze infra të kuqe mund t'i zbulojë këto rrezatime.

Çfarë është një motor DC? Një motor me rrymë direkte (DC) është një lloj makine elektrike që konverton energjinë elektrike në energji mekanike. Motorët DC marrin energji elektrike përmes rrymës direkte dhe e shndërrojnë këtë energji në rrotullim mekanik.

Motorët DC përdorin fusha magnetike që ndodhin nga rrymat elektrike të krijuara, të cilat fuqizojnë lëvizjen e një rotori të fiksuar brenda boshtit të daljes. Çift rrotullues dhe shpejtësia e daljes varet nga hyrja elektrike dhe dizajni i motorit.

Çfarë është Arduino?

Arduino është një platformë elektronike me burim të hapur e bazuar në pajisje dhe softuer të lehtë për t’u përdorur. Tabelat Arduino janë në gjendje të lexojnë hyrje - dritë në një sensor, një gisht në një buton ose një mesazh në Twitter - dhe ta kthejnë atë në një dalje - duke aktivizuar një motor, duke ndezur një LED, duke publikuar diçka në internet. Ju mund t'i tregoni bordit tuaj se çfarë të bëni duke dërguar një sërë udhëzimesh te mikrokontrolluesi në tabelë. Për ta bërë këtë, përdorni gjuhën e programimit Arduino (bazuar në Wiring) dhe Arduino Software (IDE), bazuar në Përpunimin.

Shkarkoni ARDUINO IDE

Hapi 2: Si funksionon?

Pra cila është logjika pas kësaj ??

Punon shumë ngjashëm me kodifikuesin. Kodifikuesit janë të vështirë të kuptohen për fillestarët. E tëra çfarë ju duhet të dini është se sensori IR gjeneron puls dhe ne po zbulojmë intervalin kohor midis secilit impuls.

Në këtë rast sensori IR do të dërgojë një puls në Arduino kur ndonjëherë rrezja IR e tij të kapet me helika motorësh. Normalisht ne përdorim helikë me dy tehe, por unë kam përdorur helikë me tre tehe siç tregohet në figurë. në varësi të numrit të teheve të helikës duhet të modifikojmë disa vlera gjatë llogaritjes së RPM.

le të konsiderojmë se kemi një helikë e cila ka dy tehe. Për çdo motor revolucioni, tehu do të kapë rrezet IR dy herë. Kështu sensori IR do të prodhojë pulse sa herë që përgjon.

Tani duhet të shkruajmë një program i cili mund të masë pulsionet e numrit të prodhuar nga sensori IR në një interval të caktuar kohor.

Ka më shumë se një mënyrë për të zgjidhur një problem, por ne duhet të zgjedhim se cila është më e mira në këto kode kam matur kohëzgjatjen midis ndërprerjeve (sensori IR) Kam përdorur funksione mikros () për të matur kohëzgjatjen e pulseve në mikro sekonda.

mund ta përdorni këtë Formulë për të matur RPMRPM = ((1/kohëzgjatja)*1000*1000*60)/tehe

ku, kohëzgjatja - intervali kohor midis pulseve.

60 - sekonda në minuta

1000 - mulli në sek

1000 - mikro në mulli

tehe - nuk ka krahë në helikë.

Ekran LCD - Arduino përditëson regjistrat e komandës dhe të dhënave të ekranit LCD. E cila shfaq karakteret ASCII në ekranin LCD.

Hapi 3: Programoni Arduino -në tuaj duke përdorur Arduino IDE

#përfshi

LCD LiquidCrystal (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR sensor INPUT prevmikro të gjata të panënshkruara; // Për të ruajtur kohën pa shenjë kohëzgjatje të gjatë; // Për të ruajtur diferencën kohore pa shenjë lcdrefresh të gjatë; // Për të ruajtur kohën për LCD për të rifreskuar int rpm; // vlera e RPM gjendja aktuale boolean; // Gjendja aktuale e skanimit të hyrjes IR paraprake boolean; // Gjendja e sensorit IR në konfigurimin e pavlefshëm të skanimit të mëparshëm () {pinMode (IR_IN, INPUT); lcd.filloni (16, 2); prevmicros = 0; prevstate = LOW; } void loop () {//////////////////////////////////////////// ////////////////////////////////////// RPM Matja aktualestate = digitalRead (IR_IN); // Lexoni gjendjen e sensorit IR nëse (prevstate! = Currentstate) // Nëse ka ndryshim në hyrje {if (currentstate == LOW) // Nëse inputi ndryshon vetëm nga HIGH në LOW {duration = (micros () - prevmicros); // Diferenca kohore midis revolucionit në mikrosekond rpm = ((60000000/kohëzgjatja)/3); // rpm = (1/ kohë milis)*1000*1000*60; prevmicros = mikros (); // ruaj kohën për llogaritjen e revolucionit të nektit}} prevstate = gjendja aktuale; // ruani të dhënat e skanimit (skanimi paraprak) për skanimin e ardhshëm /////////////////////////////////// ////////////////////////////////////////////////// Shfaq LCD nëse ((millis ()-lcdrefresh)> = 100) {lcd.qartë (); lcd.setCursor (0, 0); lcd.print ("Shpejtësia e motorit"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Hapi 4: Simulimi duke përdorur Proteus

Simulimi duke përdorur Proteus
Simulimi duke përdorur Proteus

Ky projekt funksionoi në mënyrë perfekte kur provova ta simuloja këtë me ndihmën e proteusit.

Në vend të përdorimit të sensorit IR, unë përdor gjenerator pulsi DC i cili do të simulonte pulsin IR të ngjashëm me atë të gjeneruar kur rrezet IR godasin telat e helikave.

ju duhet të bëni ndryshime në programin tuaj në varësi të sensorit që përdorni

Sensori IR me LM358 duhet ta përdorë këtë komandë.

if (currentstate == HIGH) // Nëse inputi ndryshon vetëm nga LOW në HIGH

Sensori IR me LM359 duhet ta përdorë këtë komandë.

if (currentstate == LOW) // Nëse inputi ndryshon vetëm nga HIGH në LOW

Hapi 5: Ekzekutimi i harduerit

Ekzekutimi i harduerit
Ekzekutimi i harduerit
Ekzekutimi i harduerit
Ekzekutimi i harduerit
Ekzekutimi i harduerit
Ekzekutimi i harduerit

Për skematik përdorni fotografitë e simulimit ose referojuni kodeve të programit dhe bëni lidhjet në përputhje me rrethanat. Ngarko kodin e programit në Arduino dhe matni RPM të çdo motori. Ndiqni postimin tim të rradhës dhe shikoni kanalin tim në YouTube.

Recommended: