No post de hoje vamos aprender a conectar a placa que construímos no post Construindo um ReleShield e codificar um programa que detecte a luz do ambiente para acender ou apagar uma luz.
Para começar, O que é Arduino?
Arduino é uma plataforma open-source projetada com um microncontrolador Atmel Atmega328, possuindo 14 entradas/saídas digitais, 6 entradas analógicas, 32Kb de memória flash, 2Kb de memória RAM com um clock de 16Mhs. É destinado a artistas, designers, hobbystas, e qualquer pessoa interessada em criar objetos ou ambientes interativos.
O microcontrolador é programado usando uma linguagem baseada em Wiring e pode ser construídas aplicações Stand-Alone ou integradas com outros dispositivos e computadores
IDE de programação
O ambiente de desenvolvimento é disponibilizado no próprio site do Arduino http://arduino.cc/en/Main/Software, com versões disponíveis para Mac OS X, Windows e Linux 32 bit, 64 bit.
Onde Comprar
O site oficial contém a relação de vendedores autorizados, inclusive no Brasil.
http://arduino.cc/en/Main/Buy
Para aprender
A melhor fonte de informações, exemplos, códigos e o próprio site e fórum do Arduino.
Lista de Componentes:
Arduino UNO
Cabo USB de Programação
ReleShield
LDR
1 Resitor de 10K 1/8W (marrom-preto-laranja)
Fonte 12V
Conectando o ReleShield ao Arduino:
Entendendo o circuito:
O LDR é um tipo de resistor cuja resistência varia de acordo com a intensidade de luminosidade, no circuito acima, ele é ligado de forma que a variação da resistência altere a tensão na entrada A0.
O conversor (A/D) do Arduino tem entrada máxima de 5V. com uma resolução de 10 bits em valores digitais de 0 a 1023, ele diferencia valores entre 0V e 5V. quando o sinal da entrada estiver em 5V ele converte para 1023.
Codificando o programa:
A estrutura de um programa do Arduino, também conhecido como Sketch é divido em duas funções básicas: void setup() e void loop().
A função void setup() é executada quando o Arduino é inicializado, ela deve ser usada para inicialização de variáveis e configurações que devem ser realizadas no início da execução.
A função void loop() é executada continuamente após a execução da função setup(), e nela que escrevemos o código do programa.
Vamos aprender como nosso programa funciona:
No começo do programa declaramos três constantes de definição do nosso programa
A primeira constante define qual pino digital será usado para acionarmos o ReleShield, se quiser usar outro pino, atribua a constante o valor do pino desejado
const int shieldRelePin = 13;
A segunda constante define qual pino analógico será usado para leitura do sinal análogico produzido pelo circuito do LDR
const int sensorLDRPin = A0;
A terceira constante define qual será o valor para disparo do circuito, se o valor lido for menor que a constante, o ReleShield será acionado.
const int constanteAjuste = 400;
Método de inicialização do Arduino
void setup() {
Método que define que o estado inicial do pino de saida é baixo, para não acionar o ReleShield
pinMode(shieldRelePin, LOW);
Configuração da comunicação serial do Arduino, ela será usada para envio do sinal lido para ajuste do programa.
Serial.begin(9600);
}
Método que executa continuamente após execução do método void setup()
void loop() {
variável para armazenar o valor lido da entrada analógica
int leituraSensorLDR = 0;
atribuição na variável do valor lido da entrada analógica
leituraSensorLDR = analogRead(sensorLDRPin);
Se o valor lido for maior ou igual a constante de Ajuste
if (leituraSensorLDR >= constanteAjuste) {
A saída digital enviará sinal baixo para o ReleShield (Desligar ReleShiel)
digitalWrite(shieldRelePin, LOW);
}
else
{
Senão a saída digital enviará sinal alto para o ReleShield (Ligar ReleShiled)
digitalWrite(shieldRelePin, HIGH);
}
O Sinal lido é enviado pela porta serial
Serial.println(leituraSensorLDR);
Tempo de espera de 50 milisegundos para transmissão dos dados pela serial
delay(50);
}
O método loop é executando continuamente, efetuando a leitura do sinal analógico, comparando com a constante para acionar ou desligar o ReleShield.
Vamos ver na prática como funciona:
Um abraço e até a próxima.
Parabéns amigo, muito bem explicado o tutorial.
ResponderExcluirAgora uma dúvida, no caso se eu quisesse ligar o Relê no interruptor para que funcione tanto pelo Arduino quanto pelo interruptor, como eu faria essa ligação?
Fellipe, Obrigado.
ExcluirEu não tenho permissão para postar links aqui, procure no google por "conectar luz 2 interruptores" que segue o mesmo procedimento, voce deve trocar um dos interruptores pelo relé. O único problema que voce não saberá no arduino se a luz está ligada ou desligada.
cara parabens pelo projeto agora tenho uma duvida para que server o GND e o 12v ? terei q ligalo em uma tomada 12 v tbm ?
ResponderExcluire a lampada esta em 110v ou 220v ?
e o arduino vc esta usando a energia do cabo usb ou fonte ?
obrigado aguardo resposta !!!
Valeu Vini!
ResponderExcluirO GND e 12V são para alimentar o relé shield, ele sendo um circuito eletrônico necessita de alimentação.
A tensão 110V / 220V depende da tomada que for usar, se ligar no 110 use uma lampada 110 e 220 com 220.
Eu geralmente uso uma fonte de 12V para alimentar o arduino e o rele shield.
Entendi , mt obrigado Sergio quando puder c no for pedir de mais kkkk poste mais projetos com arduino ai valeu em cara !!!!
ExcluirParabéns pelo post, muito bem explicado
ResponderExcluir