Indholdsfortegnelse:

Måling af motorhastighed ved hjælp af Arduino: 6 trin
Måling af motorhastighed ved hjælp af Arduino: 6 trin

Video: Måling af motorhastighed ved hjælp af Arduino: 6 trin

Video: Måling af motorhastighed ved hjælp af Arduino: 6 trin
Video: Sådan styres flere servomotorer ved hjælp af et potentiometer med Arduino 2024, November
Anonim
Måling af motorhastighed ved hjælp af Arduino
Måling af motorhastighed ved hjælp af Arduino
Måling af motorhastighed ved hjælp af Arduino
Måling af motorhastighed ved hjælp af Arduino
Måling af motorhastighed ved hjælp af Arduino
Måling af motorhastighed ved hjælp af Arduino

Er det svært at måle omdrejninger pr. Motor ??? Det tror jeg ikke. Her er en enkel løsning.

Kun en IR -sensor og Arduino i dit kit kan gøre det.

I dette indlæg vil jeg give en simpel tutorial, der forklarer, hvordan man måler omdrejningstal for enhver motor ved hjælp af IR -sensor og Arduino UNO/nano

Tilbehør:

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

2. IR -sensor (Amazon)

3. DC -motor enhver (Amazon)

4. LCD 16*2 (Amazon)

Brugte værktøjer

1. Loddejern (Amazon)

2. Wire Stripper (Amazon)

Trin 1: Trin: 1 Sikre arbejdstilstand for sensorer og enheder

Hvad er en IR -sensor? IR -sensor er en elektronisk enhed, der udsender lyset for at fornemme et objekt i omgivelserne. En IR -sensor kan måle varmen fra et objekt samt registrere bevægelsen. Normalt udstråler alle objekter i det infrarøde spektrum en form for termisk stråling. Disse former for stråling er usynlige for vores øjne, men infrarød sensor kan registrere disse strålinger.

Hvad er en DC -motor? En jævnstrømsmotor (DC) er en type elektrisk maskine, der konverterer elektrisk energi til mekanisk energi. DC -motorer tager elektrisk strøm gennem jævnstrøm og konverterer denne energi til mekanisk rotation.

DC -motorer bruger magnetfelter, der opstår fra de genererede elektriske strømme, der driver bevægelsen af en rotor, der er fastgjort inden i udgangsakslen. Udgangsmomentet og hastigheden afhænger af både den elektriske indgang og motorens design.

Hvad er Arduino?

Arduino er en open-source elektronikplatform baseret på brugervenlig hardware og software. Arduino -tavler kan læse input - lys på en sensor, en finger på en knap eller en Twitter -besked - og omdanne den til en output - aktivere en motor, tænde en LED, publicere noget online. Du kan fortælle dit board, hvad de skal gøre ved at sende et sæt instruktioner til mikrokontrolleren på kortet. For at gøre dette bruger du programmeringssproget Arduino (baseret på ledninger) og Arduino -softwaren (IDE), der er baseret på behandling.

Download ARDUINO IDE

Trin 2: Hvordan fungerer det?

Så hvad er logikken bag dette ??

Det fungerer meget som encoder. Kodere er svært at forstå for begyndere. Alt du behøver at vide er, at IR -sensoren genererer puls, og vi finder ud af tidsintervallet mellem hver puls.

I dette tilfælde sender IR -sensoren en puls til Arduino, når dens IR -stråle nogensinde bliver opfanget af motorpropeller. Normalt bruger vi propeller med to blade, men jeg har brugt propel med tre blade som vist på figuren. afhængigt af antallet af propelblade skal vi ændre nogle værdier under beregning af omdrejningstal.

lad os overveje, at vi har en propel, der har to blade. For hver omdrejningsmotor vil bladet opfange IR -strålen to gange. Således vil IR -sensoren producere pulser, når de nogensinde opsnapper.

Nu er vi nødt til at skrive et program, der kunne måle antallet af impulser produceret af IR -sensoren ved et bestemt tidsinterval.

Der er mere end én måde at løse et problem på, men vi skal vælge, hvilken der er bedst i disse koder. Jeg har målt varigheden mellem afbrydelser (IR -sensor). Jeg brugte mikros () -funktioner til at måle varigheden af pulser i mikrosekunder.

du kan bruge denne formel til at måle RPMRPM = ((1/varighed)*1000*1000*60)/blade

hvor, varighed - tidsinterval mellem impulser.

60 sekunder til minutter

1000 - mill til sek

1000 - mikro til mill

vinger - ingen af vinger i propellen.

LCD -display - Arduino opdaterer kommando- og dataregistre for LCD -display. Som viser ASCII -tegnene på LCD -displayet.

Trin 3: Programmer din Arduino ved hjælp af Arduino IDE

#omfatte

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR -sensor INPUT usignerede lange prevmicros; // At gemme tid usigneret lang varighed; // For at gemme tidsforskel usigneret lang lcdrefresh; // For at gemme tid til lcd til at opdatere int rpm; // RPM -værdi boolean currentstate; // Aktuel tilstand af IR -inputscanning boolsk præstat; // Tilstanden for IR -sensor i tidligere opsætning af tomrumsscanning () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LAV; } void loop () {////////////////////////////////////////////////// /////////////////////////////////////////// RPM Måling currentstate = digitalRead (IR_IN); // Læs IR -sensortilstand, hvis (prevstate! = Currentstate) // Hvis der er ændring i input {if (currentstate == LOW) // Hvis input kun ændres fra HIGH til LOW {varighed = (micros () - prevmicros); // Tidsforskel mellem omdrejningstallet i mikrosekundomdr./min = ((60000000/varighed)/3); // rpm = (1/ time millis)*1000*1000*60; prevmicros = micros (); // gemme tid til nektrevolutionsberegning}} prevstate = currentstate; // gem disse scanningsdata (forrige scanning) til næste scanning ///////////////////////////////////////// ///////////////////////////////////// ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Motorhastighed"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Trin 4: Simulering ved hjælp af Proteus

Simulering ved hjælp af Proteus
Simulering ved hjælp af Proteus

Dette projekt fungerede helt fint, da jeg forsøgte at simulere dette ved hjælp af proteus.

I stedet for at bruge IR -sensor brugte jeg DC -pulsgenerator, som vil simulere IR -pulsen svarende til den, der genereres, når IR -strålerne rammer propellerbladene.

du skal foretage ændringer i dit program afhængigt af den sensor, du bruger

IR -sensor med LM358 skal bruge denne kommando.

hvis (currentstate == HIGH) // Hvis input kun ændres fra LOW til HIGH

IR -sensor med LM359 skal bruge denne kommando.

hvis (currentstate == LOW) // Hvis input kun ændres fra HIGH til LOW

Trin 5: Udførelse af hardware

Udførelse af hardware
Udførelse af hardware
Udførelse af hardware
Udførelse af hardware
Udførelse af hardware
Udførelse af hardware

Til skematisk brug simuleringsbillederne eller referer programkoderne og foretag forbindelserne i overensstemmelse hermed. Upload programkoden til Arduino og mål omdrejningstallet for enhver motor. Hold øje med mit næste indlæg, og se min YouTube -kanal.

Anbefalede: