Ich möchte gerne mit einem Taster 5 Relais schalten , also wenn ich einmal drücke schaltet Relais 1 wen ich wieder drücke Relais 2 und wenn ich wieder drücke Relais 3 und wieder Relais 4 und wenn ich wieder drücke Relais 5 und wenn das nächste mal gedrückt wird soll wieder Relais 1 schalten. Ist sowas möglich ?
Ja, ist möglich.
Was soll mit den vorher geschalteten Relais passieren?
Also wenn z.B. Relais 2 Schaltet, was soll dann mit Relais 1 passieren?
Gruß Tommy
ja.
Eine Zahl durchzählen und am Ende wieder auf 0 setzen.
Solltest du schaffen.
Kann auch sein, dass jedes Relais nur solange angezogen bleiben soll wie der Taster gedrückt ist.
Wofür das gut sein soll, will hoffentlich keiner wissen ![]()
Da die Relais nur mit Taste angesteuert werden schalten sie danach immer wieder aus. Die Relais haben eine eigene Stromversorgung von 5 V und werde praktisch durch die Taste angesteuert , mir geht es darum das ich eben mit einer Taste nach und nach die Relais schalten kann , z.B. Mode Taste 1 ist Dab+ 2 ist FM 3 ist SD Cart und 4 ist USB und dann wieder auf Dab+ bei jedem Tastendruck soll eine andere Quelle angesteuert werden
ok, das heißt, das Relais soll solange geschaltet bleiben, bis gewechselt wird? Was ist mit 0=Aus oder soll ein Gerät immer aktiv sein?
Soll immer gleich wieder auf Null alle Relais
Nochmal klare Antwort: Ja, das ist möglich.
Nur wo ist das Problem ?
Ok, es soll also kein "Alles Aus" geben, also muss beim Einschalten ein Zustand ausgewählt sein. Welcher?
Gruß Tommy
es soll immer ein Aus geben , da das Board das ich schalte und das Display nur kurz die Info braucht das geschaltet wurde, deshalb immer wieder auf aus
// Forensketch
// https://forum.arduino.cc/
#include <Streaming.h> // https://github.com/janelia-arduino/Streaming
const byte inputPin {2};
const byte outputPin[] {3, 4, 5, 6};
const byte anzahlPin = sizeof(outputPin) / sizeof(outputPin[0]);
bool gedrueckt = false;
bool lastState = !gedrueckt;
byte step = 0;
void setup()
{
Serial.begin(115200);
Serial << (F("\r\nStart...\r\n")) << endl;
pinMode(inputPin, INPUT_PULLUP);
for (byte b = 0; b < anzahlPin; b++)
{
pinMode(outputPin[b], OUTPUT);
digitalWrite(outputPin[b], LOW);
}
digitalWrite(outputPin[0], HIGH);
}
void loop()
{
if (!digitalRead(inputPin))
{
if (lastState == !gedrueckt)
{
lastState = gedrueckt;
for (byte b = 0; b < anzahlPin; b++) // kann evtl. entfallen
{ digitalWrite(outputPin[b], LOW); }
step++; // nächste Stufe auswählen
if (step >= anzahlPin)
{ step = 0; }
digitalWrite(outputPin[step], HIGH);
}
}
else if (lastState == gedrueckt)
{
lastState = !gedrueckt;
}
delay(100);
for (byte b = 0; b < anzahlPin; b++) // alles aus machen
{ digitalWrite(outputPin[b], LOW); }
}
schnellschuss
Danke dir vielmals , ich habe nur vergessen es kommt noch BT dazu . Also DAB+ ist an , jetzt erster Tastendruck schaltet auf FM und beim nächsten schaltet es BT und wieder beim nächsten Tastendruck SD Card und wieder beim nächsten Tastendruck USB und dann wieder beim nächsten Tastendruck auf DAB+
Was es schaltet ist egal.
Wenn Du jetzt an den Pins LED's anbaust, dann kannst Du sehen, ob und was er da weiterschaltet. Wenn Du das delay höher stellst, dann bleibt die jeweilige LED vielleicht auch länger an.
Ich kann Dir das auch ganz ohne Pins und nur mit dem SerMon bauen.
// Forensketch
// https://forum.arduino.cc/
#include <Streaming.h> // https://github.com/janelia-arduino/Streaming
const byte inputPin {2};
const byte anzahl = 4; // mögliche Ausgabestati
bool gedrueckt = false;
bool lastState = !gedrueckt;
byte step = 0;
void setup()
{
Serial.begin(115200);
Serial << (F("\r\nStart...\r\n")) << endl;
pinMode(inputPin, INPUT_PULLUP);
Serial.print(F("Aktiviere Status: "));
Serial.println(step);
}
void loop()
{
if (!digitalRead(inputPin))
{
if (lastState == !gedrueckt)
{
lastState = gedrueckt;
for (byte b = 0; b < anzahl; b++) // kann evtl. entfallen
{
Serial.print(F("Status "));
Serial.print(b);
Serial.println(F(" aus"));
}
step++; // nächste Stufe auswählen
if (step >= anzahl)
{
Serial.println(F("höchster Wert erreicht - setze auf 0"));
step = 0;
}
Serial.print(F("aktiviere Status: "));
Serial.println(step);
}
}
else if (lastState == gedrueckt)
{
lastState = !gedrueckt;
}
delay(100);
Serial.print(F("deaktiviere Status:"));
Serial.println(step);
}
Mach was draus.
ich habe ein UNO R3 ist es mit dem möglich?
Häng den ran, nimm meinen letzten Sketch, bau die Taste richtig an Pin 2 an und mach den SerMon auf.
Meine Zugfahrt ist jetzt zu Ende. Ich schau später nochmal drsuf
[quote="my_xy_projekt, post:14, topic:1352514"]
p);
}
[/quote]C:\Users\klaki\AppData\Local\Temp.arduinoIDE-unsaved2025110-14848-gj38vy.6a6h\sketch_feb10a\sketch_feb10a.ino:3:10: fatal error: Streaming.h: No such file or directory
#include <Streaming.h> // GitHub - janelia-arduino/Streaming: Streaming C++-style Output with Operator <<
^~~~~~~~~~~~~
compilation terminated.
exit status 1
Compilation error: Streaming.h: No such file or directory
Es steht drin, wo das her kommt.
Weisst Du, wie man Libs einbindet?
a) mit dem libmanager
b) manuell
ich bin da absolut ein Laie, ich brauch da Hilfe auch beim Anschluss
was ist ein Libsmanager?