Code wissellamp werkt niet
7 berichten
• Pagina 1 van 1
Code wissellamp werkt niet
Goedemiddag. Mijn eerste post op dit forum.
Ik ben nieuw in de arduino omgeving. Niet in programmeren. (Vooraan VB(A))
Het volgende. Ik heb een opstelling als in de LINK.
Bedoeling is.
* Als ik de eerste eerste keer op de knop druk moet de LED aan gaan.
* Als ik de tweede keer druk niet.
De eerste keer gaat 'ie netjes aan, daarna gebeurt er niets meer. Ik maak vast een denk fout, maar waar?
Wie helpt?
Ik ben nieuw in de arduino omgeving. Niet in programmeren. (Vooraan VB(A))
Het volgende. Ik heb een opstelling als in de LINK.
Bedoeling is.
* Als ik de eerste eerste keer op de knop druk moet de LED aan gaan.
* Als ik de tweede keer druk niet.
De eerste keer gaat 'ie netjes aan, daarna gebeurt er niets meer. Ik maak vast een denk fout, maar waar?
Wie helpt?
- Code: Alles selecteren
const int BUTTON = 2;
const int LED = 3;
int BUTTONstate = 0;
int CountVar = 0;
void setup()
{
pinMode(BUTTON, INPUT);
pinMode(LED, OUTPUT);
}
void loop()
{
BUTTONstate = digitalRead(BUTTON);
if (BUTTONstate == HIGH){
if (CountVar == 0){
digitalWrite(LED, HIGH); // LED aan
delay(2000); // pauze 22 seconden
digitalWrite(LED, LOW); // LED uit
CountVar = CountVar + 1;
}
else {
int CountVar = 0;
}
}
}
Advertisement
Re: Code wissellamp werkt niet
je begint prima hoor
zet er een beetje commentaar bij zodat je kunt uitleggen wat je wilt dat er gebeurt
nu moet er nog eenje ding code bijkomen die als de knop gedrukt is geweest de lamp uitblijft ofwel als de lamp aan is geweest en de knop wordt weer bedient dus bijvoorbeeld een if (lampisaangeweest && knop){doe niks}
en express zet ik er niet de oplossing in dat zou erg makkelijk zijn.
zet er een beetje commentaar bij zodat je kunt uitleggen wat je wilt dat er gebeurt
- Code: Alles selecteren
const int BUTTON = 2; //prima maar dat mag ook met define
const int LED = 3;
int BUTTONstate = 0;// hier maak je een integer van buttonstate maar dat is eigenlijk een boolean beter is boolean buutonstate=false;
int CountVar = 0; // een teller
void setup()
{
pinMode(BUTTON, INPUT);
pinMode(LED, OUTPUT);
}
void loop()
{
BUTTONstate = digitalRead(BUTTON);// toevallig gaat dat goed zie hierboven bij boolean
if (BUTTONstate == HIGH){ // want hier gebruik je boolean
if (CountVar == 0){ // ja dat is nu 0
digitalWrite(LED, HIGH); // LED aan
delay(2000); // pauze 2 seconden
digitalWrite(LED, LOW); // LED uit
CountVar = CountVar + 1;// dus nu is countVar al 1
}
else
{
int CountVar = 0; //dus als buttonstate = LOW
hier moet de int weg want de variabele bestaat al
} // en hier staat een haakje te veel.
}
}
nu moet er nog eenje ding code bijkomen die als de knop gedrukt is geweest de lamp uitblijft ofwel als de lamp aan is geweest en de knop wordt weer bedient dus bijvoorbeeld een if (lampisaangeweest && knop){doe niks}
en express zet ik er niet de oplossing in dat zou erg makkelijk zijn.
paul deelen
shooter@home.nl
shooter@home.nl
Re: Code wissellamp werkt niet
Dank je voor je feedback.
Ik merk echt dat deze manier van denken mij nog vreemd is. Ik snap de meeste zaken wel maar dat laatste stuk ...
Ik merk echt dat deze manier van denken mij nog vreemd is. Ik snap de meeste zaken wel maar dat laatste stuk ...

