Analoges Signal für Interrupt

Hallo,

ich würde gern mit einem Helligkeitssensor einen Interrupt auslösen.
also Sensor an Pin 2 oder 3 und z.B. mit "attachInterrupt(interruption, ZaehlerErhoehen, CHANGE);" abfragen.
Wäre das möglich oder geht hier nur ein digitales Signal (mind. 5V)?

Viele Grüße

Gerald

attachInterrupt() geht nur mit den digitalen INT0 und INT1 (bei anderen, als dem ATMege328P kann es weitere geben)
Analoge Werte kann es so nicht.
Erst nach einer Signalaufbereitung.

Wäre das möglich oder geht hier nur ein digitales Signal (mind. 5V)?

Beachte die Schmitttrigger Schaltschwellen.
Stehen im Datenblatt.

Du möchtest vermutlich den AnalogComparator verwenden, warum auch immer....
Und nein, dafür gibts nichts (von Arduino) vorbereitetes.
Das musst du selber machen.

ich würde gern mit einem Helligkeitssensor einen Interrupt auslösen.

Warum willst du das?
Ändert sich die Helligkeit so schnell?

OK und Danke für die Antwort.

dann mache ich es mit einem Helligkeitssensor-Modul das über einen Comperator-Chip (LM393)
auch digitale Signale liefert.

Das sollte funktionieren.

Viele Grüße

Gerald

Wieso brauchst du dafür einen Interrupt? Ein analoges Signal einlesen ist nur im Vergleich zum Prozessortakt langsam. Das geht aber in ein paar hundert Mikrosekunden

Also einfach per analogRead() einlesen und vergleichen

Der UNO hat übrigens auch einen Komparator eingebaut. Allerdings wird der von der IDE nicht unterstützt (gibt aber eine Library dafür) und er hat keine Hysterese.

Das sollte funktionieren.

Offensichtlich soll dein Vorhaben geheim bleiben.

Wie auch immer...
Viel Erfolg!

Der Interrupt kann auch mit einem analogen Signal ausgelöst werden. Die Schaltschwellen sind fix und können damit nicht eingestellt werden. Um die Schaltschwellen einstellen zu können braucht es einen Komparator bzw die Dimensionierung des Analogteils so daß die Signalspannung in die Scaltschwelle fällt.

Ich sehe aber auch nicht die Notwendigkeit einen Interrupt zu verwenden. Auswertungsverzögerungen von einigen 100mS sind für einen Anwender nicht bemerkbar.

Grüße Uwe

Auswertungsverzögerungen von einigen 100mS sind für einen Anwender nicht bemerkbar.

Wenn der ADC im FreeRunning Mode läuft, sind deutlich weniger als 100ms drin.
Nämlich 0,1ms = 100µs

Wenn man einen ATMega32U4 (oder seinen kleineren Bruder) verwendet, kann man das nochmal ca halbieren

Wenn das keine Reaktionszeiten sind, dann weiß ich es auch nicht.....

Na ja, vielleicht hat er ja ne loop time mit delays von mehreren Stunden

Selbst dann....

Hallo,

der Grund, warum ich eine Fotodiode zur Interruptsteuerung nutzen will, ist dass ich ein funktionierenden Scetch habe, der mit Taster funktioniert (nicht von mir). Es handelt sich um einen Reaktionstester also Drücken Programm startet nach Zufallszeit leuchtet eine LED jetzt so schnell es geht wieder drücken und die verstrichene Zeit wird ausgegeben. Das wollte ich nun zu einem Laserpistolenspiel umstricken also an Stelle des Tasters einen Laserstrahl verwenden.

Viele Grüße

Gerald

Interessant!

Hallo Pauli58,

Ich gaube es würde auch funktionieren, wenn man kein Interrupt mach, auf die paar Milli- oder Mikrosekunden wird es nicht darauf ankommen denke ich.

Aber je nach dem wie du willst, mit einem Schmitt-Trigger wird das auch funktionieren, da hast du allerding auch wieder die Schaltzeit des ICs.

Und wenn du delays in deinem Sketch hast, dann versuch sie mit Zeitvergleichen auszubauen.
Hier einen Link: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay

MfG bdorer

Bei einer Fotodiode brauchst Du auf alle Fälle einen Operationsverstärker um das Signal aufzubereiten.
Außerdem solltest Du dir Gedanken machen wie Du die Diode vor Umgebungsicht abschotten wilst.
Grüße Uwe

Hallo Uwe,

ich hab mich bei der Bezeichnung des Sensors falsch ausgedrückt. Gemeint habe ich einen Fotowiderstand. Das Modul habe ich schon und wenn ich richtig liege kann man den Schwellwert über einen Poti einstellen. Das Umgebungslicht sollte nur nicht so sehr schwanken. Aber da der Laser ziemlich hell ist, sollte es klappen.

Grüße

Gerald

Ein Fotowiderstand reagiert aber langsam.
Grüße Uwe

Witzig...

Zu Anfang sagte ich ja schon...

Du möchtest vermutlich den AnalogComparator verwenden, ...

Und bis jetzt sehe ich noch nicht, dass etwas dagegen spricht.

LDR, ein Widerstand, und ein Poti, mehr braucht es dafür nicht.

Wie sich LDR, und Laser verstehen?
KA.

Pauli58:
... Aber da der Laser ziemlich hell ist, sollte es klappen.

Ich schließe mich Uwe an. Ein LDR ist schnarchlahm. Nimm eine Fotodiode, achte auf übereinstimmende Wellenlänge.

Gruß

Gregor

uwefed:
Bei einer Fotodiode brauchst Du auf alle Fälle einen Operationsverstärker um das Signal aufzubereiten.

Es geht auch ohne mit einem sehr hochohmigen Widerstand. Dann ist es halt wieder langsam

Ein Fototransistor ist eigentlich ein guter Kompromiss zwischen Photodiode und LDR was die Geschwindigkeit betrifft und einfach zu handhaben

Hallo,

so lange sich die Geschwindigkeit der Verarbeitung nicht großartig ändert, ist das für mich nicht so wichtig. Es geht mir nicht um die tatsächliche Reaktionszeit. Mir reicht der Vergleich der Zeiten zwischen den Schützen.

Grüße

Pauli58:
so lange sich die Geschwindigkeit der Verarbeitung nicht großartig ändert, ist das für mich nicht so wichtig. Es geht mir nicht um die tatsächliche Reaktionszeit. Mir reicht der Vergleich der Zeiten zwischen den Schützen.

Na, dann versuch's einfach mit LDRs. Weil: Versuch macht kluch!

Gruß

Gregor