Hi Community!!
Vorweg: All das hier ist komplettes Neuland für mich, also habt bitte Gnade ^^
Ich würde gerne über die Blynk-app per Step-schalter (Funktion im Anhang) 3 Relais eines 4er Relais-Moduls ansteuern. Daran hängt ein 3 Stufen regulierbarer AC (Wechselstrom-Entlüfter)
Zum Step-Schalter: Diesen habe ich in 1.0 steps eingeteilt von Einheit 1-3 und ohne loop.
Seine Funktion ist jetzt also folgende:
Über (+ Plus) schalte ich von 1 auf 2 auf 3, dann ist stop.
Und mit (- minus) von 3 auf 2 auf 1 wieder runter.
Dementsprechend soll zwischen den Relais gewechselt werden.
Aktuell steht es z.B auf 1: Relais 1 AN (Gebläse läuft auf Stufe 1)
Drücke ich auf 2: Relais 1 AUS und Relais 2 AN (Gebläse läuft auf Stufe 2)
Drücke ich auf 3: Relais 2 AUS und Relais 3 AN (Gebläse läuft auf Stufe 3)
Das 4te Relais steure ich separat an und verwende dies als AN/AUS-Schalter.
Ich habe leider überall im Netz ausschließlich Tutorials, Videos und Sketches gefunden in denen man pro Schalter/Taster jeweils ein Relais anscheuert. Problem dabei ist, das bei 3 Relais auch der Fehler unterlaufen kann, das 2 Relais gleichzeitig geöffnet sind, und das würde in meinem Fall einen Kurzen verursachen. Es darf immer nur ein Relais AN sein, während alle anderen AUS seien müssen.
Ich hoffe dieser Post ist nicht all zu verwirrend..
Mit einem sketch kann ich leider nicht dienen, da ich mindestens 6 verschiedene offen habe und überall was anderes teste ohne eigentlich zu wissen was ich da tue.
Um es einfacher zu gestalten habe ich die Funktion mit LEDs nachgebaut.
Basic-sketch für die benutzung von Blynk wäre folgende:
#define BLYNK_PRINT Serial
#include <SPI.h>
#include <Ethernet.h>
#include <BlynkSimpleEsp8266.h>
#include <Wire.h>
char auth[] = "_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ";
char ssid[] = "_ _ _ _ _ ";
char pass[] = " _ _ _ _ _ "
#define //Sensor und Pin-Nummer
// This function sends Arduino's up time every second to Virtual Pin (5).
// In the app, Widget's reading frequency should be set to PUSH. This means
// that you define how often to send data to Blynk App.
BlynkTimer timer;
void sendSensor(){
//read sensor or similar
float XY = //sensor.readSensor();
// max. 10 values per second.
Blynk.virtualWrite(VX, XY); //X = Pin-Nummer , XY = value
}
void setup() {
Serial.begin(9600);
Blynk.begin(auth, ssid, pass);
Wire.begin();
// Setup a function to be called every second
timer.setInterval(1000L, sendSensor);
}
void loop()
{
Blynk.run();
timer.run();
}