DOMANDA esercizio arduino

Spanci03

Utente Attivo
418
87
Periferiche
usb, mouse,tastiera
Net
duckduckgo
OS
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
Reazioni: crimescene

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
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).
 

Spanci03

Utente Attivo
418
87
Periferiche
usb, mouse,tastiera
Net
duckduckgo
OS
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 unito automaticamente:
 
Ultima modifica:
  • Mi piace
Reazioni: Moffetta88

DispatchCode

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
Non ha senso quello che fai qui, è una lettura doppia inutile, come dicevo sopra.

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

Spanci03

Utente Attivo
418
87
Periferiche
usb, mouse,tastiera
Net
duckduckgo
OS
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

Moderatore
Staff Forum
Utente Èlite
2,220
1,852
CPU
Intel I9-10900KF 3.75GHz 10x 125W
Dissipatore
Gigabyte Aorus Waterforce X360 ARGB
Scheda Madre
Asus 1200 TUF Z590-Plus Gaming ATX DDR4
HDD
1TB NVMe PCI 3.0 x4, 1TB 7200rpm 64MB SATA3
RAM
DDR4 32GB 3600MHz CL18 ARGB
GPU
Nvidia RTX 3080 10GB DDR6
Audio
Integrata 7.1 HD audio
Monitor
LG 34GN850
PSU
Gigabyte P850PM
Case
Phanteks Enthoo Evolv X ARGB
Periferiche
MSI Vigor GK30, mouse Logitech
Net
FTTH Aruba, 1Gb (effettivi: ~950Mb / ~480Mb)
OS
Windows 10 64bit / OpenSUSE Tumbleweed
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.
 

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!

Discussioni Simili