Button debounce hardwarematig

Hardware geleverd door Arduino
Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Button debounce hardwarematig

Berichtdoor nicoverduin » 15 Aug 2014, 12:51

Hanneman schreef:Het zal wel aan mij liggen maar buttons op de analoge inputs lijkt me niet handig en ik krijg hem niet op de digitale inputs.
inderdaad. Ligt aan jou. Werkt als een tierelier
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Advertisement

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:09

Ik bedoel dat op de site van de library een voorbeeld aangehaald wordt waarin de button op een analoge input aangesloten wordt.
Dat lijkt mij helemaal niet handig.

Ik probeerde die te veranderen naar een digitale input in de code, maar dan krijg ik een error.

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

Re: Button debounce hardwarematig

Berichtdoor nicoverduin » 15 Aug 2014, 13:11

Welke error.... ???
Ik ben het wel met Shooter eens dat men tegenwoordig wel steeds vager wordt.......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:22

Ik heb de library geimporteerd, staat ook in de lijst.
Ik voeg die code in en krijg de volgende error:


sketch_aug15c:14: error: no matching function for call to 'OneButton::OneButton(const uint8_t&)'

Code: Alles selecteren
#include <OneButton.h>

/*
 S01_SimpleOneButton
 Simple OneButton sketch that shows how to ???

 The circuit:
 * Connect a pushbutton to pin A1 (ButtonPin) and ground
 * and see results on pin 13 (StatusPin).
 * 03.03.2011 created by Matthias Hertel
 */

// Setup a new OneButton on pin A1. 
OneButton button(A1);


// setup code here, to run once:
void setup() {
  // enable the standard led on pin 13.
  pinMode(13, OUTPUT);      // sets the digital pin as output
 
  // link the doubleclick function to be called on a doubleclick event.   
  button.attachDoubleClick(doubleclick);
} // setup
 

// main code here, to run repeatedly:
void loop() {
  // keep watching the push button:
  button.tick();

  // You can implement other code in here or just wait a while
  delay(10);
} // loop


// this function will be called when the button was pressed 2 times in a short timeframe.
void doubleclick() {
  static int m = LOW;
  // reverse the LED
  m = !m;
  digitalWrite(13, m);
} // doubleclick

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

Re: Button debounce hardwarematig

Berichtdoor nicoverduin » 15 Aug 2014, 13:27

En heb je al gecontroleerd of die functie er echt niet is? Dus de code bekijken van die library?

@edit: soms is de beschrijving van een intro scherm achterhaald???? En is het altijd handiger om de meegeleverde voorbeelden te bekijken..........
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:40

ik zal er zo nog eens naar kijken

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:43

Ik ben aan het vogelen met jouw debounce code, ik krijg de error:
'checkbutton' cannot be used as a function

dit zit in de switch:

Code: Alles selecteren
  case stap16:
 
     if (checkButton(knopPin)) {
      volgendeStap = volgendeStap +3;
      }
 
    //
    // alleen uitvoeren als de tijd is verstreken
    //
    if (millis() > timer) {
      lightLeds (0b10000000, 0b00000000);
      // digitalWrite(LED1, !digitalRead(LED1));   // Flip led 1

      teller++;                                                // verhoog teller
      if (teller > 1) {                                  // alles gehad?
        volgendeStap++;                                     // we zijn hier klaar
      }
      else {
        snelheid = snelheid*2;
        timer = millis() + snelheid;             // we zijn er nog niet dus de timer zetten
      }
    }
    break;


Dit staat ervoor (ook in de void loop):
Code: Alles selecteren
        /**
     * @name checkButton (uint8_t dataPin)
     * @param dataPin index to button in array
     * @returns boolean true=pressed, false=not pressed
     * checks if a button is processable or waiting for release. If processable, it checks for the ACTIVE_BUTTON state
     */
      boolean checkButton(knopPin);
   
       boolean returnStatus = false;                     // default button is not pressed
       //
       // check switch color button
       //
       if (buttons[knopPin].waitForReleased) {
          //
          // we are still waiting for the release of the button to be able to process the next
          //
          if (digitalRead(buttons[knopPin].pin) == !ACTIVE_BUTTON) {
             //
             // yep button is released
             //
             buttons[knopPin].waitForReleased = false;
          }
       } else {
          //
          // check if the button is pressed
          //
          if (digitalRead(buttons[knopPin].pin) == ACTIVE_BUTTON) {
             //
             // wait debounce time
             //
             delay(DEBOUNCE);
             if (digitalRead(buttons[knopPin].pin) == ACTIVE_BUTTON) {
                //
                // set the return status
                //
                returnStatus = true;
                //
                // and do not process this button until it is released
                //
                buttons[knopPin].waitForReleased = true;
             }
          }
       }

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

Re: Button debounce hardwarematig

Berichtdoor nicoverduin » 15 Aug 2014, 13:48

Ik zou ff alles op zij gooien en een week vrij nemen...... je maakt nu de ene zorgvuldigheidsfout na de andere..... Je kopieert een functie in een loop()? en maakt van de functie header een statement en het kwartje valt niet.......
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:49

De sample sketch van de one button library zelf werkt idd wel, die op de site staat bevat een fout.

Berichten: 167
Geregistreerd: 19 Apr 2014, 15:03

Re: Button debounce hardwarematig

Berichtdoor Hanneman » 15 Aug 2014, 13:52

Dat is misschien wel het beste jah,

helder nadenken zit er blijkbaar ff niet meer in :(

Ik ga maar weer verder Dirty Harry uit '71 kijken :P

VorigeVolgende

Terug naar Arduino hardware

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 70 gasten