Liebe Arduino Bastler,
ich beginne gerade damit mich als frisch gebackener Physiklehrer für Arduino zu interessieren. Ich bastle seit Tagen an einer Laser-Lichtschranke zur Geschwindigkeitsmessung und komme an einem entscheidenden Punkt nicht weiter.
Ich habe ein zweizeiliges LCD-Display, Fotodioden GL5539 und Laserdioden (5V).
So sieht aktuell mein Code aus:
#include <LiquidCrystal.h> //LCD-Bibliothek laden
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int LS1= A0; // "LS1" steht für "Lichtschranke1"
long sensorWert1= 0;// Sensorwert der LS1
int LS2= A1; // Lichtschranke2
long sensorWert2= 0; // Sensorwert der LS2
int a= 10000; // Abstand zwischen LS1 und LS2
int zeit1 = 0; // Zeitpunkt durchschritt LS1
int zeit2 = 0; // Zeitpunkt durchschritt LS2
int zeit3 = 0; // Zeitdiffernez zwischen LS1 und LS2
int v = 0; // Geschwindigkeit
void setup()
{
lcd.begin(16, 2); //16 Zeichen in 2 Zeilen.
}
void loop()
{
lcd.setCursor(0, 0);
sensorWert1 = analogRead(LS1);
if (sensorWert1 <= 500)
{zeit1 = millis();}
sensorWert2 = analogRead(A1);
if (sensorWert2 <= 500)
{zeit2 = millis();}
zeit3=(zeit2-zeit1);
if (zeit3 <=0)
{
lcd.print ("Geschwindigkeit:");}
else
{
lcd.setCursor(0, 1);
v=(a/zeit3);
lcd.print(v);
}
}
Das Ergebnis sollte in der Einheit (m/s) sein. Leider funktioniert die Rechnung irgendwie nicht. Es müsste eine Kommazahl mit zwei Nachkommastellen angezeigt werden...
Ich vermute, es liegt irgendwie an den Variablen.