DOMANDA esercizio arduino

Lupen03

Utente Attivo
299
40
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Salve ragazzi ,devo Accendere i led dal primo all'ultimo e viceversa, con un ritardi di mezzo secondo, il pulsante avvia e ferma l'accensione dei led.
lo devo fare con 6 led


ecco il mio codice :
https://hastebin.com/hetiduzize.cpp


non mi funziona , perchè?
 
  • Mi piace
Reactions: crimescene

DispatchCode

Utente Attivo
636
397
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Non funziona è un po' generico...

Comunque probabilmente nello switch devi usare "val", che è ciò che viene restituito dalla funzione (vado a intuizione, considerando che non hai detto quale sia il problema).
 

Lupen03

Utente Attivo
299
40
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Risolto posto il codice , se può essere utile a qualcuno :)

C:
int Ledarancione = 4;
int Ledblu = 5;
int Ledrosso = 6;
int Ledgrigio = 7;
int pulsante = 8;
int val = 0;
int conta=0;
int Ledverde = 9;
int Ledgiallo = 3;


void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  pinMode(Ledverde,OUTPUT);
  pinMode(Ledgiallo,OUTPUT);
  pinMode(Ledarancione,OUTPUT);
  pinMode(Ledblu,OUTPUT);
  pinMode(Ledrosso,OUTPUT);
  pinMode(Ledgrigio,OUTPUT);
  pinMode(pulsante,INPUT);

}

void loop() {
  // put your main code here, to run repeatedly:
  val = digitalRead(pulsante);
  if(digitalRead(pulsante)==HIGH)
  {
    conta++;
    }
  Serial.println(conta);
  switch(conta)
  {
    case 0:
      Serial.println("caso iniziale");
      digitalWrite(Ledgrigio,LOW);
      break;
    case 1:
      digitalWrite(Ledverde,HIGH);
      digitalWrite(Ledgrigio,LOW);
    Serial.println("caso zero");
      break;
    case 2:
      digitalWrite(Ledverde,LOW);
      digitalWrite(Ledgiallo,HIGH);
    Serial.println("caso uno");
      break;
    case 3:
      digitalWrite(Ledgiallo,LOW);
      digitalWrite(Ledarancione,HIGH);
    Serial.println("caso due");
      break;
    case 4:
      digitalWrite(Ledarancione,LOW);
      digitalWrite(Ledblu,HIGH);
    Serial.println("caso tre");
      break;
    case 5:
      digitalWrite(Ledblu,LOW);
      digitalWrite(Ledrosso,HIGH);
    Serial.println("caso quattro");
      break;
    case 6:
      digitalWrite(Ledrosso,LOW);
      digitalWrite(Ledgrigio,HIGH);
    Serial.println("caso cinque");
      conta=0;
      break;
  }
  delay(2000);

}
Post automaticamente unito:
 
Ultima modifica:
  • Mi piace
Reactions: Moffetta88

DispatchCode

Utente Attivo
636
397
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Non ha senso quello che fai qui, è una lettura doppia inutile, come dicevo sopra.

Codice:
val = digitalRead(pulsante);
  if(digitalRead(pulsante)==HIGH)
 
  • Mi piace
Reactions: Moffetta88

Lupen03

Utente Attivo
299
40
Periferiche
usb, mouse,tastiera
Internet
duckduckgo
Sistema Operativo
windows 7 , debian
Non ha senso quello che fai qui, è una lettura doppia inutile, come dicevo sopra.

Codice:
val = digitalRead(pulsante);
  if(digitalRead(pulsante)==HIGH)
C:
 if((val)==HIGH)
Cosi va meglio?
 
Ultima modifica:

DispatchCode

Utente Attivo
636
397
CPU
Intel i7 6700HQ, 2.60Ghz, 4 core 8 threads
Scheda Madre
Asustek
Hard Disk
Hitachi 7200 rpm, 1TB
RAM
16GB DDR4 (2 slot su 4)
Scheda Video
Nvidia Geforce GTX 960M, 4GB
Scheda Audio
Realtek
Sistema Operativo
Windows 10 64bit
Si, esatto. La coppia di tonde non serve in realtà.
Sopra non funzionava in quanto leggevi il risultato e lo memorizzavi in val, ma non utilizzavi mai val.
 
Iniziato da Discussione simile Forum Risposte Data
G Programmazione 3
K Programmazione 3
frame888 Programmazione 1
U Programmazione 4
Chairae Programmazione 7

Entra

oppure Accedi utilizzando