första skecth jag själv gjorde jag försökte skapa en skecth för ett trafikljus med en tryckknapp för att ändra fas (1- stängd för bilar, öppen för fotgängare 2- vänta 3- öppen för bilar, stängd för fotgängare) kom en gång fas, kommer tillbaka till den första.
här går det ::
(kommentarer på portugisiska)
/* */ 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); } }
Kommentarer
Svar
Du har många grundläggande syntaxfel i din kod. Du måste verkligen läsa och studera mer om grundläggande C och C ++ innan du går längre.
Här är några exempel på vad jag hittade:
- Du har semikolon där det inte borde finnas
- Du blandar ihop
==
och=
överallt -
estadosemaforo == estadosemaforo 1++;
är ingen mening alls – jag har ingen aning om vad du menar där - Variabler definierade i
setup
kan endast användas isetup
. Om du vill använda en variabel i flera funktioner så måste den vara global. -
estadosemaforo
kan bara vara 1 eller 2. Den återställs till 1 varje gångloop()
körs. - Du kan inte bara förvänta dig att läsa en stift en gång och få värdet att förändras magiskt – du måste läsa den varje gång tid du vill veta pin-tillståndet.
- Du läser från en digital pin och använder sedan resultaten från den läsningen för att konfigurera en pin – och förväntar dig att den ska göra något användbart.
Kommentarer
- i ' jag börjar verkligen där, men tack så mycket. hade inte ' tänkt ens på dessa misstag.
int vermelhoc = 1;
ochint estadosemaforo == 1;
…. en av dessa är inte rätt syntax …. undersök hur man tilldelar variabla värden