primul skecth realizat de mine am încercat să creez un skecth pentru un semafor folosind un singur buton pentru a-i schimba faza (1- închis pentru mașini, deschis pentru pietoni 2- așteptați 3- deschis pentru mașini, închis pentru pietoni) odată ajuns pe al treilea fază, revine la prima.
iată:
(comentarii în portugheză)
/* */ 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); } }
Comentarii
Răspuns
Aveți multe erori de sintaxă de bază în cod. Trebuie să mai citiți și să studiați C și C ++ de bază înainte de a merge mai departe.
Iată câteva exemple din ceea ce am găsit:
- Aveți punct și virgulă în care nu ar trebui să existe „
- Amestecați
==
și=
peste tot -
estadosemaforo == estadosemaforo 1++;
nu are niciun sens – nu am nicio idee despre ce vrei să spui acolo - Variabile definite în
setup
poate fi utilizat numai însetup
. Dacă doriți să utilizați o variabilă în mai multe funcții, atunci trebuie să fie globală. -
estadosemaforo
poate fi doar 1 sau 2. Se resetează la 1 de fiecare dată când ruleazăloop()
. - Nu vă puteți aștepta doar să citiți un pin o dată și să-i schimbați valoarea magic – trebuie să îl citiți când doriți să cunoașteți starea pinului.
- Citiți dintr-un pin digital, apoi folosiți rezultatele citirii pentru a configura un pin – și apoi vă așteptați să facă ceva util.
Comentarii
- Eu ' M chiar începând de acolo, dar, mulțumesc mult. ' nici măcar nu s-a gândit la aceste greșeli.
int vermelhoc = 1;
șiint estadosemaforo == 1;
…. una dintre acestea nu este sintaxa corectă …. vă rugăm să căutați cum să atribuiți valori variabile