Innholdsfortegnelse:
- Trinn 1: Trinn: 1 Sikre arbeidstilstanden til sensorer og enheter
- Trinn 2: Hvordan fungerer det?
- Trinn 3: Programmer din Arduino ved hjelp av Arduino IDE
- Trinn 4: Simulering ved bruk av Proteus
- Trinn 5: Utførelse av maskinvare
Video: Måling av motorhastighet ved bruk av Arduino: 6 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:20
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
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
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:
Arduino Control DC motorhastighet og retning ved bruk av et potensiometer, OLED -skjerm og knapper: 6 trinn
Arduino Control DC motorhastighet og retning ved bruk av et potensiometer, OLED -skjerm og knapper: I denne opplæringen lærer vi hvordan du bruker en L298N DC MOTOR CONTROL driver og et potensiometer for å kontrollere en DC motorhastighet og retning med to knapper og vise potensiometerverdien Se på en demonstrasjonsvideo
Arduino Control DC motorhastighet og retning ved bruk av et potensiometer og knapper: 6 trinn
Arduino Control DC motorhastighet og retning ved bruk av potensiometer og knapper: I denne opplæringen lærer vi hvordan du bruker en L298N DC MOTOR CONTROL driver og et potensiometer for å kontrollere en DC motor hastighet og retning med to knapper. Se en demonstrasjonsvideo
Arduino Control DC motorhastighet og retning ved bruk av et potensiometer: 6 trinn
Arduino Control DC motorhastighet og retning ved bruk av et potensiometer: I denne opplæringen lærer vi hvordan du bruker en L298N DC MOTOR CONTROL driver og et potensiometer for å kontrollere en DC motor hastighet og retning. Se en demonstrasjonsvideo
Måling av temperatur ved bruk av ADT75 og Arduino Nano: 4 trinn
Måling av temperatur ved bruk av ADT75 og Arduino Nano: ADT75 er en svært nøyaktig, digital temperatursensor. Den består av en båndgap temperatursensor og en 12-bits analog til digital omformer for overvåking og digitalisering av temperaturen. Den svært følsomme sensoren gjør den kompetent nok for meg
Måling av fuktighet og temperatur ved bruk av HIH6130 og Arduino Nano: 4 trinn
Måling av fuktighet og temperatur ved bruk av HIH6130 og Arduino Nano: HIH6130 er en fuktighets- og temperatursensor med digital utgang. Disse sensorene gir et nøyaktighetsnivå på ± 4% RF. Med bransjeledende langsiktig stabilitet, ekte temperaturkompensert digital I2C, bransjeledende pålitelighet, energieffektivitet