Re: Der Hall-Sensor
Verfasst: Sa 4. Feb 2023, 19:07
Ich habs gefunden. Das war von 2017. In dem Jahr habe ich angefangen mit dem Arduino und mit "C". Ich teste das mal heute abend. Es interessiert mich, wie weit das richtig gezählt hat. Ich habe irgendwas mit 2000Hz im Hinterkopf.
Hier ist das Programm. Ich muss es noch ein bischen umstellen, dass es mit der heutigen Display Lib. läuft. Aber jetzt ist erst mal Fernsehen angesagt. Bis später
So, ich habe das Programm an die neue Lib. angepasst und das Programm getestet. Also es macht nicht 2.000Hz sondern 20.000Hz problemlos. Habe es noch ein wenig mehr strapaziert und 25.000Hz ist es auch noch gut. Sieh mal einer an, das dachte ich nicht. Also 20.000 Impulse in der Sekunde zählt das Ding noch sauber. Ich hänge mal einen Hallsensor dran, dann gehts weiter. Und nen schnellen Elektromotor, der genug Umdrehungen macht. Das wird ein Spielchen für morgen. Ich weiß auf die Schnelle gerade nicht, wo ich einen schnellen Motor her bekomme, dem ich ein paar Magneten umhängen kann. Meine Schrittmotoren sind Schlaftabletten in Sachen Drehzahl
Und 24Volt DC-Motoren habe ich noch, aber die sind auch Schlaftabletten in Sachen Drehzahl. Denen geht bei 300-400 Umdrehungen auch die Luft aus, nur in Sachen Kraft sind die nicht sooo schlecht.
Hier ist das Programm. Ich muss es noch ein bischen umstellen, dass es mit der heutigen Display Lib. läuft. Aber jetzt ist erst mal Fernsehen angesagt. Bis später

So, ich habe das Programm an die neue Lib. angepasst und das Programm getestet. Also es macht nicht 2.000Hz sondern 20.000Hz problemlos. Habe es noch ein wenig mehr strapaziert und 25.000Hz ist es auch noch gut. Sieh mal einer an, das dachte ich nicht. Also 20.000 Impulse in der Sekunde zählt das Ding noch sauber. Ich hänge mal einen Hallsensor dran, dann gehts weiter. Und nen schnellen Elektromotor, der genug Umdrehungen macht. Das wird ein Spielchen für morgen. Ich weiß auf die Schnelle gerade nicht, wo ich einen schnellen Motor her bekomme, dem ich ein paar Magneten umhängen kann. Meine Schrittmotoren sind Schlaftabletten in Sachen Drehzahl


Code: Alles auswählen
//#########################################
//######## Frequenzzähler von 2017#########
//#########################################
#include <LiquidCrystal_I2C.h> // LCD Display
// Displayadresse ist 0x27 oder 0x3F
LiquidCrystal_I2C lcd(0x27, 20, 4);
unsigned long messzeit = 0;
unsigned long startzeit = 0;
unsigned long millimessung = 0;
unsigned long ergebnis = 0;
int led = 13;
int pin = 7;
int messung = LOW;
int messungAlt = LOW;
int zaehler = 0;
//-----------------------------------------------------------------------------------------------
void setup() {
pinMode(pin, INPUT);
pinMode(led, OUTPUT);
Serial.begin(9600);
lcd.begin();
lcd.backlight();
lcd.clear();
startzeit = millis();
lcd.setCursor(0, 0); lcd.print(" ");
lcd.setCursor(0, 0); lcd.print ("Gemessene Frequenz");
lcd.setCursor(10, 2); lcd.print(" ");
lcd.setCursor(10, 2); lcd.print("Hz");
}
//-----------------------------------------------------------------------------------------------
void loop() {
messung = digitalRead(pin);
// Auswertung Sinus Start mit High //
if (messung == HIGH && messungAlt == LOW) {
digitalWrite(led, HIGH);
messungAlt = messung;
}
// Auswertung ein Sinus High-Low //
if (messung == LOW && messungAlt == HIGH) {
digitalWrite(led, LOW);
messungAlt = messung;
millimessung = millis();
messzeit = millimessung - startzeit;
zaehler = zaehler + 1;
if (messzeit >= 1000) {
ergebnis = zaehler;
zaehler = 0;
lcd.setCursor(0, 2); lcd.print(" ");
lcd.setCursor(0, 2); lcd.print(ergebnis);
startzeit = millis();
}
}
}