Arduno:我对带有 4 个按钮的 Sequence 有疑问

问题描述 投票:0回答:0

我在Tinkercad中开发这个电路有问题。为什么它似乎不起作用?按钮的 pid 链接为下面的代码,但它仍然无法启动。请问你能帮帮我吗?提前致谢!

这是代码:

`

  const int LED_1 = 7;
  const int LED_2 = 8;
 const int LED_3 = 9;
 const int LED_4 = 10;
 const int LED_MOD = 11;

const int TEMPO_MAX_MOD = 10000; // tempo massimo in millisecondi per la modalità caricamento
const int TEMPO_DOPPIO_MOD = 2000; // tempo massimo in millisecondi per il doppio click su tasto MOD

// Dichiarazione delle variabili globali
 int sequenzaLED[5]; // vettore che contiene la sequenza di accensione dei LED
    int lunghezzaSequenza = 0; // lunghezza effettiva del vettore sequenzaLED
   bool modalitaCaricamento = false; // flag che indica se siamo in modalità caricamento
  unsigned long tempoInizioMod = 0; // tempo di inizio della modalità caricamento
  unsigned long tempoUltimoClickMod = 0; // ultimo tempo di pressione del tasto MOD

  void setup() {
   // Configurazione dei pin
  pinMode(TASTO_MOD, INPUT_PULLUP);
  pinMode(TASTO_1, INPUT_PULLUP);
 pinMode(TASTO_2, INPUT_PULLUP);
 pinMode(TASTO_3, INPUT_PULLUP);
 pinMode(TASTO_4, INPUT_PULLUP);

  pinMode(LED_1, OUTPUT);
   pinMode(LED_2, OUTPUT);
  pinMode(LED_3, OUTPUT);
 pinMode(LED_4, OUTPUT);
  pinMode(LED_MOD, OUTPUT);

 // Inizializzazione del vettore sequenzaLED a 0
   for (int i = 0; i < 5; i++) {
     sequenzaLED[i] = 0;
     }
     }

  void loop() {
   // Gestione della pressione del tasto MOD
 if (digitalRead(TASTO_MOD) == LOW) {
  unsigned long tempoCorrente = millis();
   if (tempoCorrente - tempoUltimoClickMod < TEMPO_DOPPIO_MOD) {
   // Doppio click su tasto MOD: riproduzione della sequenza
   for (int i = 0; i < lunghezzaSequenza; i++) {
    switch (sequenzaLED[i]) {
  case LED_1:
  digitalWrite(LED_1, HIGH);
  delay(500);
 digitalWrite(LED_1, LOW);
 break;
 case LED_2:
  digitalWrite(LED_2, HIGH);
  delay(500);
 digitalWrite(LED_2, LOW);
 break;
   case LED_3:
   digitalWrite(LED_3, HIGH);
 delay(500);
   digitalWrite(LED_3, LOW);
    break;
   case LED_4:
     digitalWrite(LED_4, HIGH);
   delay(500);
     digitalWrite(LED_4, LOW);
    break;
      }
        }
    tempoUltimoClickMod = 0;
  } else {
  // Singolo click su tasto MOD: attivazione modalità caricamento
 tempoInizioMod = tempoCorrente;
  modalitaCaricamento = true;
   digitalWrite(LED_MOD, HIGH);
    }
   tempoUltimoClickMod = tempoCorrente;
   }}`

我试着这样做: https://imgur.com/vwQumCh

但是我没有结果,我不知道为什么尽管我已经尝试了几次但它没有开始

arduino arduino-ide short-circuiting circuit circuit-diagram
© www.soinside.com 2019 - 2024. All rights reserved.