最初のskecthの前に初期化子が必要です自分で作った信号機のスケクトを1つのプッシュボタンでフェーズを変更して作成しようとしました(1-車の場合は閉じ、歩行者の場合は開きます2-待機3-車の場合は開き、歩行者の場合は閉じます)フェーズ、最初に戻ります。
ここに進みます::
(ポルトガル語でのコメント)
/* */ 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); } }
コメント
回答
コードに多くの基本的な構文エラーがあります。先に進む前に、基本的なCおよびC ++をもう少し読んで勉強する必要があります。
ここに、私が見つけたいくつかの例を示します。
- あるべきではないセミコロン
- あちこちで
==
と=
を混同します -
estadosemaforo == estadosemaforo 1++;
はまったく意味がありません-意味がわかりません -
setup
はsetup
でのみ使用できます。複数の関数で変数を使用する場合は、グローバルである必要があります。 -
estadosemaforo
は1または2のみです。loop()
が実行されるたびに1にリセットされます。 - ピンを1回読み取るだけで、その値が魔法のように変化することは期待できません。毎回読み取る必要があります。ピンの状態を知りたいとき。
- デジタルピンから読み取り、その読み取り結果を使用してピンを構成します。そして、それが何か役立つことを期待します。
コメント
- i ' mは本当にそこから始まりますが、どうもありがとうございました。 'これらの間違いについても考えていませんでした。
int vermelhoc = 1;
とint estadosemaforo == 1;
….これらの1つが正しい構文ではありません….変数値を割り当てる方法を調べてください