reset variable

Arduino specifieke Software
Berichten: 8
Geregistreerd: 01 Nov 2020, 11:42

reset variable

Berichtdoor kilvis » 01 Nov 2020, 11:50

hallo ik wil een variable resseten maar het lukt mij niet
ik ben een knop met lcd aan het maken als je op die knop duwt dat je op een andere tablad uitkomt
maar ik heb er 6 en als ik op het 7de uitkom dat ik terug naar het eerste ga en zo weer verder kan maar mijn seriele monitor telt verder als ik op 6 uitkom en zo blijf ik op het eerste tablad staan

Code: Alles selecteren
#include <LiquidCrystal.h>
int button=8;
int val;
int count=0;
int a;
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  Serial.begin(9600);
  lcd.begin(16, 2);
  pinMode(button,INPUT);
}

void loop() {
  Serial.println(a);
  val=digitalRead(button);
  if(val==HIGH){
    a=count++;
    delay(250);
  }
  if (a == 6) {
    a = 0;
  }
  if (a == 0) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Hello, world!");
    lcd.setCursor(0, 1);
    lcd.print("");
     
  }
   if (a == 1) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Task1: ");
    lcd.setCursor(0, 1);
    lcd.print("Clean room");
   }
   if (a == 2) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Task2: ");;
    lcd.print("Pay bills");
   }
   if (a == 3) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Task3: ");
    lcd.setCursor(0, 1);
    lcd.print("Cook");
   }
   if (a == 4) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Task4: ");
    lcd.setCursor(0, 1);
    lcd.print("go shopping");
   }
   if (a == 5) {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Task5: ");
    lcd.setCursor(0, 1);
    lcd.print("Make elektronics");
   }
}

Advertisement

Berichten: 77
Geregistreerd: 06 Okt 2012, 10:57

Re: reset variable

Berichtdoor Beamer » 01 Nov 2020, 12:31

Met

if (a == 6) {
a = 0;

reset je wel a, maar niet de variabele count.

Die telt dus gewoon door.

Je moet ook count weer op 0 zetten.

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: reset variable

Berichtdoor Koepel » 01 Nov 2020, 12:39

Leun een rustig achterover of ga een frisse wandeling maken.
Denk dan eens na wat je wilt, zonder meteen aan code te denken.

Je hebt een display met tabbladen.
Er staat een bepaalde tabblad op het scherm.
Na het drukken op de knop komt het volgende tabblad.

Je bent niet aan het tellen, je laat tabbladen zien. Dus ik zie een variabele 'tabblad' en geen 'counter'.
Er staat maar één tabblad op het scherm, dus is er maar één variabele 'tabblad' en geen twee zoals je nu hebt met 'a' en 'counter'.

Dan gaan we nu pas denken aan code :geek:
Je eerste tabblad heeft een waarde 0.
Je laatste tabblad heeft een waarde 5. Dus 6 is teveel. Als je naar 6 springt, dan maak je er 0 van.
Dus als er op een knop gedrukt wordt, dan verhoog je het tabblad, even testen of het 6 of meer is en dan 0 maken.

Je zou het nu al werkend kunnen krijgen.

Het kan mooier.
Een variabele voor een pin kun je in de naam iets met "pin" doen. Dat is iets duidelijker. Bijvoorbeeld 'buttonPin'.
Je update het display heel vaak en je hebt een delay() waarbinnen de knop losgelaten moet worden. Je kunt beide problemen oplossen door te kijken naar dat ene moment dat een knop wordt ingedrukt. Daar is de State Change Detection sketch voor: https://www.arduino.cc/en/Tutorial/BuiltInExamples/StateChangeDetection.
Bijlagen
tinkercad.png
tinkercad.png (44.22 KiB) 3331 keer bekeken

Berichten: 8
Geregistreerd: 01 Nov 2020, 11:42

Re: reset variable

Berichtdoor kilvis » 01 Nov 2020, 14:07

bedankt voor julie hulp

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 15 gasten