Arduino gebaseerde optische toerenteller (4 / 6 stap)

Stap 4: programmeren


Het programma voor de berekening van de RPM van de motor is vrij eenvoudig. Ik aangepast van een Hall-Effect motorsnelheid rekenmachine op de uitstekende Arduino Playground -site.

U kunt de "schets" voor het programma hieronder downloaden.

De rpm_fun functie is de interrupt-functie die wordt aangeroepen wanneer de gegevens op pin 2 gewijzigd van hoog naar laag (een vallende puls). Het werkt de globale rpmcount, dan schakelt de status-LED.

 void rpm_fun() { //Each rotation, this interrupt //function is run twice, so take //that into consideration for //calculating RPM //Update count rpmcount++; //Toggle status LED if (status == LOW) { status = HIGH; } else { status = LOW; } digitalWrite(statusPin, status);} 

Setup initialiseert de variabelen, configureert de seriële parameters ingesteld van de pin-modi en de interrupt-functie is ingesteld.

 void setup() { Serial.begin(9600); //Interrupt 0 is digital pin 2, so that is where //the IR detector is connected //Triggers on FALLING (change from HIGH to LOW) attachInterrupt(0, rpm_fun, FALLING); //Turn on IR LED pinMode(ledPin, OUTPUT); digitalWrite(ledPin, HIGH); //Use statusPin to flash along with interrupts pinMode(statusPin, OUTPUT); rpmcount = 0; rpm = 0; timeold = 0; status = LOW; } 

De loop-functie, is zoals de naam al impliceert, de belangrijkste verwerking lus die "voor eeuwig" loopt terwijl de Raad van bestuur is ingeschakeld. De eerste verklaring vertragingen gedurende één seconde (1000 milliseconden), maar merk op dat de interrupt-functie breken zal in elke keer de waarde van pin 2 verandert en de rpm_fun functie uitvoert. Nadat de 1 seconde vertraging, de interrupt is tijdelijk uitgeschakeld (dit kan niet nodig, maar schijnt veiliger) dan de RPM is berekend op basis van het aantal interrupts en de verstreken tijd tussen nu en de laatste keer dat de berekening is opgetreden. Het resultaat wordt teruggestuurd naar de computer via de seriële poort, en vervolgens de interrupt wordt hersteld.

 void loop() { //Update RPM every second delay(1000); //Don't process interrupts during calculations detachInterrupt(0); rpm = 30*1000/(millis() - timeold)*rpmcount; timeold = millis(); rpmcount = 0; //Write it out to serial port Serial.println(rpm,DEC); //Restart the interrupt processing attachInterrupt(0, rpm_fun, FALLING); } 

Merk op dat de manier waarop de motor en de IR-detector is geconfigureerd, elke één beurt van de spoel zal resulteren in twee overgangen, dus de berekening die in werking duurt. Hetzelfde zou optreden voor een twee blads fan of propeller. Als er slechts een lichte pauze per omwenteling voorgedaan, zoals een swingende arm, zou de berekening:

 rpm = 60*1000/(millis() - timeold)*rpmcount; 

Voor een drie blads fan zou de berekening:

 rpm = 20*1000/(millis() - timeold)*rpmcount; 

Gerelateerde Artikelen

Maatregel RPM - optische toerenteller

Maatregel RPM - optische toerenteller

Dit Instructable zal u tonen hoe om een Draagbare digitale optische toerenteller , met behulp van een Arduino Uno.In plaats van een slotted sensor heeft het een reflectie gebaseerd sensor. Dus:1. u hoeft niet te vrezen voor de dikte van de rotor2. he
Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Arduino gebaseerd Bi-color LED Matrix Audio Spectrum Visualizer

Nadat we met de Bi-color LED Matrix Driver Module kit kwamen, we hebben ons gebogen rond voor interessante projecten te werken.Bent u wellicht geïnteresseerd in een aantal van de projecten die we hebben opgemaakt op instructables met behulp van deze
Arduino gebaseerde Bi-color LED Matrix Tetris Game

Arduino gebaseerde Bi-color LED Matrix Tetris Game

Een van de elektronica DIY kit jolliFactory kwam omhoog met is de Bi-color LED Matrix Driver Module Kit. Deze module is ontworpen om kunnen keten-zodat u kan serieschakeling de modules samen aan het aantal modules moet u past bij uw project.De volgen
Arduino gebaseerde Smart Home IOT systeem

Arduino gebaseerde Smart Home IOT systeem

Hallo, ik ben Michalis Vasilakis uit Ardumotive.com en in deze handleiding Instructables zal ik u tonen hoe kunt u gemakkelijk maken uw eigen smart home systeem op basis van Arduino uno en een Ethernet-module (of schild).U zal zitten kundig voor gebr
Monteren van een Arduino gebaseerd rook / hitte Alarm

Monteren van een Arduino gebaseerd rook / hitte Alarm

Zoals je uit deze blog entry zien kunt ik ontwikkelde de basis voor dit project twee jaar geleden als een alarm / uitschakeling schakelaar voor de RepRap 3D Printer kit die ik had net samengesteld... en dat had gerookt!Het eerste ProjectIk heb sindsd
Arduino gebaseerde Split-Flap game

Arduino gebaseerde Split-Flap game

We hebben een grote traditie van de Nederlandse vakantie genaamd sinterklaas (5 december, dit is dat wat de Amerikaanse Santa is gebaseerd op). Voor de oudere "non-believers" we verrassingen. Het doel is te kopen van een klein cadeautje, maar ee
Zeven Segment Display Thermometer - Arduino gebaseerd

Zeven Segment Display Thermometer - Arduino gebaseerd

Vandaag zal ik u tonen hoe te maken van uw eigen 7 segment - 2 digit - thermometer met Arduino uno en DS18B20 temperatuursensor.Ik verkies om te bouwen van mijn eigen arduino gebaseerd circuit met behulp van de ATmega328p uno bezitter, maar dit is op
AbHhGD - de Arduino gebaseerde digitale Gaming apparaat

AbHhGD - de Arduino gebaseerde digitale Gaming apparaat

Dit is een write-up op mijn Arduino gebaseerde hand-held gaming apparaat. Ik realiseer me het is een enigszins poshy verklaring maar hey, het is Arduino gebaseerd, het is draagbaar en het is een apparaat dat spelletjes speelt!Stap 1: Een hand-held ga
Arduino gebaseerde afstand maatregel vak

Arduino gebaseerde afstand maatregel vak

Hallo, in dit project zal ik u tonen hoe te bouwen uw eigen doos meter afstand met Arduino uno en een ultrasone sensor.Voordat u begint, zorg ervoor dat u hebt:Arduino unoHC-SR04 ultrasone SensorLCD 16 x 2Officiële website: http://www.ardumotive.com/
Arduino gebaseerde schaduw Alarm

Arduino gebaseerde schaduw Alarm

Schaduw alarmen worden meestal gebruikt voor bescherming tegen diefstal. Een schaduw alarm is een apparaat dat een geluidssignaal klinkt wanneer een schaduw valt. Hier beschreven is een eenvoudige schakeling van een arduino gebaseerd schaduw alarm. D
Lage hoogte milieubewaking met een Arduino gebaseerd weer Instrument en Remote Sensing Platform van Aeropod

Lage hoogte milieubewaking met een Arduino gebaseerd weer Instrument en Remote Sensing Platform van Aeropod

ProjectoverzichtStudenten op New Lothrop High School in Michigan hebben samengewerkt om te bouwen van een lage hoogte remote sensing platform genaamd een "Aeropod" en het uitgerust met een "Arduino" gebaseerd weer instrument om sfeervo
Arduino gebaseerd Robotic Car(wireless controls+Autonomous)

Arduino gebaseerd Robotic Car(wireless controls+Autonomous)

Dit instructable is over een Arduino gebaseerd Robotic auto die gebruik maakt van Arduino Arduino,, Arduino programmeertaal, motor bestuurder, een LCD-scherm te zien wat de huidige status van de auto en zelfs een Bluetooth-module voor draadloze commu
Arduino gebaseerd donker Switch

Arduino gebaseerd donker Switch

Arduino gebaseerde donkere Switch is een eenvoudig project die in feite voor Arduino-beginners die net begonnen met leren gebruiken van Arduino.Zoals de naam suggereert in dit project zullen we ON draaien de lichten automatisch als de omgevingstemper
ARDUINO gebaseerd IR afstandsbediening robot

ARDUINO gebaseerd IR afstandsbediening robot

Hallo iedereen. Dit mijn nieuwe project IR afstandsbediening robot met behulp van arduino. Dit is een eenvoudig ontwerp robot die kunt u gemakkelijk bouwen.Stap 1: vereisten:Projecteisen:Arduino uno Tsop1738 (ir ontvanger)H brug ic (L293D)Twee gelijk