Hallo zusammen,
ich habe ein Problem mit einem ESP8266 D1 Mini und einem 5V-Relaismodul.
Ich möchte später über den ESP8266 einen WLAN-Access-Point mit dem Namen
lamp erstellen. Wenn sich ein Gerät mit diesem WLAN verbindet, soll das
Relais jeweils seinen Zustand wechseln (EIN/AUS).
Das eigentliche Problem ist aber, dass ich das Relais momentan überhaupt
nicht zuverlässig über den D1 Mini schalten kann.
Meine Verkabelung:
Relais VCC → D1 Mini 5V
Relais GND → D1 Mini GND
Relais IN → D1 Mini D1
Das Relais verwendet ein Songle SRD-05VDC-SL-C.
Was ich bisher festgestellt habe:
Wenn ich IN direkt mit GND verbinde, schaltet das Relais EIN.
Wenn ich IN direkt mit 5V verbinde, passiert scheinbar nichts bzw. das
Relais bleibt in seinem bisherigen Zustand.
Wenn ich im Arduino-Code D1 als Relais-Pin definiere und das Relais an
D1 angeschlossen ist, bleibt das Relais dauerhaft EIN.
Wenn ich im Arduino-Code stattdessen D2 als Relais-Pin definiere, das
Relais aber physisch weiterhin an D1 angeschlossen ist, bleibt das
Relais dauerhaft AUS.
Ich habe auch folgenden Minimaltest ausprobiert:
const int pin = 5;
void setup() {
pinMode(pin, OUTPUT);
}
void loop() {
digitalWrite(pin, HIGH);
delay(200);
digitalWrite(pin, LOW);
delay(5000000);
}
Auch damit bleibt das Relais eingeschaltet, obwohl ich davon ausgegangen
bin, dass `HIGH` das Relais ausschalten müsste.
Zum Vergleich: Wenn ich im Code D2 verwende, während das Relais physisch
an D1 angeschlossen ist, bleibt das Relais ausgeschaltet.
Ich bin daher etwas ratlos, ob das Problem
1. am D1 Mini bzw. der Pinbelegung,
2. am Relaismodul bzw. dessen Eingangsschaltung,
3. an der LOW-/HIGH-Aktivierung,
4. an einer speziellen Beschaltung des Relaismoduls
5. oder eventuell an einem defekten Bauteil
liegt.
Hat jemand eine Idee, warum sich das Relais an D1 nicht mit HIGH und LOW
schalten lässt, während es bei Verwendung von D2 im Code ausgeschaltet
bleibt?
Vielen Dank!
Hallo, dieses Modul ist „aktiv LOW“. Pin D1 als Ausgang definieren und dann mit digitalWrite auf LOW setzen. Versorgungsspannung ? Zeige mal einen Bild vom Aufbau und oder einen Schaltplan. Gruß bastler2022
:
Bearbeitet durch User
Abgesehen davon würde ich Delay durch etwas anderes ersetzen. Delay blockt das Programm vollständig. https://forum.arduino.cc/t/anstatt-delay-millis-verwenden-fur-verzogerung/971495 ciao gustav
Karl B. schrieb: > Delay blockt das Programm vollständig. Nein, auf dem ESP8266 wird innerhalb von delay() immer wieder yield() aufgerufen, um Rechenzeit für Hintergrundprozesse zur Verfügung zu stellen.
3,3V IO und 5V Ansteuerung des Relais passt nicht. Da dürfte ein Optokoppler drin sein, ist ja Makerschrott und ungenannt/hochgeheim, aber "lowaktiv" deutet drauf hin, sonst wäre der GPIO schon verdampft. Das führt dann dazu das die LED im Opto immer ein wenig oder ein wenig mehr an ist -> Relais immer aktiv. Bau eine vernünftige Schaltung, mit einem vernünftigen Relais (eins, das Netzspannung auch wirklich verträgt) und verzichte auf die dämliche idiotische Potentialtrennung zwischen Prozessor und Spule, und siehe da es wird gehen.
Mach an den Ausgang D1 eine vernünftige NPN-Transistor Stufe mit einem anständigen 5 Volt Relais dran!
Bei den fertigen Relais-Shields für den ESP8266 Mini-D1 ist der Transistor schon drin!
Denis schrieb: > Wenn ich IN direkt mit GND verbinde, schaltet das Relais EIN. > Wenn ich IN direkt mit 5V verbinde, passiert scheinbar nichts bzw. das > Relais bleibt in seinem bisherigen Zustand. Du gehst also nur nach Gehör und hast kein Messgerät? Dann ist meine Vermutung, dass das Relais AN (Pin := LOW) ist während du das programm über überträgst. Denis schrieb: > pinMode(pin, OUTPUT); Dann schaltest du den Output richtig, der Pin bleibt LOW. Denis schrieb: > digitalWrite(pin, HIGH); > delay(200); Dann schaltest du 200ms das Relais AUS, das ist aber zu träge und macht gar nichts. Denis schrieb: > digitalWrite(pin, LOW); > delay(5000000); Dann schaltest du das Relais wieder AN (für die nächsten 83 Minuten). Du hörst also keinen Unterschied. Toggle doch einfach mal alle 2 Sekunden oder so hin und her. Oder löte das Relais an einen anderen Pin, oder zeige einen Schaltplan oder Link vom Relais Modul.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.
