sorry, here is my code now. I tried it and it works as I intended it to so i just need to make a flowchart of it. Here is my code :
//Opdracht 1: knipperlicht
//Versie B
//Code van Wail Lahrech
//A2C Voor het vak ABP8
#include "OneButton.h" //roept de OneButton library aan zodat deze gebruikt kan worden
OneButton buttonrechts(3,true); // OneButton variabelenaam(pinnummer,aan of uit)
OneButton buttonlinks(5,true);
OneButton buttonalarm(4,true);
int ledrechts = 10; // LEDpin nummer van de rechter led
int ledlinks = 11; // LEDpin nummer van de linker led
// variabelen die veranderen met de button state(HIGH OF LOW)
int buttonrechtsstatus = 0; // variabele voor de rechter button
int buttonlinksstatus = 0; // variabele voor de linker button
int buttonalalarmstatus = 0; //variabele voor de middelste button
void setup() {
// de buttons koppelen aan een command(double click, long press of click
buttonlinks.attachDoubleClick(knipperlichtL); //linkt de linker button aan een double click, deze roept wanneer er 2 keer gedruk wordt de void knipperlichtL aan
buttonlinks.attachLongPressStop(snelwegknipperlichtL); // linkt de linker button aan een longpress, deze roept de void snelwegknipperlichtL aan wanneer hij 1sec vastgehouden wordt
buttonrechts.attachDoubleClick(knipperlichtR); //linkt de rechter button aan een double click, deze roept wanneer er 2 keer gedruk wordt de void knipperlichtR aan
buttonrechts.attachLongPressStop(snelwegknipperlichtR) ;// linkt de rechter button aan een longpress, deze roept de void snelwegknipperlichtR aan wanneer hij 1sec vastgehouden wordt
buttonalarm.attachLongPressStop(stopalles); // linkt de middelste button aan een longpress, deze roept de void stopalles aan wanneer hij 1sec vastgehouden word
buttonalarm.attachClick(gevarenlamp); // linkt de middelste button aan een click, deze roept de void gevarenlamp aan wanneer hij 1x snel ingedrukt wordt
pinMode(ledrechts, OUTPUT); //zet de rechter LED als output
pinMode(ledlinks, OUTPUT); //zet de linker LED als output
Serial.begin(9600); // start de serial op 9600(gewoonlijk voor normale USB's)om gebruik te maken van de seriele plotter en dingen te kunnen controleren
}
void loop() {
buttonrechts.tick(); //kijkt naar de waarde van de rechter button
buttonlinks.tick(); //kijkt naar de waarde van de linker button
buttonalarm.tick(); //kijkt naar de waarde van de middelste button
delay(50); //zorgt voor een delay tussen het opnieuw kijken van de waardes van de buttons
//Knipperlicht rechts code
if (buttonrechtsstatus==HIGH) //if-statement die kijkt wat de waarde van de rechterbutton is, die bepaald wordt in de void onderaan.
{
// LED code
digitalWrite(ledrechts, HIGH); //zet de rechter LED aan
delay(197); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
digitalWrite(ledrechts, LOW); //zet de rechter LED uit
delay(167); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
}
else //is de if-statement hierboven niet gehaald blijft de lamp uit
{
digitalWrite(ledrechts, LOW); //laat de rechter LED uit
}
//Knipperlicht links code
if (buttonlinksstatus==HIGH) //if-statement die kijkt wat de waarde van de linkerbutton is, die bepaald wordt in de void onderaan.
{
// LED code
digitalWrite(ledlinks, HIGH); //zet de linker LED aan
delay(197); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
digitalWrite(ledlinks, LOW); //zet de linker LED uit
delay(167); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
}
else //is de if-statement hierboven niet gehaald blijft de lamp uit
{
digitalWrite(ledlinks, LOW); //zet de LED uit
}
//Gevarenlampen code
if (buttonalalarmstatus==HIGH) //if-statement die kijkt wat de waarde van de middelste button is, die bepaald wordt in de void onderaan.
{
// LED code
digitalWrite(ledrechts, HIGH); //zet de rechter LED aan
digitalWrite(ledlinks, HIGH); //zet de linker LED aan
delay(197); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
digitalWrite(ledrechts, LOW); //zet de rechter LED uit
digitalWrite(ledlinks, LOW); //zet de linker LED uit
delay(167); //wacht een aantal ms(veranderd met PCN) voordat hij naar de volgende command gaat
}
else //is de if-statement hierboven niet gehaald blijft de lamp uit
{
digitalWrite(ledrechts, LOW); //zet de rechter LED uit
digitalWrite(ledlinks, LOW); //zet de linker LED uit
}
}
void knipperlichtR() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
buttonrechtsstatus=HIGH; //Maakt de variabele van de rechterkant HIGH en start dus een if-statement
Serial.println("knipperlicht rechts aan"); //print "knipperlicht rechts aan" in de seriele plotter als de code werkt
}
void snelwegknipperlichtR() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
digitalWrite(ledrechts, HIGH);//1è keer naar rechts
delay(197);
digitalWrite(ledrechts, LOW);
delay(167);
digitalWrite(ledrechts, HIGH);//2è keer naar rechts
delay(197);
digitalWrite(ledrechts, LOW);
delay(167);
digitalWrite(ledrechts, HIGH);//3è keer naar rechts
delay(197);
digitalWrite(ledrechts, LOW);
delay(167);
digitalWrite(ledrechts, HIGH);//4è keer naar rechts
delay(197);
digitalWrite(ledrechts, LOW);
delay(167);
digitalWrite(ledrechts, HIGH);//5è keer naar rechts
delay(197);
digitalWrite(ledrechts, LOW);
delay(167);
Serial.println("snelwegknipperlicht naar rechts aan"); //print "snelwegknipperlicht naar rechts aan" in de seriele plotter als de code werkt
}
void knipperlichtL() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
buttonlinksstatus = HIGH; //Maakt de eerder gemaakte variabele HIGH en start hiermee de if-statement
Serial.println("knipperlicht links aan"); //print "knipperlicht links aan" in de seriele plotter als de code werkt
}
void snelwegknipperlichtL() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
digitalWrite(ledlinks, HIGH);//1è keer naar links
delay(197);
digitalWrite(ledlinks, LOW);
delay(167);
digitalWrite(ledlinks, HIGH);//2è keer naar links
delay(197);
digitalWrite(ledlinks, LOW);
delay(167);
digitalWrite(ledlinks, HIGH);//3è keer naar links
delay(197);
digitalWrite(ledlinks, LOW);
delay(167);
digitalWrite(ledlinks, HIGH);//4è keer naar links
delay(197);
digitalWrite(ledlinks, LOW);
delay(167);
digitalWrite(ledlinks, HIGH);//5è keer naar links
delay(197);
digitalWrite(ledlinks, LOW);
delay(167);
Serial.println("snelwegknipperlicht naar links aan"); //print "snelwegknipperlicht naar links aan" in de seriele plotter als de code werkt
}
void stopalles() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
buttonrechtsstatus=LOW; //Maakt de eerder gemaakte variabele LOW en stopt hiermee de if-statement
buttonlinksstatus = LOW; //Maakt de eerder gemaakte variabele LOW en stopt hiermee de if-statement
buttonalalarmstatus = LOW; //Maakt de eerder gemaakte variabele LOW en stopt hiermee de if-statement
Serial.println("alle knipperlichten uit"); //print "alle knipperlichten uit" in de seriele plotter als de code werkt
}
void gevarenlamp() //deze void kijkt of de waarde behaald wordt die in de setup genoemd is en voerd deze command uit als deze behaald worden.
{
buttonalalarmstatus = HIGH; //Maakt de eerder gemaakte variabele HIGH en start hiermee een if-statement
Serial.println("gevarenlampen aan"); //print "gevarenlampen aan" in de seriele plotter als de code werkt
}