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

  • utilizați aceste două variante pentru atribuiri variabile … int vermelhoc = 1; și int estadosemaforo == 1; …. una dintre acestea nu este sintaxa corectă …. vă rugăm să căutați cum să atribuiți valori variabile

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 în setup. 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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *