Innholdsfortegnelse:

Måling av motorhastighet ved bruk av Arduino: 6 trinn
Måling av motorhastighet ved bruk av Arduino: 6 trinn

Video: Måling av motorhastighet ved bruk av Arduino: 6 trinn

Video: Måling av motorhastighet ved bruk av Arduino: 6 trinn
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, Juni
Anonim
Måling av motorhastighet ved hjelp av Arduino
Måling av motorhastighet ved hjelp av Arduino
Måling av motorhastighet ved hjelp av Arduino
Måling av motorhastighet ved hjelp av Arduino
Måling av motorhastighet ved hjelp av Arduino
Måling av motorhastighet ved hjelp av Arduino

Er det vanskelig å måle turtall på motor ??? Jeg tror ikke det. Her er en enkel løsning.

Bare én IR -sensor og Arduino i settet ditt kan gjøre det.

I dette innlegget vil jeg gi en enkel opplæring som forklarer hvordan du måler turtall for enhver motor ved hjelp av IR -sensor og Arduino UNO/nano

Rekvisita:

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

2. IR -sensor (Amazon)

3. likestrømsmotor (Amazon)

4. LCD 16*2 (Amazon)

Verktøy som brukes

1. Loddejern (Amazon)

2. Wire Stripper (Amazon)

Trinn 1: Trinn: 1 Sikre arbeidstilstanden til sensorer og enheter

Hva er en IR -sensor? IR -sensor er en elektronisk enhet, som sender ut lyset for å føle et objekt i omgivelsene. En IR -sensor kan måle varmen til et objekt i tillegg til å oppdage bevegelsen. Vanligvis, i det infrarøde spekteret, utstråler alle objektene en eller annen form for termisk stråling. Denne typen stråling er usynlig for øynene våre, men infrarød sensor kan oppdage disse strålingene.

Hva er en likestrømsmotor? En likestrømsmotor (DC) er en type elektrisk maskin som konverterer elektrisk energi til mekanisk energi. Likestrømsmotorer tar elektrisk kraft gjennom likestrøm, og konverterer denne energien til mekanisk rotasjon.

Likestrømsmotorer bruker magnetfelt som oppstår fra de elektriske strømmer som genereres, som driver bevegelsen til en rotor som er festet inne i utgangsakselen. Utgående dreiemoment og hastighet avhenger av både den elektriske inngangen og motorens design.

Hva er Arduino?

Arduino er en elektronisk plattform med åpen kildekode basert på brukervennlig maskinvare og programvare. Arduino -kort kan lese innganger - lys på en sensor, en finger på en knapp eller en Twitter -melding - og gjøre den til en utgang - aktivere en motor, slå på en LED, publisere noe på nettet. Du kan fortelle styret ditt hva du skal gjøre ved å sende et sett med instruksjoner til mikrokontrolleren på kortet. For å gjøre det bruker du programmeringsspråket Arduino (basert på ledninger) og Arduino -programvaren (IDE), basert på prosessering.

Last ned ARDUINO IDE

Trinn 2: Hvordan fungerer det?

Så hva er logikken bak dette ??

Det fungerer omtrent som encoder. Kodere er vanskelig å forstå for nybegynnere. Alt du trenger å vite er at IR -sensoren genererer puls, og vi finner ut tidsintervallet mellom hver puls.

I dette tilfellet vil IR -sensoren sende en puls til Arduino når IR -strålen noen gang blir fanget opp av motorens propeller. Normalt bruker vi propeller med to blader, men jeg har brukt propell med tre blader som vist på figuren. avhengig av antall propellblader må vi endre noen verdier mens vi beregner turtall.

la oss vurdere at vi har en propell som har to blader. For hver revolusjonsmotor vil bladet fange opp IR -strålen to ganger. Dermed vil IR -sensoren produsere pulser når de noen gang fanger.

Nå må vi skrive et program som kan måle antall pulser produsert av IR -sensor ved et bestemt tidsintervall.

Det er mer enn én måte å løse et problem på, men vi må velge hvilken som er best i disse kodene. Jeg har målt varigheten mellom avbruddene (IR -sensor). Jeg brukte mikros () -funksjoner for å måle varigheten av pulser i mikrosekunder.

du kan bruke denne formelen til å måle RPMRPM = ((1/varighet)*1000*1000*60)/blader

hvor, varighet - tidsintervall mellom pulser.

60 sekunder til minutter

1000 - mill til sek

1000 - mikro til mill

blader - ingen vinger i propellen.

LCD -skjerm - Arduino oppdaterer kommando- og dataregister for LCD -skjerm. Som viser ASCII -tegnene på LCD -skjermen.

Trinn 3: Programmer din Arduino ved hjelp av Arduino IDE

#inkludere

LiquidCrystal lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; // IR sensor INNGANG usignerte lange prevmicros; // For å lagre tid usignert lang varighet; // For å lagre tidsforskjell usignert lang lcdrefresh; // For å lagre tid for lcd å oppdatere int rpm; // RPM verdi boolsk currentstate; // Gjeldende tilstand for IR -inngangssøk boolsk prevstate; // Tilstand for IR -sensor i forrige oppsett av tomromskanning () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LAV; } void loop () {////////////////////////////////////////// /////////////////////////////////////////// RPM Måling currentstate = digitalRead (IR_IN); // Les IR -sensortilstand hvis (prevstate! = Currentstate) // Hvis det er endring i input {if (currentstate == LOW) // Hvis input bare endres fra HIGH til LOW {duration = (micros () - prevmicros); // Tidsforskjell mellom revolusjon i mikrosekundomdreininger (= (60000000/varighet)/3); // rpm = (1/ time millis)*1000*1000*60; prevmicros = micros (); // lagre tid for nektrevolusjonsberegning}} prevstate = currentstate; // lagre disse skannede (forrige skannede) dataene for neste skanning ////////////////////////////// ////////////////////////////////////// ((millis ()-lcdrefresh)> = 100) {lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Motorhastighet"); lcd.setCursor (0, 1); lcd.print ("RPM ="); lcd.print (rpm); lcdrefresh = millis (); }}

Trinn 4: Simulering ved bruk av Proteus

Simulering ved bruk av Proteus
Simulering ved bruk av Proteus

Dette prosjektet fungerte helt fint da jeg prøvde å simulere dette ved hjelp av proteus.

I stedet for å bruke IR -sensor brukte jeg DC -pulsgenerator som vil simulere IR -pulsen som ligner på en som genereres når IR -strålene treffer propellbladene.

du må gjøre endringer i programmet ditt, avhengig av sensoren du bruker

IR -sensor med LM358 må bruke denne kommandoen.

if (currentstate == HIGH) // Hvis input bare endres fra LOW til HIGH

IR -sensor med LM359 må bruke denne kommandoen.

if (currentstate == LOW) // Hvis input bare endres fra HIGH til LOW

Trinn 5: Utførelse av maskinvare

Utførelse av maskinvare
Utførelse av maskinvare
Utførelse av maskinvare
Utførelse av maskinvare
Utførelse av maskinvare
Utførelse av maskinvare

For skjematisk bruk, bruker du simuleringsbildene eller refererer programkodene og gjør tilkoblingene deretter. Last opp programkoden til Arduino og måle turtallet på en hvilken som helst motor. Følg med på mitt neste innlegg og se YouTube -kanalen min.

Anbefalt: