Reset counter op nul

Arduino specifieke Software
Berichten: 46
Geregistreerd: 13 Jan 2016, 11:00

Reset counter op nul

Berichtdoor dinoshop » 11 Okt 2016, 10:15

ben bezig met een teller elke keer als de knop wordt ingedrukt telt deze er 1 bij op werkt perfect , nu wil ik er een knop in hebben die de teller weer op nul zet . dit zit al in script verwerkt alleen deel van de reset op nul niet van alles geprobeerd maar nee lukt ff niet.

Code: Alles selecteren

#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int switchPin = 13;
const int resetPin = 12;
int hits = 0;
int resetState = 0;
int currentState = 0;
int previousState = 0;

void setup() {
  pinMode(switchPin, INPUT);
  pinMode(resetPin, INPUT);
  lcd.init();
  lcd.backlight();
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("REDTEAM");
  lcd.setCursor(0, 1);
  lcd.print("Hit Pusbutton");
}

void loop() {
  currentState = digitalRead(switchPin);
  if (currentState != previousState) {
    if (currentState == LOW) {
      hits = hits + 1;
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("REDTEAM Hits:");
      lcd.setCursor(0, 1);
      lcd.print(hits);
      delay(200);
    }
  }
  previousState = currentState;   
  }

 


Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Reset counter op nul

Berichtdoor nicoverduin » 11 Okt 2016, 11:21

Als je nergens die resetPin leest.......... of verwerkt......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 46
Geregistreerd: 13 Jan 2016, 11:00

Re: Reset counter op nul

Berichtdoor dinoshop » 11 Okt 2016, 12:10

klopt had ik verhaal ook aangegeven. ik zoek dus stukje script die dit gaat doen met resetPin

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Reset counter op nul

Berichtdoor nicoverduin » 11 Okt 2016, 12:41

Je hebt het erboven staan?????? En dit is ook niet je eerste programma......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: Reset counter op nul

Berichtdoor Koepel » 11 Okt 2016, 13:15

De delay van 200ms voorkomt bouncing van de knop.
Maar tijdens die 200ms kun je niet kijken of de reset knop wordt ingedrukt.
Er zijn libraries voor debounce die geen delay hebben, die werken intern met millis(). Misschien iets voor later.

Met wat commentaar erbij en een paar lege regels wordt het volgens mij duidelijker:
cpp code
void loop() {

//----------------------------------------
// Check the switch, and increment hits
//----------------------------------------
currentState = digitalRead(switchPin);
if (currentState != previousState) {
if (currentState == LOW) {
hits = hits + 1;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("REDTEAM Hits:");
lcd.setCursor(0, 1);
lcd.print(hits);
delay(200);
}
}
previousState = currentState;



//----------------------------------------
// Check the reset button, and clear hits
//----------------------------------------

zelf invullen: iets met digitalRead, check for LOW, hits = 0;
}


Als het zelf invullen niet lukt, laat je dan zien wat je hebt, dan helpen we je.

Berichten: 46
Geregistreerd: 13 Jan 2016, 11:00

Re: Reset counter op nul

Berichtdoor dinoshop » 11 Okt 2016, 13:34

Code: Alles selecteren
#include <LiquidCrystal_I2C.h>
#include <Wire.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);

const int switchPin = 13;
const int buttonPin = 11;
int hits = 0;
int buttonState = 0;
int currentState = 0;
int previousState = 0;

void setup() {
  pinMode(switchPin, INPUT);
  pinMode(buttonPin, INPUT);
  lcd.init();
  lcd.backlight();
  lcd.begin(16, 2);
  lcd.clear();
  lcd.setCursor(0, 0);
  lcd.print("REDTEAM");
  lcd.setCursor(0, 1);
  lcd.print("Hit Pusbutton");

}

void loop() {
  currentState = digitalRead(switchPin);
  if (currentState != previousState) {
    if (currentState == LOW) {
      hits = hits + 1;
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("REDTEAM Hits:");
      lcd.setCursor(0, 1);
      lcd.print(hits);
      delay(200);
    }
    previousState = currentState;
     
    digitalRead(buttonPin== LOW);
    hits = 0;
  }
}

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Reset counter op nul

Berichtdoor nicoverduin » 11 Okt 2016, 14:25

Volgens mij worden we niet serieus genomen. De vorige keer liep je te piepen dat "we allemaal onderaan de ladder moesten beginnen". Maar zelf doen..... voorbeelden te over om een button te lezen.... dus kennelijk geldt jouw eigen uitspraak niet voor jezelf...
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

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

Re: Reset counter op nul

Berichtdoor Koepel » 11 Okt 2016, 18:19

Uhm, dinoshop, die lege regels en dat commentaar waar ik het over had, dat was niet zomaar een opmerking.
Je hebt nu code toegevoegd binnen de code van de andere knop (om de 'hits' op te hogen). Met dat commentaar en die lege regels, dan zie je beter de afzonderlijke dingen binnen de loop().

Dus als je dat wilt doen, en dan nog een if-statement erbij.
Zo iets als: if ( digitalRead(buttonPin) == LOW ) dan de hits nul maken.
Waarschijnlijk wil je dan ook op het display laten zien dat de waarde nul is geworden.

Berichten: 46
Geregistreerd: 13 Jan 2016, 11:00

Re: Reset counter op nul

Berichtdoor dinoshop » 12 Okt 2016, 11:03

Koepel bedankt voor de hint , hij werkt nu dus nogmaals dank.

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 101 gasten