Interrupt/normaler Pin Abfragehäufigkeit

Hallo, für ein Projekt muss mein Arduino ein Signal erkennen, das für ca. nur 0,0012 s den Pegel ändert. ist da ein normaler Pin schnell genug wenn ich mit digitalRead() abfrage oder soll ich direkt mit Portmanipulation arbeiten / einen Interrupt benutzen ?

Gruß Joshua

Das sind 1,2ms. Das ist noch recht lange. Dafür reicht auch digitalRead()

Wichtiger ist hier aber nicht wie lange das Signal anliegt, sondern wie oft es kommt und ob loop() schnell genug durchläuft um jedes Ereignis zu erfassen.

Ich möchte mit einer Phototdiode erkennen ob ein Laser unterbrochen wurde oder nicht, und dann eine Meldung auf der seriellen Schnittstelle ausgegeben. Ich lege die Photodiode so an den Arduino, das wenn der Laser unterbrochen ist, ein High gelesen wird. Kann ich das mit einem Pulldown machen?

Danke für die Antwort

Für eine Photodiode musst du etwas mehr Aufwand betreiben, da die nur einen sehr kleinen Photostrom haben: http://www.mikrocontroller.net/articles/Lichtsensor_/_Helligkeitssensor#Photodiode

Wenn du nicht unbedingt die Geschwindigkeit einer Photodiode brauchst sind Phototransistoren wesentlich einfacher zu handhaben. Aber das mit dem hochohmigen Widerstand als Spannungsteiler könnte reichen.

legotechnicus: Ich möchte mit einer Phototdiode erkennen ob ein Laser unterbrochen wurde oder nicht, und dann eine Meldung auf der seriellen Schnittstelle ausgegeben. Ich lege die Photodiode so an den Arduino, das wenn der Laser unterbrochen ist, ein High gelesen wird. Kann ich das mit einem Pulldown machen?

Danke für die Antwort

ok dann Könntest Du mehrere Probleme haben. Wie lange ist die Meldung die Du auf die serielel Schnittstelle schicken willst? Das mit der Fotodiode funktioniert nicht so einfach. Müßte aber mit einem Fototransistor auch funktionieren obwohl dieser langsam ist.

Grüße Uwe

Hi, danke für die Antworten, nachdem der Laser an dem Phototransistor unterbrochen wurde und auf der seriellen Schnittstelle ein Befehl gesendet wurde , habe ich genug Zeit. Ich werde es mit einem Fototransistor machen, wenn dieser in der Lage ist innerhalb 5ms yu agieren.

Gruß Joshua

legotechnicus:
Hi,
danke für die Antworten, nachdem der Laser an dem Phototransistor unterbrochen wurde und auf der seriellen Schnittstelle ein Befehl gesendet wurde , habe ich genug Zeit. Ich werde es mit einem Fototransistor machen, wenn dieser in der Lage ist innerhalb 5ms yu agieren.

Gruß Joshua

Fototransistoren sollten für sowas vollkommen ausreichen. Die Schaltzeit variiert je nach Typ. Die übliche “langsame” Zeit, wo hier drüber gesprochen wird, liegt im 2stelligen µs Bereich. Die Photodiode hat nur eine Schaltzeit von wenigen ns bis < 0,1 µs

Ob ein Interrupt notwendig ist, kommt auf die Programmierung an. Wenn deine loop häufig genug durchlaufen wird, sollte das kein Problem sein. Achte vorallem auch darauf, wie die Libarys intern arbeiten.