Usando dados do sensor para ativar um relé de 5V no Arduino

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br


Neste tutorial, veremos como usar os dados do sensor para controlar um relé de 5V conectado a um Arduino. Construiremos um projeto de amostra que acenderá / apagará uma lâmpada quando a leitura de um fotorresistor ultrapassar um valor limite. O projeto também poderá acender e apagar uma lâmpada com um timer variável.

Anúncio PCBWay

Para este projeto, precisamos dos seguintes componentes:

  • Arduino Pro-Mini, ou Arduino UNO
  • Relé SRD-05VDC-SL-C 5V
  • Photoresistor
  • Resistor de 10K
  • Potenciômetro de 10K
  • Breadboard
  • Ligar os fios
  • Cabo de linha A / C (opcional)
  • LED (opcional)
  • Resistor de 330 Ohm (opcional)

Mas primeiro, vamos revisar alguns conceitos!

Relés

Relés são dispositivos eletromecânicos usados ​​para controlar a energia dos dispositivos conectados. Com um relé, você pode facilmente usar um Arduino para controlar a energia de praticamente qualquer tipo de dispositivo elétrico. O circuito mostrado abaixo usa um LED como o dispositivo de saída.

Usando dados do sensor para ativar um relé de 5V no Arduino 1

Os relés são frequentemente usados ​​em projetos de automação residencial. Eles podem ser configurados para alternar a corrente da linha CA para cargas como ventiladores, motores e luzes.

Como os relés funcionam

Dentro do relé, há uma bobina eletromagnética que aciona uma chave de alta tensão quando há corrente fluindo através do circuito.

Sem corrente fluindo através da bobina, o relé está na posição normalmente fechada:

Quando o interruptor é fechado, a corrente flui através da bobina e o campo eletromagnético produzido a partir da bobina faz com que o terminal de alta tensão mude para a posição normalmente aberta:

Ao trabalhar com cargas indutivas, como relés, solenóides, motores ou motores de passo, é importante proteger seu circuito contra EMF de volta. A EMF traseira acontece quando o campo eletromagnético ao redor da bobina entra em colapso novamente na bobina. Isso induz uma grande corrente reversa na bobina, o que pode danificar outros componentes no circuito. Para evitar EMF de volta, um diodo precisa ser colocado em paralelo com a bobina.

Leia Também  Blog do Tindie | Um dispositivo para lembrar suas senhas para que você também não tenha
cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br

Photoresistors

Photoresistors ou Resistores dependentes de luz (LDR) são dispositivos sensores de luz. Na luz brilhante, um fotorresistor tem uma resistência mais baixa. À medida que a luz fica mais fraca, a resistência aumenta. O alcance típico de um fotorresistor varia de cerca de 3K ohms em altos níveis de luz a muitos mega ohms em baixos níveis de luz.

Você pode verificar a resistência do fotorresistor em níveis baixo e alto de luz com um ohmímetro. Lembre-se de que dois fotorresistores idênticos podem ter diferentes faixas de resistência.

O símbolo esquemático de um fotorresistor

Controle de luzes usando um relé e Arduino

Agora, conecte os componentes para construir o circuito, como mostrado abaixo:

Nota: O relé possui um built-in transistor para acionar a bobina do relé, bem como um diodo através do enrolamento para proteger o transistor. Como o relé pode consumir até 80 mA quando energizado, você pode danificar o Arduino se acionar o relé diretamente a partir dele.

O código

Depois que tudo estiver conectado de acordo com o diagrama de fiação acima, faça o upload deste código no seu Arduino:

const int photoResistor = A0;
const int pot = A1;
const int relay = 3;
bool timer = false;
int val = 0;
int val0 = 0;
int bright = 5;
const float wait = 144000;

void setup() {
  pinMode(relay, OUTPUT);
}

void loop() {
  val0 = analogRead(pot);
  val0 = map(val0, 0, 1023, 0, 100);
  val = analogRead(photoResistor);
  val = map(val, 0, 1023, 0, 100);
  if ((val <= bright) & (val0 == 0) & (timer == false))
  {
    digitalWrite(relay, HIGH);
  }
  else if ((val <= bright) & (val0 > 0) & (timer == false)) 
  {
    digitalWrite(relay, HIGH);
    delay(wait * val0);
    timer = true;
    digitalWrite(relay, LOW);
  }
  else if (val >= bright)
  {
    digitalWrite(relay, LOW);
  }
  if (( val > 15) & (timer == true))
    timer = false;

}

Como o código funciona

Após fazer o upload e compilar o código, ajuste o potenciômetro de 10K no mínimo. O relé acenderá a luz quando o fotorresistor estiver escuro (coberto). E quando o controle está definido no mínimo, o relé acende a luz e depois apaga assim que a luz retornar (pôr do sol ao nascer do sol).

No entanto, se quiser que a luz acenda no escuro, permaneça acesa por um tempo e depois desligue antes do nascer do sol. Ajuste o potenciômetro de 10K para controlar quanto tempo a luz permanece acesa após o anoitecer. O temporizador é ativado assim que o controle de temporização é girado acima de 0V (zero volts).

Se você ligar levemente o controle de tempo, as luzes acenderão por alguns minutos antes de desligar novamente. Quando você liga o controle totalmente, a luz permanece acesa por aproximadamente 4 horas antes de desligar. Tudo é redefinido automaticamente após o tempo expirar e a luz está disponível. Ao girar o controle totalmente (para zero volts), a luz acende no escuro e permanece acesa até a luz retornar (pôr do sol ao nascer do sol). Se você precisar redefinir manualmente o dispositivo, considere adicionar um botão de pressão para aterrar o botão de redefinição (RST).

Timer and Timing

O intervalo do temporizador pode ser ajustado para cima ou para baixo a partir de 14400 usando a variável wait. São aproximadamente 4 horas quando no máximo. Você também pode ajustar o nível de luz que aciona o relé. A variável bright foi inicialmente definido como 5. Mas, ao aumentar esse valor, as luzes serão ativadas em um nível de luz mais alto. Por outro lado, diminuir seu valor tornaria a sala mais escura antes que as luzes se acendessem. Contudo, lembre-se de não definir o bright valor superior a 14.

O tempo é baseado na função de atraso que funciona em milissegundos. O potenciômetro de temporização apresenta uma entrada analógica lida na variável val0. Em seguida, é transformado com a função de mapa em um intervalo de 0 a 100. Você pode tentar variar o intervalo para (0-50) com este código val0 = map(val0, 0, 1023, 0, 50); ou (0-250) com este val0 = map(val0, 0, 1023, 0, 250);.

Posicione o fotorresistor para que não fique diretamente alinhado com a luz quando acender. Você pode ajustar a sensibilidade do fotorresistor conforme mencionado anteriormente com o brilho variável.

cupom com desconto - o melhor site de cupom de desconto cupomcomdesconto.com.br