55 Geschwindigkeit messen auf der Modelleisenbahn mit Hall-Sensor TLE4905L od. IR-Sensor TCRT 5000
Автор: Gerhard Kruse
Загружено: 2024-01-12
Просмотров: 1071
Schnell mal eine Geschwindigkeitsmessung für die Modellbahn bauen.
Auch Messungen in beide Richtungen möglich ? Ja, kein Problem:
Mit Hall - Sensor TLE4905L oder Reflex - Lichttaster TCRT 5000.
Hall - Sensor auch bei Car-Syteme mit Lenkmagnet einsetzbar.
Die Spurgröße wird in der Software eingestellt.
Zum Einmessen mit Nachkommastellen, in der 5. Zeile von unten (int) löschen.
(sorgfältige Platzierung der Hall-Sensoren vorausgesetzt)
Die Software:
(Hier in dieser Beschreibung sind keine spitzen Klammern erlaubt.)
deswegen nur in der Zeile 4 und Zeile 5 -- 2 mal 2 X mit spitzer Klammer ersetzen,
siehe Softwarebild im Video, hier ist auch jede Zeile mit Kommentar.
Die Software kann für weitere Funktionen erweitert weden. (z.B. Blitzauslösung)
Der Arduino hat ja noch einige Pins frei.
0:33 Die Schaltung
1:00 Software
1:31 Beschreibung Hinweise
2:08 Berechnung der Geschwindigkeit
3:12 Funktionstest mit TLE4905L
4:06 mit TCRT 5000
Von hier direkt den Code in die Arduino IDE kopieren.
#define SENSOR1_PIN 2
#define SENSOR2_PIN 3
#define ABSTAND 0.007
#include XLiquidCrystal_I2C.hX // 2 mal X mit spitze Klammer ersetzen
#include XWire.hX // 2 mal X mit spitze Klammer ersetzen
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
pinMode(SENSOR1_PIN, INPUT);
pinMode(SENSOR2_PIN, INPUT);
lcd.init();
lcd.backlight();
lcd.setCursor(0,0);
lcd.print("Geschwindigkeit");
lcd.setCursor(0,1);
lcd.print(" Bereit ");
}
void loop()
{
if (digitalRead(SENSOR1_PIN) == LOW) {
Geschwindigkeitsmessung(SENSOR1_PIN, SENSOR2_PIN);
}
else if (digitalRead(SENSOR2_PIN) == LOW) {
Geschwindigkeitsmessung(SENSOR2_PIN, SENSOR1_PIN);
}
}
void Geschwindigkeitsmessung(int sensor1, int sensor2) {
unsigned long Startzeit = millis();
while (digitalRead(sensor2) == HIGH);
unsigned long Reisezeit = millis() - Startzeit;
float speed = ABSTAND / (Reisezeit / 1000.0);
speed *= 3.6;
speed *= 87;
lcd.setCursor(3,1);
lcd.print((int)speed);
lcd.print(" km/h ");
delay(2000);
lcd.setCursor(0,1);
lcd.print(" Bereit ");
}
Доступные форматы для скачивания:
Скачать видео mp4
-
Информация по загрузке: