Drehzahlmesser mit Arduino

17 Kommentare
Drehzahlmesser mit Arduino

Heute möchte ich euch kurz zeigen, wie Ihr euch recht simpel einen  Drehzahlmesser  bauen könnt.
Ich brauchte für ein Projekt von mir die Drehzahl eines Motor und damit konnte ich mir helfen. Hier im Bild ist der Testaufbau zu sehen.

Wie bin ich vorgegangen?

1. Aus einem Stück Pappe habe ich mir einen Scheibe ausgeschnitten.
2. Ein Stück am Rand rausgeschnitten, damit hier die Lichtschranke was zum Zählen hat.
3. Das Stück Pappe auf die Motorwelle geklebt.
4. Die Lichtschranke am Rand der Scheibe ausgerichtet, siehe Bild.

Die Beschaltung

Als Vorwiederstand für die Lichtschranke, wurde ein 200Ohm Widerstand verwendet, da die Diode mit 1.2 Volt arbeitet.



Funktionsweise

Hier der Aufbau der Lichtschranke:
Eine LED (links) sendet Licht an eine Fotodiode (rechts) und wenn die Scheibe sich dreht, entstehen hier immer dann wenn die Lücke kommt, ein Impuls den man mit dem Arduino auswerten (Zählen) kann.

Der Programmcode:

Die Bibliothek U8g2lib.h muss separat installiert werden, wie das geht seht Ihr hier.

#include <arduino.h>
#include <u8g2lib.h>

#ifdef U8X8_HAVE_HW_SPI
#include <spi.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <wire.h>
#endif
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE);

byte DZM_InputPin = 2;
volatile unsigned long RPM_T2, RPM_Count;
unsigned long RPM , RPM_T1;

void setup() {
  u8g2.begin();
  pinMode(DZM_InputPin, INPUT_PULLUP);
  RPM_T1 = 0;
  RPM_T2 = 0;
  RPM_Count = 0;
  attachInterrupt(0, RPM_Meter, FALLING);    // Interrupt0 wird bei fallender Flanke auf Pin2
}

void loop() {
  char RPMStr[5];
  u8g2.clearBuffer();         // löschen des Interen Speicher
  u8g2.setFont(u8g2_font_ncenB14_tr); // auswahl der Schriftart
  if (RPM_T2 > RPM_T1) {
    RPM = (unsigned)(long)(60000 * RPM_Count / (RPM_T2 - RPM_T1));
    RPM_T1 = RPM_T2;
    RPM_Count = 0;
  }
  else {
    RPM = 0;
  }
  sprintf(RPMStr, "%4u", RPM);
  u8g2.drawStr(0, 20, RPMStr); 
  u8g2.sendBuffer();
}
void RPM_Meter () {
  RPM_Count++;
  RPM_T2 = millis();
}

Folgende Bauteile wurden verwendet:

1x 1,3″ OLED Display 128×64 I2C SH1106 – blue https://arduino-projekte.info/products/13-oled-display-128x64-i2c-sh1106-blue/
1x UNO R3 ATmega328P Board mit USB Kabel Arduino Uno R3 kompatibel https://arduino-projekte.info/products/arduino-uno-r3-clone/

Arduino Arduino Uno Drehzahlmesser Lichtschranke Projekte

17 Kommentare


Hallo Dieter,
ich habe es nicht ausprobiert, aber ich würde alles was long ist mal in ein float umändert. Long sind ganze zahlen und float sind Kommar Zahlen. Vielleicht reicht das schon aus.

Gruß
Tobias

arduino projekte


Schönes Projekt!

Ich hatte mir mal in den Kopf gesetzt, die Geschwindigkeit eines Plattenspielers anzeigen zu lassen. Den Sensor hatte ich über eine Reflex-Lichschranke realisiert, was auch funktionierte. Nur der Zähler fehlt noch.
Was müsste an der Programmirung geändert werden, damit 2 Stellen hinter dem Komma angezeigt werden?
Vielen Dank.

DieterAchenbach

Ja das funktioniert mit dem richtigen Code

Maggus007

Hallo!!
mich würde auch interessieren wie ich die den Hall Sensor genauso wie Gabellichtschranke anschliessen kann.
Lichtgabel Sensor bei mir hat bei 2000 u/min aufgehört zu zählen.
Jedoch habe ich es Geschaft die Anzeige auf dem Extrnem Display als fliessende Diagram anzuzeigen. Nur aber ehrlich sein. ich verstehe die Berechnung Code nicht. Wenn hier jemand etwas Thema aufklappen könnte? hätte mir das sehr geholfen.
Danke

vlas

Hallo,
Ich würde den Drehzahlmesser gerne mit einem Hallsensor bauen und ich möchte, dass die Werte in Arduino Fenster am PC ausgegeben werden. Ich bin nicht so gut in Programmieren und wollte deshalb fragen, wie der Code dafür aussehen würde.
LG Jakob

Jakob

Hinterlassen Sie einen Kommentar

Bitte beachten Sie, dass Kommentare vor der Veröffentlichung genehmigt werden müssen.