hallo
ik probeer dit resultaat te bekomen voor in een afzuiginstalatie
druk knop 1 doet relais 1 aan maar doet relais 2 en 3 uit
druk knop 2 doet relais 2 aan maar doet relais 1 en 3 uit
druk knop 3 doet relais 3 aan maar doet relais 3 en 2 uit
4de knop om de lamp uit en aan te doen
ik gebruik een arduino uno jaja van den chinees maar dat macheert hopelijk even goed het gaat om de code heb er ook originele moest het toch niet gaan ( bedoeling is dat de goedkoopste er in gaat )
nu verder dan dat ik met de knoppen ze op en af krijg en er dus 2 of 3 tegelijk kunnen geraak ik niet
de code dat ik hiervoor gebruik ( let wel ik ben nog in leerfase de persoon die me er bij hielp is helaas overleden , vandaar ook complexe code ik ben nog zover niet)
ps: je ziet in afbeelding leds dat is ter illustratie omdat ik simuleer in tinkercad en zo een 4 kanaals relaiskaart er niet op vond
const int pushButton[] ={2,3,4,5};// define push button inputs
const int relayPin[]={11,10,9,8};// output pins where 4 relays will be connected
String relayNames[] ={"CH1", "CH2","CH3","CH4"};// Just put name for 4 relays
int pushed[] ={0,0,0,0};// status of each buttons
int relayStatus[] ={HIGH,HIGH,HIGH,HIGH};// initial status of relay
void setup() {
Serial.begin(9600);// initialize serial monitor
for(int i=0; i<4; i++)
{
pinMode(pushButton[i], INPUT_PULLUP);
pinMode(relayPin[i], OUTPUT);
digitalWrite(relayPin[i], HIGH);// initial relay status to be OFF
}
}
void loop() {
for(int i=0; i<4; i++)
{
int val = digitalRead(pushButton[i]);
if(val == HIGH && relayStatus[i] == LOW){
pushed[i] = 1-pushed[i];
delay(100);
}// if
relayStatus[i] = val;
if(pushed[i] == HIGH){
Serial.print(relayNames[i]);
Serial.println(" ON");
digitalWrite(relayPin[i], LOW);
}else{
Serial.print(relayNames[i]);
Serial.println(" OFF");
digitalWrite(relayPin[i], HIGH);
}// else
}// for
Serial.println("==");
delay(100);
}// loop end
ik heb de code in arduino ide programma bijgevoegd de simulatie doe ik in tinkercad
switchCase.ino (1.21 KB)