from: MAS3 Tue Mar 23 2021 00:03:36 GMT+0100 (Midden-Europese standaardtijd)
Hoi.
Als je doet:
int X
Dan maak je een nieuwe integer met de naam X.
Ik moet aannemen dat je X al eerder in je code had aangemaakt, en dus gaat dat hier niet meer.
Oei! Is dat wat de foutcode aangeeft?
Ik kan het me niet herinnneren, maar het zou kunnen. Ik ga het nakijken.
Wat wel kan, is een lokale integer maken die alleen binnen een lus geldt, en dat probeer je schijnbaar dan ook te doen voor je while lus, alleen kan dat niet op die manier (en krijg je daarom een foutmelding).
Ik snap ook niet waarom je het op deze manier wil doen (dus waarom niet meteen een pauze van 1000 mS).
Zoek in de reference database eens naar de for lus.
Daar zie je een heel andere aanpak van zo'n lus.
Ik ben erg slecht in die For loopjes. Daarom doe ik bijna alles met de while loops.
Ik wil dat het programma een x tijd wacht, voor hij een handeling opnieuw uitvoert.
Maar binnen dat wachten moet hij wel reageren op het drukken op de button. (De tijden zijn nu wat gefigneerd, uiteindelijk zal het programma elke minuut de handeling opnieuw uitvoeren, en intussentijd "op scherp" staan, wachtende op een druk op de knop.
Tijden zijn niet critisch. En ja... Met een port change interrupt was het allemaal nog wat beter geworden, maar ik wil dit eerst wat meer in de vingers krijgen 
Dan doe je dus deze aanpak zolang (while) de knop niet werd ingedrukt, wat overigens jouw commentaar wel is, maar niet wat de code zegt*.
Oei... Ik dacht het zo gemaakt te hebben. Er is een loop van 100 cycles, waarna hij "iets" doet.
Maar druk je de knop in, wordt ook niet meer aan de voorwaarde voldaan en begint het ook met "iets".
while (drukknop != 1) and ( X <= 100) toch?
Als hij uit die loop springt wordt er nog een keer gekeken naar de status van die drukknop en daar wordt het verloop verder bepaald.
Aangezien je hier een snippet hebt geplaatst, is het onmogelijk je een antwoord te geven dat je werkelijk verder kan helpen.
Dat is inderdaan lastig. Ik ben wat aan het rommelen om te zien wat er zus en wat er zo gebeurt.
En ik meende dit goed te hebben gedaan.
*:
Je maakt een ingang met _PULLUP.
Dat betekent dat de interne hardware dusdanig word opgezet dat de ingang hoog gehouden word, tot jij m met je drukknop laag maakt.
Dus je als je kijkt of de waarde van die pin !=1, dan kijk je dus of de knop wel is ingedrukt.
En om de knop te zien, moet je naar de knop kijken (copyright J.Cruijff).
Dat doe je met een digitalRead.
In de voorbeeldsketch Button, die is meegeleverd met de Arduino IDE, staat precies uitgelegd hoe je dat doet.
Ach ja natuurlijk!!
Stom, ik trek hem juist laag!
Die voorbeeldsketch had ik al even doorgenomen, maar daar staan nogal wat stappen in.
En ook die omslachtigheid is lastig om mijn kop omheen te krijgen.
Zeg ik het zo goed?:
const int buttonPin = 2; // the number of the pushbutton pin
int buttonState = 0; // variable for reading the pushbutton status
void setup() {
// initialize the pushbutton pin as an input:
pinMode(buttonPin, INPUT);
void loop() {
// read the state of the pushbutton value:
buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
if (buttonState == HIGH) {
-Je hebt een constante(2) met een naam (buttonpin),
-Dan zeg je middels pinMode dat die "buttonpin" een INPUT is.
-Vervolgens is er een variabele "buttonstate", die de waarde van die "buttonpin" onthoudt.
-En dáár wordt weer naar gekeken met en vergelijking waarbij men kijkt of de buttonstate high is.
Ik vind dat nogal omslachtig, maar so be it (daar heb ik al eens een topic aan gewijd
)
Kan ik niet gewoon stellen via "if (digitalRead(2) == 0) {"
Ik zal het te simpel bekijken hoor. Misschien te onoverzichtelijk of zo?
Ik hoop daarmee wat omslachtigheden over te slaan.
Jullie mogen schieten hoor.
Als ik het niet goed zie...