Arduino RPM Counter käyttäen optista sensoria
Rakentaminen RPM (revolutions per minuutti) on klassinen ja hyödyllinen Arduino-projekti. Tämä opas opas opastaa sinua luomaan optinen takometri IR-LED, IR-valotransistori ja 16×2 LCD-näyttö. Tuloksena on yksinkertainen ja tarkka RPM-laskuri, joka soveltuu moottoreille, tuulettimille tai potkurille.
Hankkeen yleiskatsaus
Tämä Arduino RPM-laskuri toimii keskeyttämällä infrapunasäteen pyörivällä esineellä (kuten potkurilla). Jokainen keskeytys havaitaan Arduino, lasketaan, ja muunnetaan RPM-arvo, joka näkyy LCD-näytöllä.
Tärkeimmät ominaisuudet:
Reaaliaikainen kierrosnopeuden mittaus
Optinen (koskettamaton) anturi
LCD-ulostulo helppolukuiseen lukemiseen
Yksinkertaiset ja edulliset komponentit
Osaluettelo
Tarvitset seuraavat komponentit:
1 × Arduinon lauta
1 × 16×2 LCD-näyttö (HD44780 yhteensopiva)
1 × 10kΩ potentiometri (LCD-kontrastiohjaus)
1 × 10kΩ vastus
1 × IR LED
1 × IR-valotransistori
Hyppykaapelit
Johto-ohjeet
Seuraa näitä ohjeita huolellisesti piirin kokoamiseksi. Jokainen alakohta selittää tarkalleen minne jokainen johto pitäisi mennä välttää sekaannusta.
Tehonjako
Yhdistä Arduino 5V pin leipälaudalle positiiviset kiskot.
Yhdistä Arduino GND -neula leipälaudalle maarata.
Varmista, että kaikki komponentit (LCD, potentiometri, IR LED ja fototransistori) jakavat tämän yhteisen pohjan.
LCD- ja potentiometriyhteydet (16×2 rinnakkaista LCD:tä)
LCD Pin 1 (VSS) → Maa
LCD Pin 2 (VDD) → 5V
LCD Pin 3 (VO) → Keskellä pin 10k Ω potentiometri
Potentiometrin sivupinnat → 5V ja maa (käytetään LCD kontrastin säätöön)
LCD Pin 4 (RS) → Arduino digitaalinen pin 7
LCD Pin 5 (RW) → Maa (LCD kirjoitustila)
LCD Pin 6 (E) → Arduino digitaalinen pin 8
LCD-pin 11 (D4) → Arduino digitaalinen pin 9
LCD Pin 12 (D5) → Arduino digitaalinen pin 10
LCD Pin 13 (D6) → Arduino digitaalinen pin 11
LCD Pin 14 (D7) → Arduino digitaalinen pin 12
LCD Taustavalo
Pin 15 (A) → 5V vastuksen läpi
Pin 16 (K) → Maa
IR LED (lähetin)
Anodi (pitkämpi lyijy) → Arduino digitaalinen pin 13
Katodi (lyhyempi lyijy) → Maa
IR LED pysyy jatkuvasti päällä lähettääkseen infrapunasäteen kohti fototransistoria.
IR-valotransistori (Receiver)
Keräin (lyhyempi lyijy) → Arduino digitaalinen pin 2
Emitter (pitkämpi lyijy) → Maa
Aseta valotransistori suoraan IR-LEDiin päin, jotta pyörivä esine keskeyttää säteen.
Lopputarkastukset
Varmista kaikki maayhteydet ovat yleisiä.
Tarkista pin-numerot ennen virtapiirin kytkemistä.
Säädä potentiometriä, kunnes LCD:ssä näkyy selvästi tekstiä.
Vihje: Digitaalinen pin 2 käytetään, koska se tukee laitteiston keskeytykset, mahdollistaa Arduino laskea säde keskeytykset tarkasti ja laskea RPM luotettavasti.
Arduinon koodi
Lataa seuraava luonnos Arduino-lautallesi:
/*
* Optical Tachometer
*
* Uses an IR LED and IR phototransistor to implement an optical tachometer.
* The IR LED is connected to pin 13 and runs continuously.
* Digital pin 2 (interrupt 0) is connected to the IR detector.
*/
#include
int ledPin = 13; // IR LED connected to digital pin 13
volatile byte rpmcount;
unsigned int rpm;
unsigned long timeold;
// Initialize the LCD with the interface pins
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void rpm_fun() {
// This interrupt runs every time the IR beam is cut
rpmcount++;
}
void setup() {
lcd.begin(16, 2); // Initialize the LCD
// Attach interrupt to digital pin 2 (interrupt 0)
attachInterrupt(0, rpm_fun, FALLING);
// Turn on IR LED
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, HIGH);
rpmcount = 0;
rpm = 0;
timeold = 0;
}
void loop() {
// Update RPM every second
delay(1000);
// Temporarily stop interrupts during calculation
detachInterrupt(0);
rpm = 30 * 1000 / (millis() - timeold) * rpmcount;
timeold = millis();
rpmcount = 0;
// Display RPM on LCD
lcd.clear();
lcd.print("RPM=");
lcd.print(rpm);
// Re-enable interrupt
attachInterrupt(0, rpm_fun, FALLING);
}
RPM-laskennan ymmärtäminen
Hankkeessa oletetaan kaksi keskeytystä per kierros, kuten käytettäessä moottoria, jossa on kaksisylinterinen potkuri.
Tämä on syy, miksi RPM-laskelmassa käytetään tätä kaavaa:
rpm = 30 * 1000 / (millis() - timeold) * rpmcount;
Säädetään asetuksia
Yksi keskeytys per vallankumous:
Korvaa30kun60Lisää teriä tai merkintöjä:
Jaa60Keskeytysten lukumäärä täyttä kiertoa kohti ja kaavan päivitys vastaavasti.
Tämä joustavuus mahdollistaa projektin mukauttamisen eri moottoreihin ja pyöriviin kohteisiin.
Lopulliset huomautukset
Varmista, että IR LED ja valotransistori ovat oikein linjassa luotettavia lukemia varten.
Käytä heijastavaa teippiä tai piirrettyä levyä johdonmukaisemman säteen katkaisuun.
Projektia voidaan laajentaa kirjaamalla RPM-tietoja tai lisäämällä sarjalähtö.
Valmiina rakentamaan?
Tämä Arduino RPM-laskuri on hyvä perusta moottorien ohjausprojekteille, robotiikka ja mekaaninen diagnostiikka. Kokoa komponentit, lataa koodi ja aloita RPM:n mittaaminen luottavaisin mielin.