Loading...
Pages: [1]   Go Down
Author Topic: Accendere led per 50 millisecondi con pressione pulsante  (Read 269 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti. E' tutto il pomeriggio che provo ma non riesco a venirne a capo.Il programma in questione dovrebbe,dopo la pressione del pulsante,accendere un led per 50 millisecondi. Il mio problema è il seguente:se mantengo premuto il pulsante il led rimane acceso.In pratica a me servirebbe un'impulso di 50 ms anche se il pulsante rimane premuto. Spero di essermi spiegato di seguito posto il file sorgente.
Code:
                 
int up = 8;
int down = 7;
int attup = 13;
int attdown = 12;
int pausa = 50;
int su = 0;
int giu = 0;

void setup() {
  pinMode(attup, OUTPUT);
  pinMode(attdown, OUTPUT );
  pinMode(up,    INPUT);
  pinMode(down, INPUT);
  }
 
void loop() {
 
  su = digitalRead(up);
  giu = digitalRead(down);
  if (su == HIGH) {
  digitalWrite(attup, HIGH);
  delay (pausa);
  digitalWrite(attup, LOW );
  }
  else {
  digitalWrite(attup, LOW);
  }
  if (giu == HIGH) {
  digitalWrite(attdown, HIGH);
  delay (pausa);
  digitalWrite(attdown, LOW ); 
  }
  else {
  digitalWrite(attdown, LOW);
  }
  }

Grazie anticipatamente a chi vorrà spiegarmi dov'è l'errore e indicarmi la soluzione.
Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 226
Posts: 16996
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Metti un ciclo while che attende finché il pulsante non viene rilasciato subito dopo l'attivazione del led.
Code:
if (su == HIGH) {
  digitalWrite(attup, HIGH);
  delay (pausa);
  digitalWrite(attup, LOW );
  while (digitalRead(up)) {}
}
In questo modo il ciclo si ripete finché la lettura è HIGH ed esce solo quando hai tolto il dito.
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie per la risposta veloce e per la spiegazione
Logged

Pages: [1]   Go Up
Print
 
Jump to: