eerste skecth door mijzelf gemaakt ik heb geprobeerd een schicht te maken voor een verkeerslicht met één drukknop om de fase te veranderen (1- gesloten voor autos, open voor voetgangers 2- wacht 3- open voor autos, gesloten voor voetgangers) eenmaal op de derde plaats gekomen fase, komt terug bij de eerste.
hier gaat het:
(commentaar in het Portugees)
/* */ 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); } }
Opmerkingen
Antwoord
Je code bevat veel basissyntaxisfouten. Je moet echt wat meer lezen en bestuderen van basis C en C ++ voordat je verder gaat.
Hier volgen enkele voorbeelden van wat ik heb gevonden:
- Je hebt puntkommas waar dat niet hoort
- Je verwisselt
==
en=
overal -
estadosemaforo == estadosemaforo 1++;
slaat helemaal nergens op – ik heb geen idee wat je daar bedoelt - Variabelen gedefinieerd in
setup
kan alleen worden gebruikt insetup
. Als je een variabele in meerdere functies wilt gebruiken, moet deze globaal zijn. -
estadosemaforo
kan altijd 1 of 2 zijn. Elke keer datloop()
wordt uitgevoerd, wordt het teruggezet op 1. - Je kunt niet verwachten dat je een pincode één keer leest en de waarde op magische wijze verandert – je moet hem elke keer lezen tijd dat u de pinstatus wilt weten.
- U leest van een digitale pincode en gebruikt vervolgens de resultaten van die uitlezing om een pincode te configureren – en verwacht dan dat deze iets nuttigs doet.
Reacties
- i ' begin daar echt, maar heel erg bedankt. had niet ' zelfs niet aan deze fouten gedacht.
int vermelhoc = 1;
enint estadosemaforo == 1;
…. een van deze is niet de juiste syntaxis …. onderzoek alstublieft hoe u variabele waarden toewijst