nu moet er nog eenje ding code bijkomen die als de knop gedrukt is geweest de lamp uitblijft ofwel als de lamp aan is geweest en de knop wordt weer bedient dus bijvoorbeeld een if (lampisaangeweest && knop){doe niks}
Re: Code wissellamp werkt niet
Tsja ... ik zit vast, kom geen steek verder.
Het t ook geprobeerd dmv een SWITCH CASE maar ook dat gaf geen oplossing.
Het t ook geprobeerd dmv een SWITCH CASE maar ook dat gaf geen oplossing.
Re: Code wissellamp werkt niet
Ik zit nu echt vast.
Ook geprobeerd om dit via SWITCH CASE op te lossen, maar helaas..
Wie helpt me op het goede spoor.
En...van een oplossing kun je óók leren.
Ook geprobeerd om dit via SWITCH CASE op te lossen, maar helaas..
Wie helpt me op het goede spoor.
En...van een oplossing kun je óók leren.

Re: Code wissellamp werkt niet
zet eens op een briefje wat je wilt bereiken dus een soort preproram ding
en dan voorzichtig beginnen met telkens testen en veranderen, wij helpen wel.
want je zit niet vast, maar je hebt onvoldoende inspiratie om lekker te proberen. en kom op 24 september naar de makerfaire in eindhoven
en dan voorzichtig beginnen met telkens testen en veranderen, wij helpen wel.
want je zit niet vast, maar je hebt onvoldoende inspiratie om lekker te proberen. en kom op 24 september naar de makerfaire in eindhoven
paul deelen
shooter@home.nl
shooter@home.nl
Re: Code wissellamp werkt niet
Hi Erpe,
Ja simpel lijkende zaken kunnen best wel eens ingewikkeld zijn...
Ik denk dat je bedoeld dat bij drukken de led aan gaat, bij weer drukken de led uit, weer drukken weer aan enz enz.
Meerdere trukjes zijn hier nodig.
Eerst een variabele die aangeeft of de led aan is of uit.
Bool ledstatus;
Een functie is nodig die de led aan of uit zet aan de hand van de ledstatus
Void schakelled(){
If(ledstatus==true){
Zet de led aan
}else{
Zet de led uit
}
}
Dan moet je het knopje lezen
Hier weer een variabele nodig
Bool knopstatus;
Lees knop, met digital read. In een functie. Bv. Void readbutton();
Vergelijk de knop met de waarde van knopstatus.
Schrijf de nieuwe waarde van de knop in knopstatus.
Als de waarde verschilt en de knop is nu ingedrukt
Wissel dan de ledstatus en roep functie schakelled() aan.
Dus alleen bij het indrukken van de knop wisselt de led tussen aan en uit.
Maar dan ben je der nog niet, een arduino is veel te snel voor een drukknop. Je denkt dat je hem 1x indrukt maar de arduino registreerd wel 50x indrukken en loslaten, gevolg een random effect. Dit verschijnsel heet bouncen. Of contact dender. Dit los je op met een timer die als voorbeeld 1x per 20ms de drukknop test.
Als je verder niks met dit programma doet kun je een delay erin zetten...maar timer is een veel nettere oplossing en maakt multitasken mogelijk....
Nu succes...
Rob
Ja simpel lijkende zaken kunnen best wel eens ingewikkeld zijn...
Ik denk dat je bedoeld dat bij drukken de led aan gaat, bij weer drukken de led uit, weer drukken weer aan enz enz.
Meerdere trukjes zijn hier nodig.
Eerst een variabele die aangeeft of de led aan is of uit.
Bool ledstatus;
Een functie is nodig die de led aan of uit zet aan de hand van de ledstatus
Void schakelled(){
If(ledstatus==true){
Zet de led aan
}else{
Zet de led uit
}
}
Dan moet je het knopje lezen
Hier weer een variabele nodig
Bool knopstatus;
Lees knop, met digital read. In een functie. Bv. Void readbutton();
Vergelijk de knop met de waarde van knopstatus.
Schrijf de nieuwe waarde van de knop in knopstatus.
Als de waarde verschilt en de knop is nu ingedrukt
Wissel dan de ledstatus en roep functie schakelled() aan.
Dus alleen bij het indrukken van de knop wisselt de led tussen aan en uit.
Maar dan ben je der nog niet, een arduino is veel te snel voor een drukknop. Je denkt dat je hem 1x indrukt maar de arduino registreerd wel 50x indrukken en loslaten, gevolg een random effect. Dit verschijnsel heet bouncen. Of contact dender. Dit los je op met een timer die als voorbeeld 1x per 20ms de drukknop test.
Als je verder niks met dit programma doet kun je een delay erin zetten...maar timer is een veel nettere oplossing en maakt multitasken mogelijk....
Nu succes...
Rob
7 berichten
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten