我在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
但是我没有结果,我不知道为什么尽管我已经尝试了几次但它没有开始