Components and supplies
Graphic OLED, 128 x 64
Arduino UNO
3144 Hall Sensor
Project description
Code
Easy Peasy Tachometer
arduino
It is a home made reliable tachometer, that can be used with an Arduino UNO or NANO that you can use to measure the speed of rotating objects on tools, bicycles, and robotics. For a complete tutorial follow this link https://youtu.be/2-J4f8-RX90
Easy Peasy Tachometer
arduino
It is a home made reliable tachometer, that can be used with an Arduino Uno or Nano that you can make to measure the speed of rotating objects on tools, bicycles, and robotics.
Easy Peasy Tachometer
arduino
It is a home made reliable tachometer, that can be used with an Arduino UNO or NANO that you can use to measure the speed of rotating objects on tools, bicycles, and robotics. For a complete tutorial follow this link https://youtu.be/2-J4f8-RX90
Documentation
Hall Sensor wiring diagram
Hall Sensor wiring diagram
Hall Sensor wiring diagram
Hall Sensor wiring diagram
Comments
Only logged in users can leave comments
Anonymous user
2 years ago
hello sir, thanks to you and your assistant (the dog), I assume that the formula in your code is made to measure the rpm by detecting only one piece of metal around the on spinning circle, I'd like to place more then on target on the circle I'd like to mesure the RPM, is it enough to divide your result by 2 if I place 2 targets, or by four if I put on 4 targets and so on ? My reason for asking is that I would like to mesure rmp from 20 to 700 and i thing that at low rpm it won't work with only one "target" excuse me in advance for my bad english cheers jean michel
Anonymous user
2 years ago
Hi there, thank you very much for this project I needed a reliable rpm meter. I just have one question my 3144 hall sensor is reading about 100rpm to slow is there a way to edit the code to get it closer to the real rpm? Many thanks J
Anonymous user
2 years ago
Easy Peasy Tachometer 2.0 (with updated library for SSD1306(128x64 #include <Adafruit_GFX.h> #include <Adafruit_SPITFT.h> #include <Adafruit_SPITFT_Macros.h> #include <gfxfont.h> #include <Adafruit_SSD1306.h> #include <splash.h> #include <Wire.h> #define OLED_WIDTH 128 #define OLED_HEIGHT 64 #define OLED_ADDR 0x3C Adafruit_SSD1306 display(128, 64); float value=0; float rev=0; int rpm; int oldtime=0; int time; void isr() { rev++; } void setup() { display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); digitalWrite(HIGH, 2); attachInterrupt(0,isr,RISING); } void loop() { delay(3000); detachInterrupt(0); time=millis()-oldtime; rpm=(rev/time)*60000; oldtime=millis(); rev=0; display.clearDisplay(); display.setTextSize(5); display.setTextColor(WHITE); display.setCursor(5,20);// Vertical, Horizontal. display.println(rpm); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(15,0); display.println("RPM"); display.display(); attachInterrupt(0,isr,RISING); }
Anonymous user
2 years ago
Can anyone tell me the code for this but with 16*2 lcd screen instead of OLED screen. I am totally amature at coding.
Anonymous user
2 years ago
hello sir, thanks to you and your assistant (the dog), I assume that the formula in your code is made to measure the rpm by detecting only one piece of metal around the on spinning circle, I'd like to place more then on target on the circle I'd like to mesure the RPM, is it enough to divide your result by 2 if I place 2 targets, or by four if I put on 4 targets and so on ? My reason for asking is that I would like to mesure rmp from 20 to 700 and i thing that at low rpm it won't work with only one "target" excuse me in advance for my bad english cheers jean michel
Anonymous user
2 years ago
Can anyone tell me the code for this but with 16*2 lcd screen instead of OLED screen. I am totally amature at coding.
Anonymous user
3 years ago
Hi there, thank you very much for this project I needed a reliable rpm meter. I just have one question my 3144 hall sensor is reading about 100rpm to slow is there a way to edit the code to get it closer to the real rpm? Many thanks J
Anonymous user
4 years ago
You link an Arduino UNO Rev 3, which only features one 5V pin location on the analog side, yet in the above schematic you show two 5V pin locations. Can you explain this?
Anonymous user
4 years ago
Nice solution, but I think you don't need to use de millis() function because you're already using a 2 second delay, and during this time the interrupt will count revolutions, then after detachInterrupt(0) just rpm = rev*30 would give the same result.
brewmorris01
5 years ago
Easy Peasy Tachometer 2.0 (with updated library for SSD1306(128x64 #include <Adafruit_GFX.h> #include <Adafruit_SPITFT.h> #include <Adafruit_SPITFT_Macros.h> #include <gfxfont.h> #include <Adafruit_SSD1306.h> #include <splash.h> #include <Wire.h> #define OLED_WIDTH 128 #define OLED_HEIGHT 64 #define OLED_ADDR 0x3C Adafruit_SSD1306 display(128, 64); float value=0; float rev=0; int rpm; int oldtime=0; int time; void isr() { rev++; } void setup() { display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); display.clearDisplay(); digitalWrite(HIGH, 2); attachInterrupt(0,isr,RISING); } void loop() { delay(3000); detachInterrupt(0); time=millis()-oldtime; rpm=(rev/time)*60000; oldtime=millis(); rev=0; display.clearDisplay(); display.setTextSize(5); display.setTextColor(WHITE); display.setCursor(5,20);// Vertical, Horizontal. display.println(rpm); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(15,0); display.println("RPM"); display.display(); attachInterrupt(0,isr,RISING); }
PracticeMakesBetter
2 Followers
•4 Projects
13
11
Anonymous user
2 years ago
Nice solution, but I think you don't need to use de millis() function because you're already using a 2 second delay, and during this time the interrupt will count revolutions, then after detachInterrupt(0) just rpm = rev*30 would give the same result.