Open top menu
segunda-feira, 12 de dezembro de 2011


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 XWindows e Linux  32 bit64 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:





Bom pessoal, nesse post aprendemos como conectar e programar nosso primeiro circuito, ele pode ser facilmente adaptado para leitura de sensores de temperatura, umidade, digitais e outros.



Um abraço e até a próxima.
Tagged

6 comentários :

  1. Parabéns amigo, muito bem explicado o tutorial.
    Agora 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?

    ResponderExcluir
    Respostas
    1. Fellipe, Obrigado.
      Eu 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.

      Excluir
  2. 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 ?
    e a lampada esta em 110v ou 220v ?
    e o arduino vc esta usando a energia do cabo usb ou fonte ?

    obrigado aguardo resposta !!!

    ResponderExcluir
  3. Valeu Vini!
    O 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.

    ResponderExcluir
    Respostas
    1. Entendi , mt obrigado Sergio quando puder c no for pedir de mais kkkk poste mais projetos com arduino ai valeu em cara !!!!

      Excluir
  4. Parabéns pelo post, muito bem explicado

    ResponderExcluir