Devices & Components
Arduino Nano
Breadboard (generic)
Jumper wires (generic)
IR Proximity Sensor
Software & Tools
Arduino IDE
Project description
Code
Tachometer with IR Sensor
arduino
1#include <Arduino.h> 2#include <SPI.h> 3#include <Wire.h> 4unsigned long rpmtime; 5float rpmfloat; 6unsigned int rpm; 7bool tooslow = 1; 8 9void setup() { 10 Serial.begin(9600); 11 TCCR1A = 0; 12 TCCR1B = 0; 13 TCCR1B |= (1 << CS12); //Prescaler 256 14 TIMSK1 |= (1 << TOIE1); //enable timer overflow 15 pinMode(2, INPUT); 16 attachInterrupt(0, RPM, FALLING); 17} 18 19ISR(TIMER1_OVF_vect) { 20 tooslow = 1; 21} 22 23void loop() { 24 delay(1000); 25 if (tooslow == 1) { 26 Serial.println("Too Slow"); 27 } 28 else { 29 rpmfloat = 120 / (rpmtime/ 31250.00); 30 rpm = round(rpmfloat); 31 Serial.println("RPM = "); 32 Serial.println(rpm); 33 } 34} 35 36void RPM () { 37 rpmtime = TCNT1; 38 TCNT1 = 0; 39 tooslow = 0; 40} 41
Tachometer with IR Sensor
arduino
1#include <Arduino.h> 2#include <SPI.h> 3#include <Wire.h> 4unsigned 5 long rpmtime; 6float rpmfloat; 7unsigned int rpm; 8bool tooslow = 1; 9 10void 11 setup() { 12 Serial.begin(9600); 13 TCCR1A = 0; 14 TCCR1B = 0; 15 TCCR1B 16 |= (1 << CS12); //Prescaler 256 17 TIMSK1 |= (1 << TOIE1); //enable timer overflow 18 19 pinMode(2, INPUT); 20 attachInterrupt(0, RPM, FALLING); 21} 22 23ISR(TIMER1_OVF_vect) 24 { 25 tooslow = 1; 26} 27 28void loop() { 29 delay(1000); 30 if (tooslow 31 == 1) { 32 Serial.println("Too Slow"); 33 } 34 else { 35 rpmfloat 36 = 120 / (rpmtime/ 31250.00); 37 rpm = round(rpmfloat); 38 Serial.println("RPM 39 = "); 40 Serial.println(rpm); 41 } 42} 43 44void RPM () { 45 rpmtime 46 = TCNT1; 47 TCNT1 = 0; 48 tooslow = 0; 49} 50
Downloadable files
Tachometer with IR Sensor
Tachometer with IR Sensor

Comments
Only logged in users can leave comments