Amigos, qual é o problema desse código?
#define PORTA 8
#define LUZES 11
void setup(){
pinMode(PORTA, 0);
pinMode(LUZES, 1);
}
void loop(){
if(!digitalRead(PORTA))
digitalWrite(LUZES, 1);
else
digitalWrite(LUZES, 0);
delay(2);
}
OBJETIVO DO PROJETO
Eu tenho um microswitch (foto abaixo) na porta de um armário, que, quando eu abro a porta do armário, ele teria de acender as luzes. Quando fecho a porta, apagar as luzes. Quando fecho a porta, as luzes se apagam, isso está funcionando.
PROBLEMA:
Porém, quando eu abro a porta, as luzes piscam, ou seja, ele está detectando a porta aberta e falsamente fechada (está aberta) ao mesmo tempo... eu liguei a saída de 5V do arduino no pino comum do microswitch, passando por um resistor de 10k, e o pino NC (normalmente fechado) no pino 8 do Arduino Uno.
Agradeço qualquer ajuda.
Um abraço,
Fabio.
Tags:
As respostas para este tópico estão encerradas.
Olá.
Diria que está fora de padrão seu codigo.
O correto seria:
#define PORTA 8
#define LUZES 11
void setup(){
pinMode(PORTA, INPUT_PULLUP);
pinMode(LUZES, OUTPUT);
}
void loop(){
if(!digitalRead(PORTA))
digitalWrite(LUZES, HIGH);
else
digitalWrite(LUZES, LOW);
delay(2);
}
Embora sequer saiba se LOW tem o mesmo valor numerico que 0, veja em:
https://www.arduino.cc/reference/en/language/variables/constants/co...
Que essas constantes tem essas funções, não importa os valores delas. Aprendemos a respeitar as regras do Arduino, que usa bibliotecas para acesso aos pinos, diferente de qualquer outra IDE que eu conheça.
Tente assim.
Outra coisa, uma leitura de chave não é feita assim, no geral.
Se entendi vc coloca ou não uma tensão de 5V que vem de um resistor... O pino aberto le nivel lógico alto. Aih vc coloca alto...
O correto seria colocar uma chave ao GND, tendo a leitura de LOW com a chave fechada.
Se não quiser essa inversão vc tem 2 possibilidades:
- Usar a outra chave interna do seu interruptor
- Colocar um sesitor até o LOW (pull down) e depois a chave até o 5V. Nesse caso troque o input_PULLUP por INPUT.
Deu certo. Muitíssimo obrigado, mestre!
Muitíssimo obrigado pelo detalhamento, Carlos! Ajudou a compreender melhor.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por