erstem Skecth Von mir selbst gemacht habe ich versucht, mit einem Druckknopf einen Skecth für eine Ampel zu erstellen, um deren Phase zu ändern (1 – geschlossen für Autos, offen für Fußgänger 2 – warten 3 – offen für Autos, geschlossen für Fußgänger), sobald ich auf dem dritten Platz angekommen bin Phase, kommt zurück zur ersten.
hier geht es ::
(Kommentare auf Portugiesisch)
/* */ 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); } }
Kommentare
- Sie verwenden diese beiden Varianten für Variablenzuweisungen …
int vermelhoc = 1;
undint estadosemaforo == 1;
…. eine davon ist nicht die richtige Syntax …. bitte recherchieren Sie, wie man variable Werte zuweist
Antwort
Ihr Code enthält viele grundlegende Syntaxfehler. Sie müssen wirklich noch etwas mehr über C und C ++ lesen und lernen, bevor Sie fortfahren.
Hier sind einige Beispiele für das, was ich gefunden habe:
- Sie haben Semikolons, bei denen es nicht „
- “ geben sollte. Sie verwechseln
==
und=
überall -
estadosemaforo == estadosemaforo 1++;
macht überhaupt keinen Sinn – ich habe keine Ahnung, was Sie dort meinen - Variablen definiert in
setup
kann nur insetup
verwendet werden. Wenn Sie eine Variable in mehreren Funktionen verwenden möchten, muss sie global sein. -
estadosemaforo
kann immer nur 1 oder 2 sein. Es wird jedes Mal auf 1 zurückgesetzt, wennloop()
ausgeführt wird. - Sie können nicht erwarten, dass ein Pin einmal gelesen wird und sich sein Wert magisch ändert – Sie müssen ihn jedes Mal lesen Mal, wenn Sie den Pin-Status wissen möchten.
- Sie lesen von einem digitalen Pin und verwenden dann die Ergebnisse dieses Lesevorgangs, um einen Pin zu konfigurieren – und erwarten dann, dass er etwas Nützliches bewirkt.
Kommentare
- Ich ' fange wirklich dort an, aber vielen Dank. ' hat nicht einmal über diese Fehler nachgedacht.