Bom dia pessoal

   Eu juntei alguns exemplos da net e montei um controle para meu portão eletrônico mas preciso que caso a eletricidade acabe e volte não abra o portão sozinho. E também o controle que estou usando é bem genérico e tem 4 botões eu gostaria de alterar o código para não abrir apenas com um Click mas sim com uma determinada sequencia tipo ABCBD.


#define botaoC A2
#define botaoA A0
#define botaoD A3
#define botaoB A1
#define VT A4
int led = 13;
int Aberto = 8;

int Ligada = 10;

const int buttonPin = 2;
int buttonState = 0;

void setup() {
  Serial.begin(9600);
  Serial.println("Aguadando comando RF: ");

  pinMode(Aberto, OUTPUT);

  pinMode(led, OUTPUT);
  pinMode(buttonPin, INPUT);
}

void loop() {
  int valorVT = digitalRead(VT);
  int valorA = digitalRead(botaoA); 
  int valorB = digitalRead(botaoB);
  int valorC = digitalRead(botaoC);
  int valorD = digitalRead(botaoD);

   buttonState = digitalRead(buttonPin);

  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(led, HIGH);
  }
  else {
    // turn LED off:
    digitalWrite(led, LOW);
  }
  
  if (valorC > 0) {
    Serial.println("Botao C pressionado.");
    digitalWrite(Aberto, HIGH);
      Serial.println("ACENDEU.");
    delay(300);
    digitalWrite(Aberto, LOW);
      Serial.println("APAGOU.");
  }

  if (valorVT > 0) {
    // Quando qualquer botao eh pressionado, o pino VT 
    // recebe sinal.
  }
}

Exibições: 5500

Responder esta

Respostas a este tópico

Oi SSR,  boa tarde.

 primeiramente, ao postar algum tópico, evite posta o código na área de texto.

O Poste fica longo, o code perde formatação e às vezes até caractere.

Post como arquivo anexado.

Ok, agora vamos ao seus problemas.

Pelo que entendi do seu code, você tem um rele no pino 8. Correto? E que LOW fecha e HIGH abra o  portão.

No setup, defina  :  digitalWrite(Aberto, LOW);, de modo que qdo voltar energia após uma falta, o iniciar

o programa o arduino não abra o portão.

Mas veja, se ele estiver aberto, ao voltar energia, ele fechará.

Quanto a questão  dos botões não ficou claro para mim sua dificuldade.

Rui

Obrigado pela dica e pelo retorno Rui, na verdade o status do portao eu ainda não implementei pois tbm utilizo o controle padrão do motor a única coisa que o Arduíno faz é enviar um pulso ao relé que o próprio motor tem. Vou tentar montar diagrama para me expressar melhor e posto assim que possível.

Primeiramente desculpe pelo modelo é que a melhor ferramenta que tenho no momento é o PAINT.

 

1 – se for noite e o portão for aberto a lâmpada se acende.

2 – se o controle original for apertado (não é 433mhz) o portão se abre ou fecha normalmente.

3 – se o pushbotton for pressionado o portão se abre ou fecha como se fosse o controle original.

4 – o controle 433 ligado ao arduino tem 4 botões ABCD o sinal ao portão deve ser enviado sse digitado uma determinada sequência ex: ABDC

5 – caso haja falta de energia e o portão estiver fechado não deve ser aberto

6 - caso haja falta de energia e o portão estiver aberto deve ser fechado

Tente salvar o status atual do portão em um cartão SD ou na EEPROM (lembre que a EEPROM tem vida util de gravação)

oi MM, boa tarde.

SD card também é fabricado com EEPROM.

Oi SSR, você pode colocar uma bateria para manter o arduino por alguns minutos e usar

um pino dele pra saber se faltou energia.

Você só grava o Status do portão na EEPROM no caso de falta de energia.

Rui

Olá Rui, é verdade os dois são EEPROM eu só separei pq o sdcard é baratinho e se queimar da pra comprar outro em qualquer birosca. 

Gostei da tua ideia de somente gravar se ele detectar falta de energia, e ele ainda pode verificar se o que está gravado é igual ao status corrente, se for igual nem precisa gravar!!!!!

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço