premier skecth fait par moi-même, jai essayé de créer un skecth pour un feu de signalisation en utilisant un bouton poussoir pour changer sa phase (1- fermé pour les voitures, ouvert pour les piétons 2- attendre 3- ouvert pour les voitures, fermé pour les piétons) une fois arrivé troisième phase, revient à la première.
voilà:
(commentaires en portugais)
/* */ 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); } }
Commentaires
Réponse
Vous avez de nombreuses erreurs de syntaxe de base dans votre code. Vous devez vraiment lire et étudier les bases du C et du C ++ avant daller plus loin.
Voici quelques exemples de ce que jai trouvé:
- Vous avez des points-virgules là où il ne devrait pas être
- Vous mélangez
==
et=
partout -
estadosemaforo == estadosemaforo 1++;
na aucun sens – je nai aucune idée de ce que vous voulez dire ici - Variables définies dans
setup
ne peut être utilisé que danssetup
. Si vous souhaitez utiliser une variable dans plusieurs fonctions, elle doit être globale. -
estadosemaforo
ne peut être que 1 ou 2. Il se réinitialise à 1 chaque fois queloop()
sexécute. - Vous ne pouvez pas vous attendre à lire une épingle une seule fois et à voir sa valeur changer comme par magie – vous devez le lire tous les lheure à laquelle vous voulez connaître létat de la broche.
- Vous lisez une broche numérique, puis utilisez les résultats de cette lecture pour configurer une broche – et attendez-vous à ce quelle fasse quelque chose dutile.
Commentaires
- i ' Je commence vraiment par là, mais merci beaucoup. Je navais même pas ' pensé à ces erreurs.
int vermelhoc = 1;
etint estadosemaforo == 1;
…. lun dentre eux nest pas la syntaxe correcte …. veuillez rechercher comment attribuer des valeurs de variable