Inhoudsopgave:

Motorsnelheidsmeting met Arduino: 6 stappen
Motorsnelheidsmeting met Arduino: 6 stappen

Video: Motorsnelheidsmeting met Arduino: 6 stappen

Video: Motorsnelheidsmeting met Arduino: 6 stappen
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, November
Anonim
Motorsnelheidsmeting met behulp van Arduino
Motorsnelheidsmeting met behulp van Arduino
Motorsnelheidsmeting met Arduino
Motorsnelheidsmeting met Arduino
Motorsnelheidsmeting met Arduino
Motorsnelheidsmeting met Arduino

Is het moeilijk om het toerental van de motor te meten???Ik denk het niet. Hier is een simpele oplossing.

Slechts één IR-sensor en Arduino in uw kit kan dit doen.

In dit bericht zal ik een eenvoudige tutorial geven waarin wordt uitgelegd hoe je het toerental van elke motor kunt meten met behulp van een IR-sensor en Arduino UNO/nano

Benodigdheden:

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

2. IR-sensor (Amazon)

3. Gelijkstroommotor willekeurig (Amazon)

4. LCD 16*2 (Amazone)

Gebruikte gereedschappen

1. Soldeerbout (Amazon)

2. Draadstripper (Amazon)

Stap 1: Stap: 1 Zorg voor de goede staat van sensoren en apparaten

Wat is een IR-sensor?IR-sensor is een elektronisch apparaat dat licht uitstraalt om een object van de omgeving waar te nemen. Een IR-sensor kan de warmte van een object meten en de beweging detecteren. Gewoonlijk stralen alle objecten in het infraroodspectrum een of andere vorm van thermische straling uit. Dit soort straling is onzichtbaar voor onze ogen, maar een infraroodsensor kan deze straling detecteren.

Wat is een gelijkstroommotor? Een gelijkstroommotor (DC) is een type elektrische machine die elektrische energie omzet in mechanische energie. Gelijkstroommotoren nemen elektrische stroom door gelijkstroom en zetten deze energie om in mechanische rotatie.

DC-motoren gebruiken magnetische velden die ontstaan door de gegenereerde elektrische stromen, die de beweging van een rotor in de uitgaande as aandrijft. Het uitgangskoppel en de snelheid hangen af van zowel de elektrische ingang als het ontwerp van de motor.

Wat is Arduino?

Arduino is een open-source elektronicaplatform gebaseerd op gebruiksvriendelijke hardware en software. Arduino-boards kunnen inputs lezen - licht op een sensor, een vinger op een knop of een Twitter-bericht - en dit omzetten in een output - een motor activeren, een LED aanzetten, iets online publiceren. U kunt uw bord vertellen wat het moet doen door een reeks instructies naar de microcontroller op het bord te sturen. Hiervoor gebruik je de Arduino programmeertaal (gebaseerd op Wiring), en de Arduino Software (IDE), gebaseerd op Processing.

ARDUINO IDE downloaden

Stap 2: Hoe werkt het?

Dus wat is de logica hierachter??

Het werkt ongeveer hetzelfde als encoder. Encoders zijn vrij moeilijk te begrijpen voor beginners. Het enige dat u hoeft te weten, is dat de IR-sensor een puls genereert en we ontdekken het tijdsinterval tussen elke puls.

In dit geval zal de IR-sensor een puls naar Arduino sturen wanneer de IR-straal ooit wordt onderschept met propellers van motoren. Normaal gesproken gebruiken we propellers met twee bladen, maar ik heb propellers met drie bladen gebruikt, zoals weergegeven in de afbeelding. afhankelijk van het aantal propellerbladen moeten we enkele waarden wijzigen tijdens het berekenen van het toerental.

Laten we eens aannemen dat we een propeller hebben met twee bladen. Voor elke omwentelingsmotor zal het blad de IR-straal twee keer onderscheppen. Dus de IR-sensor zal pulsen produceren wanneer deze ooit worden onderschept.

Nu moeten we een programma schrijven dat het aantal pulsen kan meten dat door een IR-sensor wordt geproduceerd met een bepaald tijdsinterval.

Er zijn meer dan één manier om een probleem op te lossen, maar we moeten kiezen welke het beste is in deze codes. Ik heb de duur tussen de onderbrekingen gemeten (IR-sensor) Ik heb micros()-functies gebruikt om de duur van pulsen in microseconden te meten.

u kunt deze formule gebruiken om de RPMRPM = ((1/duur)*1000*1000*60)/bladen te meten

waar, duur - tijdsinterval tussen pulsen.

60 - seconden tot minuten

1000 - molen tot sec

1000 - micro naar molen

bladen - aantal vleugels in de propeller.

LCD-scherm - De Arduino werkt de commando- en gegevensregisters van het LCD-scherm bij. Die de ASCII-tekens op het LCD-scherm weergeeft.

Stap 3: Programmeer uw Arduino met Arduino IDE

#erbij betrekken

LiquidCrystal-lcd (9, 8, 7, 6, 5, 4); const int IR_IN = 2; //IR-sensor INPUT niet-ondertekende lange prevmicros; // Om tijd ongetekende lange duur op te slaan; // Om tijdsverschil unsigned long lcdrefresh op te slaan; // Om tijd op te slaan voor lcd om int rpm te vernieuwen; // RPM-waarde booleaanse huidige toestand; // Huidige status van IR-invoerscan boolean prevstate; // Staat van IR-sensor in vorige scan ongeldige setup () {pinMode (IR_IN, INPUT); lcd.begin (16, 2); prevmicros = 0; prevstate = LAAG; } void loop() { //////////////////////////////////////////// ///////////////////////////////////// RPM Meting huidige staat = digitalRead (IR_IN); // Lees de IR-sensorstatus als (prevstate! = huidige status) // Als er een wijziging is in de invoer {if (huidige status == LAAG) // Als de invoer alleen verandert van HOOG naar LAAG {duur = (micros () - prevmicros); // Tijdsverschil tussen omwenteling in microseconde rpm = ((60000000/duur)/3); // rpm = (1/ tijd millis)*1000*1000*60; prevmicros = micros(); // bewaar tijd voor berekening van de nect revolutie } } prevstate = huidige staat; // bewaar deze scangegevens (vorige scan) voor de volgende scan ///////////////////////////////////// //////////////////////////////////////////////// LCD-scherm als ((millis()-lcdrefresh) >= 100) { lcd.clear(); lcd.setCursor(0, 0); lcd.print("Snelheid van motor"); lcd.setCursor(0, 1); lcd.print("RPM = "); lcd.print(rpm); lcdrefresh = millis(); } }

Stap 4: Simulatie met Proteus

Simulatie met Proteus
Simulatie met Proteus

Dit project werkte prima toen ik dit probeerde te simuleren met behulp van proteus.

In plaats van een IR-sensor te gebruiken, heb ik een DC-pulsgenerator gebruikt, die de IR-puls simuleert die lijkt op een puls die wordt gegenereerd wanneer de IR-stralen de propellerbladen raken.

je moet wijzigingen aanbrengen in je programma, afhankelijk van de sensor die je gebruikt

IR-sensor met LM358 moet dit commando gebruiken.

if (huidige toestand == HOOG) // Als de invoer alleen verandert van LAAG naar HOOG

IR-sensor met LM359 moet dit commando gebruiken.

if (huidige toestand == LAAG) // Als de invoer alleen verandert van HOOG naar LAAG

Stap 5: Hardware-uitvoering

Hardware-uitvoering
Hardware-uitvoering
Hardware-uitvoering
Hardware-uitvoering
Hardware-uitvoering
Hardware-uitvoering

Gebruik voor schematische weergave de simulatieafbeeldingen of raadpleeg de programmacodes en maak de verbindingen dienovereenkomstig. Upload de programmacode naar Arduino en meet het toerental van elke motor. Blijf op de hoogte voor mijn volgende bericht en bekijk mijn YouTube-kanaal.

Aanbevolen: