estou trabalhando em um projeto e me deparei com um problema. Preciso q o circuito incremente com uma condição e decremente com outra condição. mais ou menos assim:
contador só vai incrementar quando:
-a porta IN1 for alta
-a porta IN2 for alta
contador so vai decrementar quando:
-a porta IN1 for baixa
-a porta IN3 for alta
fiz esse codigo, mas não deu certo.
int LED1 = 22;
int LED2 = 23;
int LED3 = 24;
int IN1 = 53;
int IN2 = 52;
int IN3 = 51;
int contador = 0;
int leitura;
void setup(){
pinMode (LED1, OUTPUT);
pinMode (LED2, OUTPUT);
pinMode (LED3, OUTPUT);
pinMode (IN1, INPUT);
pinMode (IN2, INPUT);
pinMode (IN3, INPUT);
}
void loop(){
while( 0 <= contador <= 9){
leitura = digitalRead(IN1);
if (leitura == HIGH){
digitalRead(IN2);
if(digitalRead(IN2) == HIGH){
contador = contador + 1;
}
}
else(leitura == LOW){
digitalRead(IN3);
if(digitalRead(IN3) == HIGH){
contador = contador -1;
}
}
if(contador == 1){
digitalWrite(LED1, HIGH);
}
}
vocês podem me ajudar?
Isto:
else(leitura == LOW){
Não está correcto. Leste como funciona o if... else???
Isto também não está correcto
while( 0 <= contador <= 9){
Leste como funciona a condição while e como encadear condições lógicas??
Isto:
else(leitura == LOW){
digitalRead(IN3); <----------------------- ISTO AQUI
if(digitalRead(IN3) == HIGH){
....
digitalRead(IN2); <----------------------- ISTO AQUI
if(digitalRead(IN2) == HIGH){
contador = contador + 1;
Não está a fazer nada no programa.
O meu conselho é pegares num site ou livro sobre C e aprenderes como funciona. Esse é o teu problema numero 1.
Eu podia fazer este programa em alguns minutos, mas assim não ias aprender nada então recuso-me a fazê-lo.
Depois de teres o código correcto e a compilar, deves pesquisar pela maneira de fazeres um encravamento.
Ou seja, como tens isto, enquanto tiveres o dedo no botão, o número continua a incrementar e decrementar. Com um encravamento apenas conta uma vez... possivelmente, dependendo da qualidade dos botões, terás também de ver um código de debounce.
Mas uma coisa de cada vez.
Vê aqui alguma informação para corrigires os erros que listei no código actual:
https://www.arduino.cc/en/Reference/DigitalRead
https://www.idleloop.com/tutorials/introC/introC-7.php