loop vast
17 berichten
• Pagina 1 van 2 • 1, 2
loop vast
goede morgen.
ik ben Willem een oudere jongere die een beetje aan spelen/knutselen is met arduino.
ik loop vast/blijf hangen staar mij blind ik weet het niet.
heb onderstaand programma gemaakt en werkt zoals ik voor ogen heb, behalve het laatste stukje.
wie kan/wil mij uit brand helpen.
// ===== pin benamingen ======
int ledPin = 13; // inbedrijf
int ledPins = 2; // storing
int onbutton = 11; // aan
int offbutton = 12; // uit
int offbutton1 = 3; // pressostaat
int offvalue1 = 0; // pressostaat
int onvalue = 0;
int offvalue = 0;
void setup()
{
//======= invoer en uitvoer =====
pinMode(ledPin,OUTPUT); // in bedrijf, groeneled
pinMode(ledPins,OUTPUT); // storing, rode led
pinMode(offbutton1,INPUT);
pinMode(onbutton,INPUT);
pinMode(offbutton,INPUT);
}
void loop()
{
//======== led aan =======
onvalue = digitalRead(onbutton);
if(onvalue == LOW)
{
delay(10); // contactdender
if(onvalue == LOW);
digitalWrite(ledPin,HIGH); // led aan
}
//======== led uit =========
offvalue = digitalRead(offbutton);
if(offbutton == LOW);
{
delay (10); // contactdender
if (offvalue == LOW)
digitalWrite(ledPin,LOW ); // led uit
}
//===== pressostaat groene led uit rode led aan =======
offvalue1 = digitalRead(offbutton1);
if(offbutton1 == LOW);
{
delay (10); // contactdender
if (offvalue1 == LOW)
digitalWrite(ledPin,LOW ); // groene led uit
}
offvalue1 = digitalRead(offbutton1);
if(offbutton1 == LOW);
delay (10); // contactdender
if (offvalue1 == LOW)
digitalWrite(ledPins,HIGH); // rode led aan
{
//=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ====
offvalue1 = digitalRead,ledPin);
if(ledPin == LOW);
digitalWrite(ledPin,HIGH);
}
}
ik ben Willem een oudere jongere die een beetje aan spelen/knutselen is met arduino.
ik loop vast/blijf hangen staar mij blind ik weet het niet.
heb onderstaand programma gemaakt en werkt zoals ik voor ogen heb, behalve het laatste stukje.
wie kan/wil mij uit brand helpen.
// ===== pin benamingen ======
int ledPin = 13; // inbedrijf
int ledPins = 2; // storing
int onbutton = 11; // aan
int offbutton = 12; // uit
int offbutton1 = 3; // pressostaat
int offvalue1 = 0; // pressostaat
int onvalue = 0;
int offvalue = 0;
void setup()
{
//======= invoer en uitvoer =====
pinMode(ledPin,OUTPUT); // in bedrijf, groeneled
pinMode(ledPins,OUTPUT); // storing, rode led
pinMode(offbutton1,INPUT);
pinMode(onbutton,INPUT);
pinMode(offbutton,INPUT);
}
void loop()
{
//======== led aan =======
onvalue = digitalRead(onbutton);
if(onvalue == LOW)
{
delay(10); // contactdender
if(onvalue == LOW);
digitalWrite(ledPin,HIGH); // led aan
}
//======== led uit =========
offvalue = digitalRead(offbutton);
if(offbutton == LOW);
{
delay (10); // contactdender
if (offvalue == LOW)
digitalWrite(ledPin,LOW ); // led uit
}
//===== pressostaat groene led uit rode led aan =======
offvalue1 = digitalRead(offbutton1);
if(offbutton1 == LOW);
{
delay (10); // contactdender
if (offvalue1 == LOW)
digitalWrite(ledPin,LOW ); // groene led uit
}
offvalue1 = digitalRead(offbutton1);
if(offbutton1 == LOW);
delay (10); // contactdender
if (offvalue1 == LOW)
digitalWrite(ledPins,HIGH); // rode led aan
{
//=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ====
offvalue1 = digitalRead,ledPin);
if(ledPin == LOW);
digitalWrite(ledPin,HIGH);
}
}
Advertisement
Re: loop vast
Het is mij mogelijk niet duidelijk wat je wil dat er moet gebeuren met "het laatste stukje"
Wat had je verwacht dat er zou gebeuren...
Wat ik wel zie is dat er een syntax fout in staat.
Regel 59 offvalue1 = digitalRead, ledPin); moet zijn offvalue1 = (digitalRead, ledPin);
Overigens: In een loop is er geen laatste stukje omdat na het laatste statement gelijk weer wordt begonnen aan het eerste statement wellicht dat je dat over het hoofd hebt gezien?
Wat had je verwacht dat er zou gebeuren...
Wat ik wel zie is dat er een syntax fout in staat.
Regel 59 offvalue1 = digitalRead, ledPin); moet zijn offvalue1 = (digitalRead, ledPin);
Overigens: In een loop is er geen laatste stukje omdat na het laatste statement gelijk weer wordt begonnen aan het eerste statement wellicht dat je dat over het hoofd hebt gezien?
Re: loop vast
zal proberen te verklaren,
tot aan /-=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ==== werkt zoals ik het hebben wil.
op het moment offbutton1 wordt ingedrukt gaat de groene led uit rode led gaat aan., storing indicatie .
opdat moment mag groene led niet meer actief worden. totdat die gereset wordt.
tot aan /-=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ==== werkt zoals ik het hebben wil.
op het moment offbutton1 wordt ingedrukt gaat de groene led uit rode led gaat aan., storing indicatie .
opdat moment mag groene led niet meer actief worden. totdat die gereset wordt.
Re: loop vast
Ik was het bericht nog aan het wijzigen maar dat werd geblokkeerd Dus hier maar de aanpassing:
Je declareert ledPin als een output. Het programma (de programmeur) bepaalt dus de waarde. Dan hoef je niet de waarde te lezen dus regel 59 kan in z'n geheel vervallen. Het is een goed gebruik bij de setup na de declaratie de gedeclareerde pinnen een waarde mee te geven zodat je het uitgangspunt kent.
Je declareert ledPin als een output. Het programma (de programmeur) bepaalt dus de waarde. Dan hoef je niet de waarde te lezen dus regel 59 kan in z'n geheel vervallen. Het is een goed gebruik bij de setup na de declaratie de gedeclareerde pinnen een waarde mee te geven zodat je het uitgangspunt kent.
Re: loop vast
Willem, Ja ik zie meerdere syntax dingetjes...verder beste nooit delays te gebruiken.
Schakelaars drukknoppen scannen dwz om de zoveel microseconden efkens testen. Dus een timertje maken.
Die inputs moeten wel een polariteit krijgen dus een pullup weerstandje van een 10k of de ingebakken pullups gebruiken.
Misschien even vermelden hoe het zou moeten werken, dat is me niet duidelijk...
Rob
Schakelaars drukknoppen scannen dwz om de zoveel microseconden efkens testen. Dus een timertje maken.
Die inputs moeten wel een polariteit krijgen dus een pullup weerstandje van een 10k of de ingebakken pullups gebruiken.
Misschien even vermelden hoe het zou moeten werken, dat is me niet duidelijk...
Rob
Re: loop vast
//////Misschien even vermelden hoe het zou moeten werken, dat is me niet duidelijk...
Zal het nog keer proberen te vertellen, heb 2 drukknoppen 1 om led aan te zetten en de ander om uit te zetten.
de 3 drukknop, als deze wordt ingedrukt moet de aan en uit knop worden geblokkerd en 2e led rood moet gaan branden.
Zal het nog keer proberen te vertellen, heb 2 drukknoppen 1 om led aan te zetten en de ander om uit te zetten.
de 3 drukknop, als deze wordt ingedrukt moet de aan en uit knop worden geblokkerd en 2e led rood moet gaan branden.
Re: loop vast
//////Misschien even vermelden hoe het zou moeten werken, dat is me niet duidelijk...
Zal het nog keer proberen te vertellen, heb 2 drukknoppen 1 om led aan te zetten en de ander om uit te zetten.
de 3 drukknop, als deze wordt ingedrukt moet de aan en uit knop worden geblokkerd en 2e led rood moet gaan branden.
maak gebruik van externe pullup weerstand.
Zal het nog keer proberen te vertellen, heb 2 drukknoppen 1 om led aan te zetten en de ander om uit te zetten.
de 3 drukknop, als deze wordt ingedrukt moet de aan en uit knop worden geblokkerd en 2e led rood moet gaan branden.
maak gebruik van externe pullup weerstand.
Re: loop vast
Kan het zijn dat je met
eigenlijk bedoelt dat het een oneindige loop moet zijn waar je alleen met reset uitkomt?
- Code: Alles selecteren
//=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ====
offvalue1 = digitalRead,ledPin);
if(ledPin == LOW);
digitalWrite(ledPin,HIGH);
eigenlijk bedoelt dat het een oneindige loop moet zijn waar je alleen met reset uitkomt?
Re: loop vast
zoals ik in het begin vertelde ben ik een oudere jongere die beetje aan het spelen is met arduino,
dus moet nog al de termen die gebruikt worden eiegen maken.
als met oneindige loop bedoelt dat het programma werkt zoals ik heb omschreven zeg ik ja dat is het.
voor reset bruik ik reset knop op mijn arduino bordje.
dus moet nog al de termen die gebruikt worden eiegen maken.
als met oneindige loop bedoelt dat het programma werkt zoals ik heb omschreven zeg ik ja dat is het.
voor reset bruik ik reset knop op mijn arduino bordje.
Re: loop vast
Duidelijk...maak eerst een beschrijving van de werking, en vul steeds meer de code in...
als voorbeeld:
Maak een timertje ipv al die delays.
unigned long scanButtons;
bool cancel; //is knop 3 ingedrukt, actief true:led2 brand. led1 uit, knoppen 1 en 2 doen niks false: led2 uit led1 volgt knop1,2
bool oldbutton1; bool oldbutton2; bool oldbutton3;
loop{
if(millis()-scanButtons > 20){ //dit wordt iedere 20ms gedaan
scanButtons=millis();
//test buttons
//vergelijk geteste buttons met de vorige test "old buttons' 1, 2 en 3
// als veranderd.... kijk of button nu ingedrukt is....
//als ingedrukt, doe wat de knop moet doen bij indrukken
//knop1 als cancel=uit led 1 aanzetten
//knop2 led 1 uit zetten
//knop3 verwissel de waarde van cancel aan>uit uit>aan
//als cancel is aan dan led1 uit en led 2 aan, als cancel = uit beide leds uit (of oude stand van knop1 en 2 uit geheugen vissen)
//sla de geteste waardes van de knoppen op in old buttons 1~3
}
}
opmerkingen, zo worden alle gebeurtenissen uitgevoerd in een 20ms cyclus. Voor leds snel zat sneller zien we toch niet maar............ als je een tijd kritisch proces achter die noodknop hebt zitten zoals een noodstop.... moet je wat anders verzinnen knop3 dan bv op een interrupt zetten zodat dit proces direct wordt uitgevoerd als de knop wordt gedrukt...
Succes...
als voorbeeld:
Maak een timertje ipv al die delays.
unigned long scanButtons;
bool cancel; //is knop 3 ingedrukt, actief true:led2 brand. led1 uit, knoppen 1 en 2 doen niks false: led2 uit led1 volgt knop1,2
bool oldbutton1; bool oldbutton2; bool oldbutton3;
loop{
if(millis()-scanButtons > 20){ //dit wordt iedere 20ms gedaan
scanButtons=millis();
//test buttons
//vergelijk geteste buttons met de vorige test "old buttons' 1, 2 en 3
// als veranderd.... kijk of button nu ingedrukt is....
//als ingedrukt, doe wat de knop moet doen bij indrukken
//knop1 als cancel=uit led 1 aanzetten
//knop2 led 1 uit zetten
//knop3 verwissel de waarde van cancel aan>uit uit>aan
//als cancel is aan dan led1 uit en led 2 aan, als cancel = uit beide leds uit (of oude stand van knop1 en 2 uit geheugen vissen)
//sla de geteste waardes van de knoppen op in old buttons 1~3
}
}
opmerkingen, zo worden alle gebeurtenissen uitgevoerd in een 20ms cyclus. Voor leds snel zat sneller zien we toch niet maar............ als je een tijd kritisch proces achter die noodknop hebt zitten zoals een noodstop.... moet je wat anders verzinnen knop3 dan bv op een interrupt zetten zodat dit proces direct wordt uitgevoerd als de knop wordt gedrukt...
Succes...
17 berichten
• Pagina 1 van 2 • 1, 2
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten