primer skecth hecho por mí mismo traté de crear un esqueleto para un semáforo usando un botón para cambiar su fase (1- cerrado para autos, abierto para peatones 2- esperar 3- abierto para autos, cerrado para peatones) una vez que llegué a la tercera fase, vuelve a la primera.
aquí va ::
(comentarios en portugués)
/* */ 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); } }
Comentarios
Respuesta
Tiene muchos errores de sintaxis básicos en su código. Realmente necesitas leer y estudiar un poco más de C y C ++ básico antes de continuar.
Aquí tienes algunos ejemplos de lo que encontré:
- Tienes punto y coma donde no debería haberlo
- Mezclas
==
y=
por todas partes -
estadosemaforo == estadosemaforo 1++;
no tiene ningún sentido. No tengo ni idea de lo que quieres decir. - Variables definidas en
setup
solo se puede utilizar ensetup
. Si desea usar una variable en varias funciones, entonces debe ser global. -
estadosemaforo
solo puede ser 1 o 2. Se restablece a 1 cada vez queloop()
se ejecuta. - No puede esperar leer un pin una vez y que su valor cambie mágicamente; debe leerlo cada vez que desee saber el estado del pin.
- Está leyendo de un pin digital y luego utiliza los resultados de esa lectura para configurar un pin, y luego espera que haga algo útil.
Comentarios
- i ' realmente estoy comenzando por ahí, pero muchas gracias. no había ' ni siquiera había pensado en estos errores.
int vermelhoc = 1;
yint estadosemaforo == 1;
…. uno de estos no es la sintaxis correcta …. investigue cómo asignar valores de variable