een drukknop 4 keer drukken dan led aan

Arduino specifieke Software
Berichten: 7
Geregistreerd: 08 Jun 2019, 00:35

een drukknop 4 keer drukken dan led aan

Berichtdoor britting » 08 Jun 2019, 02:09

ik ben pas begonnen met programmeren .
ik zou graag een drukknop 4 keer drukken dan led aan .

Advertisement

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

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor Koepel » 08 Jun 2019, 07:52

Hallo, welkom op dit forum.

Vier keer tellen is geen probleem, maar een drukknop heeft dender. Daarom is er iets nodig om het denderen tegen te gaan (in het Engels: debounce).

Begin eerst eens met dit voorbeeld: https://www.arduino.cc/en/Tutorial/StateChangeDetection.

Berichten: 7
Geregistreerd: 08 Jun 2019, 00:35

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor britting » 08 Jun 2019, 08:50

bedankt.
zou het ook mogelijk zijn dat het binnen en bepaalde tijd moed zijn dat je 4 keer drukt, anders terug van 1 beginnen.
het moed eigenlijk dienen voor en voordeur op de parlofoon .
voor beeld al ze 4 keer drukken gaat de deur los .
daar mee binnen en tijd .
anders vervalt het.
moed je terug 4 keer drukken .

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

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor Koepel » 08 Jun 2019, 09:03

Natuurlijk, bij Arduino is daar de millis() functie voor.
Het vergt even tijd om daar mee om te gaan.
Je kunt beginnen met de Blink Without Delay: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay.

De millis() functie is een teller die het aantal milliseconden geeft.
Dus als je de millis() waarde opvraagt, en die is 300, en dan vraag je een seconde later weer de millis() waarde, dan is die 1000 milliseconden verder en is 1300.

Daarmee kun je leuke dingen doen: https://github.com/Koepel/Fun_with_millis.

Berichten: 7
Geregistreerd: 08 Jun 2019, 00:35

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor britting » 12 Jun 2019, 11:13

ik begrijp hoe het zou moeten zijn (denk), maar krijg het nog niet in programeer taal geschreven.
ik zal het program plakken, en in mijn taal bij schrijven wat ik wil tussen (()).
zou het dan mogelijk zijn dat iemand het in programma taal omzet .
al vast bedankt .

/*
State change detection (edge detection)

Often, you don't need to know the state of a digital input all the time, but
you just need to know when the input changes from one state to another.
For example, you want to know when a button goes from OFF to ON. This is called
state change detection, or edge detection.

This example shows how to detect when a button or button changes from off to on
and on to off.

The circuit:
- pushbutton attached to pin 2 from +5V
- 10 kilohm resistor attached to pin 2 from ground
- LED attached from pin 13 to ground (or use the built-in LED on most
Arduino boards)

created 27 Sep 2005
modified 30 Aug 2011
by Tom Igoe

This example code is in the public domain.

http://www.arduino.cc/en/Tutorial/ButtonStateChange
*/

// this constant won't change:
const int buttonPin = 2; // the pin that the pushbutton is attached to
const int ledPin = 13; // the pin that the LED is attached to

// Variables will change:
int buttonPushCounter = 0; // counter for the number of button presses
int buttonState = 0; // current state of the button
int lastButtonState = 0; // previous state of the button

void setup() {
// initialize the button pin as a input:
pinMode(buttonPin, INPUT);
// initialize the LED as an output:
pinMode(ledPin, OUTPUT);
// initialize serial communication:
Serial.begin(9600);
}


void loop() {
// read the pushbutton input pin:
buttonState = digitalRead(buttonPin);

// compare the buttonState to its previous state
if (buttonState != lastButtonState) {
// if the state has changed, increment the counter
if (buttonState == HIGH) {
// if the current state is HIGH then the button went from off to on:
buttonPushCounter++;
((

(( else if (buttonState 1000 millis LOW is ){
buttonPushCounter terug naar 4} ))

))

Serial.println("on");
Serial.print("number of button pushes: ");
Serial.println(buttonPushCounter);
} else {
// if the current state is LOW then the button went from on to off:
Serial.println("off");
}
// Delay a little bit to avoid bouncing
delay(50);
}
// save the current state as the last state, for next time through the loop
lastButtonState = buttonState;


// turns on the LED every four button pushes by checking the modulo of the
// button push counter. the modulo function gives you the remainder of the
// division of two numbers:
if (buttonPushCounter % 4 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}

}

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

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor shooter » 12 Jun 2019, 13:33

heel simpel zelf bedenken, iets kopieren en dan eronder schrijven ik had het zo willen hebben werkt bij ons niet.
en als je zoveel problemen hebt met programmeren kijk dan eens naar scratch of mblock dat doen kinderen van 10 en is zo vriendelijk als maar kan.
paul deelen
shooter@home.nl

Berichten: 7
Geregistreerd: 08 Jun 2019, 00:35

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor britting » 12 Jun 2019, 18:55

hoe schrijf ik dat .
als (if) het 1000 millis LOW is) { dan doe iets;}
------------------------------------
de voor waarden krijg ik niet geschreven. dit is ook mijn eerste projectje .
en vind er ook niets van op internet.
of zijn het 2 voor waadens ?
al vast bedankt .

Gebruikers-avatar
Berichten: 317
Geregistreerd: 15 Nov 2015, 11:54

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor Gij Kieken » 12 Jun 2019, 19:02

Als je deze link volgt http://www.arduino.nu/ en bij vet gedrukt in het rood NIEUW aanklikt heb je een goede starter.

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

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor shooter » 13 Jun 2019, 12:25

zoek naar blink without delay dat is een voorbeeld dat in de arduino IDE zit.
if ((huidige_tijd-oude_tijd)>wacht_tijd){oude_tijd=huidige_tijd;actie}
paul deelen
shooter@home.nl

Berichten: 7
Geregistreerd: 08 Jun 2019, 00:35

Re: een drukknop 4 keer drukken dan led aan

Berichtdoor britting » 13 Jun 2019, 23:26

hoi allemaal bedankt voor de moeite en hulp !!!
uren mee bezig geweest, ik heb nog niet veel ervaring
maar ik geraak er niet uit .
ik heb en ander program gevonden heel simpel en werkt goed ,maar een ding lukt weer niet.
teller 4 laat ik naar delay (500) terug naar teller 1 gaan,werkt goed.
maar teller 2 en 3 zouden ook na en tijd terug naar teller1 moeten gaan .
als ik niet binnen de tijd door tik.
hier onder is de code .

int knopPin=2;
int teller=0;
int led1Pin=6;
int led2Pin=7;
int led13Pin=13;
boolean laatstButton=LOW;
boolean ledOn=false;
boolean nuButton=LOW;

void setup()
{

pinMode(knopPin,INPUT);
pinMode(led1Pin,OUTPUT);
pinMode(led2Pin,OUTPUT);
pinMode(led13Pin,OUTPUT);

}
boolean debounce(boolean laatst)
{
boolean nu=digitalRead(knopPin);
if (laatst != nu)
{ delay(5);
nu=digitalRead(knopPin);
}
return nu;
}
void loop()
{


teller==0;
//unsigned long currentMillis = millis();


nuButton = debounce(laatstButton);

if (laatstButton==LOW && nuButton==HIGH)

{
teller=teller+1;
}
if (teller ==1){
laatstButton=nuButton;
digitalWrite(led13Pin,LOW);
}

if (teller ==2 ){
laatstButton=nuButton;
digitalWrite(led13Pin,LOW);
}


if (teller ==3 ){
laatstButton=nuButton;
digitalWrite(led13Pin,LOW);
}

if (teller ==4){
laatstButton=nuButton;
digitalWrite(led13Pin,HIGH);
delay(500);
teller =1;
}
}

Volgende

Terug naar Arduino software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 4 gasten