Hallo zusammen,
ich habe folgende Situation:
Ich bin hobbytechnisch mit Arduino unterwegs. LED Schaltungen, bespielen von ATTinys, Steppermotor & Servosteuerungen - vieles in die Richtung schon gebaut und bis heute ohne Probleme im Einsatz.
Für viele der Dinge gab es Tutorials, die mich Dinge gelehrt haben, die ich heute immer wieder brauchen kann.
Jetzt bin ich aber an einem Punkt, an dem ich auf ein neues Thema stoße und sowohl in der Komponentenwahl als auch der Durchführung mit den bisherigen Komponenten an Grenzen stoße.
Bisher habe ich eine Steuerung mit einem Distanzsensor als Bewegungsmelder genutzt. Lief einwandfrei - bis darauf, dass dieser sogar "Winddurchzug" als Bewegung erkennt.
Also soll eine ordentliche Lichtschranke her. Standard gibts hier nicht, die Steuerung läuft auf Arduino also warum nicht irgendwas feines basteln?
So bin ich auf die Suche gegangen und bin auf viele, viele viele Gabellichtschranken gestoßen, die mir nix bringen, da ich eine Distanz von >1m mit der Lichtschranke kontrollieren muss.
Da der feine Herr für erste Tests nicht zu viel Geld ausgeben wollte, hat er bei einem Online-Elektronikhandel folgende Komponenten bestellt:
Infrarot-Empfänger SHARP GP1UD282RK, 36,7 kHz
So...
Zusätzlich noch den 43 Ohm Widerstand und einen 43 mü Kondensator dazu geholt.
Aufbau:
IR-Empfänger wie im Datenblatt angegeben, das Vout an den Arduino Pin 2 - Annahme: Digitales Signal. 1/0.
IR-Diode mit einem 5kOhm Widerstand an Pin 4 - Im Loop per DigitalWrite auf "AN" gestellt. Erstmal, später soll bei Auslösung die Funktion des Geräts stattfinden und die LED entsprechend ausgehen bis die Funktion des Geräts durchgeführt wurde.
Pin 13, die Interne LED, dient als Signal dafür, ob die Lichtschranke unterbrochen wurde oder nicht.
Alles klar, alles geprüft und... Nichts. LED leuchtet durchgängig und bei Unterbrechung der Lichtschranke passiert nix.
Also mit SerialPrint den Sensor ausgeben lassen. Ergebnis: "2" Dauerhaft. Es ändert sich >nichts< an dem Wert.
Die Status-Variable, auf die der Sensor geschrieben werden soll, flackert jedoch fröhlich durch die Gegend. Wenn ich ein Bauteil auf dem Steckbrett bewege wechselt die nach belieben zwischen 1 und 0.
Am Sensor liegen 0,9V an (was mich auch gewundert hat, da er mindestens 2,5V braucht wenn ichs richtig gelesen habe) und die IR-Diode ist natürlich nicht erkennbar, ob da nun was rauskommt oder nicht. Dort liegen 1,2V an.
// Pin Definition
const int SensorPin = 2; // Infrarot Sensor
const int IRPin = 4; // Infrarot LED
const int StatusPin = 13; // Status LED
int status;
void setup() {
pinMode(SensorPin, INPUT);
pinMode(IRPin, OUTPUT);
pinMode(StatusPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(IRPin, HIGH);
status = digitalRead(SensorPin);
Serial.print("Sensor:");
Serial.println(SensorPin);
Serial.print("Status:");
Serial.println(status);
if (status == 1)
{
digitalWrite(StatusPin, LOW);
}
else if (status == 0)
{
digitalWrite(StatusPin, HIGH);
}
delay(1000);
}
Der Delay ist am Ende nur dazu da, dass mir der serielle Monitor nicht zumüllt und ich nix verpasse.
Also: Mein Bauteilwissen ist noch sehr weit am Anfang. Wenn mir hier jemand sagt: "Die zwei Komponenten zusammen werden nicht funktionieren" - super, dann weiß ich schon mal woran ich bin.
Wenn jemand Alternativkomponenten hat (Irgendwo gab es ein Tutorial, wo direkt ein IR-Paar verlinkt war - was nicht mehr erhältlich ist) bin ich natürlich sehr dankbar!
Am Code scheint mir nix unschlüssig, am Aufbau auch nicht. Was Schaltplanprogramme betrifft bin ich auch noch am Anfang, ergo kann ich da leider nicht wirklich was liefern
Könnte höchstens bei Bedarf was aufm Blatt aufzeichnen. Aller anfang ist halt eben schwer ![]()
Besten Dank schon einmal im Voraus!