primo skecth fatto da me ho provato a creare uno skecth per un semaforo usando un pulsante per cambiarne la fase (1- chiuso per le auto, aperto per i pedoni 2- aspetta 3- aperto per le auto, chiuso per i pedoni) una volta salito in terza fase, torna alla prima.
eccolo ::
(commenti in portoghese)
/* */ void setup() { //declaraçao de variaveis globais. int vermelhoc = 1; int verdec =2; int amareloc = 3; int vermelhop = 4; int verdep = 5; //valor atribuido a variavel botao e definido pela leitura do estado do pino 7: HIGH ou LOW int botao = digitalRead(7); //definiçao do sentido de corrente eletrica. pinMode(vermelhoc, OUTPUT); pinMode(verdec, OUTPUT); pinMode(amareloc, OUTPUT); pinMode(vermelhop, OUTPUT); pinMode(verdep, OUTPUT); pinMode(botao, INPUT); } void loop() { //definiçao de variaveis locais int estadosemaforo == 1; //corpo da funçao que define o sistema de fases if(botao == HIGH;){ estadosemaforo == estadosemaforo 1++; } if( estadosemaforo == 4 ){ estadosemaforo == 1; } if ( estadosemaforo == 1 ){ // semaforo dos carros digitalWrite(vermelhoc, HIGH); digitalWrite(amareloc, LOW); digitalWrite(verdec, LOW); //semaforo de pedestres digitalWrite(vermelhop, LOW); digitalWrite(verdep, HIGH); } if ( estadosemaforo == 2 ){ // semaforo dos carros digitalWrite(vermelhoc, LOW); digitalWrite(amareloc, HIGH); digitalWrite(verdec, LOW); //semaforo de pedestres digitalWrite(vermelhop, HIGH); digitalWrite(verdep, LOW); } if ( estadosemaforo == 3 ){ // semaforo dos carros digitalWrite(vermelhoc, LOW); digitalWrite(amareloc, LOW); digitalWrite(verdec, HIGH); //semaforo de pedestres digitalWrite(vermelhop, HIGH); digitalWrite(verdep, LOW); } }
Commenti
Risposta
Hai molti molti errori di sintassi di base nel tuo codice. Hai davvero bisogno di leggere e studiare ancora di base C e C ++ prima di andare oltre.
Ecco alcuni esempi di ciò che ho trovato:
- Hai punto e virgola dove “non dovrebbe esserci
- Mescoli
==
e=
dappertutto -
estadosemaforo == estadosemaforo 1++;
non ha alcun senso: non ho idea di cosa intendi in questo campo - Variabili definite in
setup
può essere utilizzato solo insetup
. Se desideri utilizzare una variabile in più funzioni, deve essere globale. -
estadosemaforo
può essere solo 1 o 2. Si reimposta a 1 ogni volta cheloop()
viene eseguito. - Non puoi aspettarti di leggere un segnaposto una volta e che il suo valore cambi magicamente: devi leggerlo ogni volta in cui vuoi conoscere lo stato del pin.
- Stai leggendo da un pin digitale, quindi utilizzi i risultati di quella lettura per configurare un pin e poi aspettati che faccia qualcosa di utile.
Commenti
- i ' sto davvero iniziando da lì, ma, grazie mille. non ' nemmeno pensato a questi errori.
int vermelhoc = 1;
eint estadosemaforo == 1;
…. uno di questi non è la sintassi corretta …. cerca come assegnare i valori delle variabili