loop vast

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 180
Geregistreerd: 26 Aug 2015, 11:57

Re: loop vast

Berichtdoor Frits1956 » 05 Mei 2022, 14:10

hobby.bob schreef: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.

Lees in dat geval het while of do while statement in de help eens.
Overigens is het niet fraai om de reset van de arduino te gebruiken. Gebruik er uitlezen van een input pin voor.
Wellicht is het bekijken en begrijpen van het voorbeeld "blink without delay" een goede manier om erachter te komen hoe een timer werkt. Een delay zorgt er namelijk voor dat de processor alle acties voor een vooraf ingestelde tijd stopt.

Advertisement

Berichten: 10
Geregistreerd: 05 Sep 2021, 23:49

Re: loop vast

Berichtdoor hobby.bob » 05 Mei 2022, 15:15

ik heb wat te doen.
was al blij dat ik al begreep wat ik gemaakt had.
wordt een uitdaging met timers/while.
tot zover bedankt voor info.

Berichten: 45
Geregistreerd: 08 Jan 2020, 17:23

Re: loop vast

Berichtdoor RonalT » 05 Mei 2022, 22:37

ik blijf het een beetje vreemd in elkaar gezet vinden.

cpp code
//======== led aan =======
onvalue = digitalRead(onbutton);
if(onvalue == LOW)
{
delay(10); // contactdender

if(onvalue == LOW);
digitalWrite(ledPin,HIGH); // led aan
}


hier lees je de onbutton uit 'en als deze laag is' stop je het programma 10 millis 'en als deze laag is' zet je de LED aan.
Waarom staat deze if(onvalue == LOW er twee maal in?

Ik denk dat dit beter werkt als de regels 6 (leeg) en 7 (if....) er uit haalt!

cpp code
//======== led aan =======
onvalue = digitalRead(onbutton);
if(onvalue == LOW)
{
delay(10); // contactdender
digitalWrite(ledPin,HIGH); // led aan
}


En de eerste IF wordt netjes door accolades gevolgd, maar de tweede if niet, waarom?

En een paar regels heb ik dezelfde vraag.

Berichten: 45
Geregistreerd: 08 Jan 2020, 17:23

Re: loop vast

Berichtdoor RonalT » 05 Mei 2022, 22:50

Ik heb een paar aanpassingen gedaan zodat ik het beter snap wat de pinbenamingen voorstellen. Bv. LedPinGrn en LedPinRed in plaats van LedPin en LedPins en zo nog een paar namen....

cpp code
// ===== pin benamingen ======
int ledPinGrn = 13; // inbedrijf
int ledPinRed = 2; // storing
int onbutton = 11; // aan
int offbutton = 12; // uit
int pressbutton1 = 3; // pressostaat
int pressvalue1 = 0; // pressostaat
int onvalue = 0;
int offvalue = 0;

void setup()
{
//======= invoer en uitvoer =====
pinMode(ledPinGrn,OUTPUT); // in bedrijf, groeneled
pinMode(ledPinRed,OUTPUT); // storing, rode led
pinMode(pressbutton1,INPUT);
pinMode(onbutton,INPUT);
pinMode(offbutton,INPUT);
}

void loop()
{
//======== led aan =======
onvalue = digitalRead(onbutton);
if(onvalue == LOW)
{
delay(10); // contactdender
digitalWrite(ledPinGrn,HIGH); // led aan
}
//======== led uit =========
offvalue = digitalRead(offbutton);
if(offbutton == LOW);
{
delay (10); // contactdender
digitalWrite(ledPinGrn,LOW ); // led uit
}
//===== pressostaat groene led uit rode led aan =======
pressvalue1 = digitalRead(pressbutton1);
if(pressbutton1 == LOW);
{
delay (10); // contactdender
digitalWrite(ledPinGrn,LOW ); // groene led uit
digitalWrite(ledPinRed,HIGH); // rode led aan
}
//=== blokkeren led/aan/knop tot dat resetknop is ingedrukt ====
pressvalue1 = digitalRead(ledPinGrn);
if(pressvalue1 == LOW);
digitalWrite(ledPinGrn,HIGH);
}


Bij het aanzetten van de LED kijk je in regel 25 of de onvalue in regel 24 laag is, maar in regel 32 kijk je niet of de offvalue laag is.

En het stukje in de laatste 3 regels is me niet duidelijk. Het lijkt erop of je de groene LED nog eens aan wilt gaan zetten. Ik zie niets wat blokkeert.
Wat me wel duidelijk is, het haakje openen stond voor digitalRead, maar hoort er na te staan. En ook hier gebruik je 'pressvalue1' weer niet die je net uitgelezen heb.

Of deze sketch werkt weet ik niet, ik heb geen knoppen bij de hand...

Berichten: 45
Geregistreerd: 08 Jan 2020, 17:23

Re: loop vast

Berichtdoor RonalT » 05 Mei 2022, 23:56

Gebruik je (pullup/pulldown) weerstanden in je schakeling?
Bekijk anders deze video eens!

https://arduino-lessen.nl/les/led-met-arduino-schakelen-via-drukknop

Een Arduino heeft ingebouwde weerstanden die je kunt gebruiken. Door aan INPUT het stukje _PULLUP toe te voegen aan regel 16 maak je gebruik van deze weerstanden.

cpp code
pinMode(pressbutton1,INPUT_PULLUP);                                              // initializeer digitale pin als input met pull-up weerstand.


Een heleboel informatie, daarom heb ik het in verschillende berichten gezet zodat er enigszins onderscheid gemaakt wordt in de diverse delen van mijn verhaal.

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: loop vast

Berichtdoor shooter » 06 Mei 2022, 09:50

ronalt de originele poster heeft het niet zo bedoelt maar is wel op deze manier een antidender schakeling geworden.
en maak een flowschema ervan of een toestandsdiagram (wij oude lullen zijn tekstueel niet zo goed maar plaatjes snappen we)
en ach het is een hobby om te leren dus veel plezier
paul deelen
shooter@home.nl

Berichten: 10
Geregistreerd: 05 Sep 2021, 23:49

Re: loop vast

Berichtdoor hobby.bob » 06 Mei 2022, 11:29

iedereen dank voor de input. heb wat uitdagingen om dingen te begrijpen.

Vorige

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 18 gasten