ich habe einen Arduino UNO und möchte die Geschwindigkeit auf einem Looping messen. Dazu sollen 2 Infrarot Leds mit 38kHz angesteuert werden. 2 Empfänger dedektieren das Signal der LED. Bei Unterbrechung der ersten Lichtschranke soll ein Timer gestartet werden. Wir die zweite Lichtschranke durchfahren soll die Zeit gestoppt werde. Die Zeit soll auf einer 4x7Segmentanzeige
( Whadda WPI425 Display-Modul) angezeigt werden. Die ersten zwei Stellen sollen Sekunden anzeigen. Die letzten beiden hundertstell und zehntel Sekunden. Ein Taster soll die Anzeige wieder auf Null setzen können.
Ja.
Und weil ich grundsätzlich nicht langweilig bin:
Was sind das für Empfänger?
Davon hängt ab, wie die Behandlung der Signale erfolgt.
Wenn Du digitale Empfänger hast, könnte die Auswertung auch invertiert notwendig sein.
Bei einem analogen Pegel muss ein Grenzwert vorgegeben sein, auf dem reagiert werden muss...
Die Auswertung selbst ist nicht weiter schlimm.
Eine Schrittkette mit folgenden Steps:
Erste Durchlaufzeit merken.
Zweite Durchlaufzeit merken.
Erste Zeit von zweiter Zeit abziehen -> Ergebnis
Es empfiehlt sich ein Timeout nach dem ersten Step auszuwerten, damit eine rausgefallene Kugel zwischen den beiden Sensoren nicht das System durcheinander bringt...
Dann empfehle ich das in mehreren Schritten zu bauen:
A) Die Sensoren und Berechnung mit dem Seriellen Monitor
Wenn das funktioniert
B) Den Display danach erst einfach beschreiben
und in Folge
C) Die Ausgabe integrieren
Ihr merkt ja dass ich Anfänger bin. Hab nur etwas mit dem Board gespielt. Also bitte Geduld haben.
Die Empfänger geben ein digitales Signal zurück.
Wir müssen erstmal leicht einsteigen.
Wie mache ich die PWM?
Mit analogwrite() kann ich ja nur des Tastverhältnis ändern. die Frequenz ist fest bei ca. 490 Hz. Mit tone() kann ich 38kHz einstellen. Nur werden dann die 38kHz immer ausgegeben, egal was in der Main() passiert?
Ich halte es für wenig sinnvoll, einen Arduino zu verwenden, um ein 38 kHz Signal für eine Lichtschranke zu erzeugen.
Die LED der von mir verwendeten vor Fremdlicht geschützten Reflexkoppler schließe ich einfach über einen Vorwiderstand an Spannung an und werte den Kopplertransistor über einen Arduino-Eingang aus. Dann sich der Arduino um sinnvolle Dinge wie Tastenauswertung und Anzeigen kümmern.
Ich habe diese Mini-Lasermodule verwendet, den Fototransi in ein Röhrchen verfrachtet und das Thema war erledigt. Ausrichtung war bissel frickelig, habe dazu um den Empfänger eine weiße Pappscheibe geklebt, dann sieht man prima wo der Laser hinleuchtet.
Abszand 2 Meter war kein Problem, Sonne war auch wurscht.
Es wäre interessant zu erfahren, was für Empfänger verwendet werden. Wenn es Empfänger für Infrarot Fernbedienungen sind, kann es mit einem dauerhaft gepulsten Signal Probleme geben, weil diese Empfänger auf ein doppelt moduliertes Signal ausgelegt sind. Es sind Pausen zwischen 38kHz „Modulationspaketen“ notwendig.
Ich habe 2 Arten von Empfänger: TSOP31233 und diesen noName von Conrad: 1567234 - NA
Wozu Pausen?
Habe es gerade mal aufgebaut. Es gibt immer eine fallende Flanke, wenn der Empfänger wieder ein Signal empfängt. D.h. Empfänger sieht die 38kHz. Dann Unterbrechung des "Strahles" und beim wiederauftreffen des Strahles gibt es eine fallende Flanke. Die will ich auswerten.