Was ist an dem Programm falsch?
Hallo, ich und meine Freundin müssen für die Schule ein Projekt bauen. Wir machen einen schießstand uns dafür muss man auch programmieren. Unser Ziel war es auf einem Lcd display die Punkte anzuzeigen und jenachdem wie viel Zeit vergangen ist gibt es verschieden viel Punkte. Das Programm das wir geschrieben haben funktioniert aber leider nicht.
Zur erklärung wir benutzen fürs abschießen einen lichtempfindlichen Widerstand und einen Laserpointer.Außerdem benutzen wir einen Arduino Uno.
Das Programm zeigt nur irgendeine Zahl an sobald man mit dem Laserpointer auf dem Wiederstand trifft und wir wissen nicht genau was wir mit ihr machen können ,vielleicht kann uns ja irgendjemand helfen,ich wäre sehr dankbar.
Nachfragen könnt ihr auch gerne, wenn ich etwas vergessen habe.
Ich hoffe man kann allses gut erkennen.
2 Antworten
Du musst die drei Variablen für die millis() als unsigned long statt int deklarieren. Die laufen sonst ständig über da millis() selbst auch unsigned long ist. Dann bekommet du auch die richtigen millisekunden angezeigt.
Und das Delay in die If ans Ende. Du hast es außerhalb, so dass der Analogeingang nur jede Sekunde abgefragt wird. Ist der Pointerstrahl nur kurz innerhalb dieser Sekunde, wird er nicht erfasst. Und du bist nur auf eine Sekunde genau, was die Reaktionserfassung angeht.
Die Klasse LiquidCrystal_I2C ist nicht definiert, da in Zeile 4 der include Part auskommentiert ist? Scheinbar beziehen sich alle folgenden Anweisungen auf Funktionen aus dieser Klasse?
Nein, das ist nicht auskommentiert. Das "#include" ist eine C-Präprozessor-Anweisung, die beginnen alle mit "#".
Kommentare sehen in C/C++ anders aus (/* … */ oder //).