segunda-feira, 22 de agosto de 2011

Tutorial: Scratch e Arduino (Sensor de temperatura)

TUTORIAL: Scratch e Arduino - Sensor de temperatura.

Resumo: Ler um sensor de Temperatura (LM35), utilizando o Arduino. Converter o sinal analógico lido, na temperatura correspondente, em grau Celsius. E executar uma ação de acordo com a variação de temperatura. Como acionar um Buzzer se a temperatura ultrapassar um valor pré-definido, tudo isso utilizando o Scratch como processador do sistema.


  • Componentes

    • Arduino

    Arduino é uma plataforma de hardware e software abertos que simplifica a criação e prototipagem de projetos de eletrônica.
    Uma típica placa Arduino é composta por um controlador, algumas linhas de E/S digital e analógica, além de uma interface serial ou USB, para interligar-se ao computador, que é usado para programá-la e interagi-la em tempo real.

    Figura 1: Arduino

    Neste exemplo, vamos utilizar uma porta analógica e uma digital do Arduino, haja vista que iremos ler um sensor analógico e acionar um dispositivo digital, Buzzer.
    O Arduino é dotado de seis portas analógicas, que vão de A0 a A5, figura 01. Com resolução de 10 bits, e faixa de leitura de 0 à 5V. E 14 portas digitais, que vão de 0 a 13, figura 1.


      Sensor de Temperatura - LM35

    Existem no mercado, hoje em dia, diversos tipos de sensores de temperatura, estima-se que talvez nenhum outro tipo seja de tão simples o manuseio e exija tão poucos aparatos eletrônicos para que funcione quanto o modelo LM35, pois o circuito usual é bastante simples, necessitando apenas do sensor propriamente dito.

    Figura 2: Sensor LM35

    O sensor LM35 é um sensor de precisão, que apresenta uma saída de tensão linear relativa à temperatura em que ele se encontrar no momento em que for alimentado por uma tensão de 4-20Vdc e GND, tendo em sua saída um sinal de 10mV para cada Grau Celsius de temperatura.
    Este sensor poderá ser alimentado com alimentação simples ou simétrica, dependendo do que se desejar como sinal de saída, mas independentemente disso, a saída continuará sendo de 10mV/ºC.


      Buzzer


    O Buzzer ou Beeper é um dispositivo de áudio.
    O modelo que vamos usar é o Buzzer piezelétrico. Variando a freqüência da tensão de entrada ele pode reproduzir diferentes notas musicais. Tensão de funcionamento 3V à 9V.
    É muito usado como alerta sonoro, em placa-mãe, microondas, sistema de alarmes, etc.
    Veja na figura 4, como acionar o Buzzer a partir de um circuito digital (5V).

    Figura 3: Buzzer

    Figura 4: Acionando um Buzzer.


    Basta aplicar os 5V, diretamente, no Buzzer para que ele emita um “beeper” enquanto estiver alimentado. Em nosso exemplo quem vai acionar o Buzzer será o Arduino.


      SCRATCH



    O Scratch é uma linguagem de programação desenvolvida pelo MIT, em 2007. Por não exigir o conhecimento prévio de outras linguagens de programação, ela é ideal para pessoas que estão começando a programar e foi desenvolvida para ajudar pessoas acima de 8 anos no aprendizado de conceitos matemáticos e computacionais. Com ela é possível criar histórias animadas, jogos, programas interativos e agora ate mesmo desenvolver uma interface de interação e controle de funções do Arduino, proporcionando conceitos de robótica e controle.
    Scratch é muito mais acessível que outras linguagens de programação, por se utilizar de uma interface gráfica que permite que programas sejam montados como blocos de montar, lembrando o brinquedo LEGO.



  • Condicionamento do Sinal

  • Arduino LM35

    Porta analógica Sensor analógico
    10 bits* 10mV/ºC
    0 a 5V -55 a 150ºC


    * Resolução de 10 bis: quer dizer que os limites de conversão A/D, em valores digitais são de 0 à 1023 ( 2¹º = 1024 ), ou seja, se em uma entrada analógica for aplicado um sinal de 0V, o valor correspondente será 0, em digital. Já uma entrada de 5V e 2,5V terão correspondentes em 1023 e 511, respectivamente, e assim por diante de forma linear.
    ** Quer dizer que para cada grau Celsius, o sensor somará em sua saída analógica 10mV, por exemplo: em uma temperatura de 0ºC, o sensor terá uma saída de 0V. Já em uma temperatura de 25ºC, temos um sinal de 250mV ( 25 x 10mV = 250mV ), e assim por diante de forma linear.


    Equação

    Descrição: Para efeito de calculo, vamos considerar que se a temperatura medida, no sensor, for de 500ºC*, então o valor digital equivalente seria 1023, logo qual a temperatura T para um valor digital S. Aplica-se então essa relação á regra de três simples, e obteremos uma equação que relaciona o Sinal convertido, do sensor, com a temperatura atual no mesmo.



    * Lembrando que o sensor LM35 tem uma faixa de leitura de temperatura entre -55ºC à 150ºC. O valor de 500ºC foi usado apenas para efeito de calculo, visando chegar a valores inteiros ao final da equação.


    Exemplo

    Primeiro, vamos fazer a montagem do Sensor de Temperatura (LM35) e do Buzzer com o Arduino. O sensor será ligado na porta analógica 0, do Arduino, e o Buzzer na porta digital 13.


    Montagem


    Figura 6: Montagem Arduino + Sensor LM35 + Buzzer.

    Em seguida, desenvolver o programa no Scratch para ler a temperatura do sensor ligado ao Arduino e acionar o Buzzer quando necessário, ou seja, se a temperatura ultrapassar um valor pré-configurado no programa, por exemplo 30ºC, o Scratch acionará o Buzzer, através do Arduino, e assim que a temperatura baixar do valor estipulado o Buzzer será desligado.


    Programa

    figura 7: Bloco da programação no scratch.

    Figura 8: Scratch.

    Figura 9: Scratch.

    Como a temperatura ultrapassou o valor estipulado, o scratch já acionou o buzzer.

    Descrição do programa:

    Quando o programa for iniciado (Quando “bandeira” clicado), entra num laço sempre (laço infinito). Dentro deste laço o programa atribuirá, a variável ‘temperatura’, o valor lido no sensor, já convertido para grau Célsius pela equação vista anteriormente. Exibira na tela (diga “temperatura”), e em seguida testará a seguinte condicional: “se” ‘temperatura for maior que 30’, então a saída digital 13, do Arduino, será comutada para ON (5V – Buzzer acionado); “senão”, caso não for verdadeira essa condição, será comutada para OFF (0V – Buzzer desligado).



    Você também pode assistir a um vídeo-tutorial, passo-a-passo no site:

    EngCOMPER: www.engcomper.com (Tutoriais)

    Ou no youtube:





    2 comentários:

    1. ola isso estamt fixe, eu tb ja fiz um sensor de temperatua e correu bem mas agora tou a tentar criar um sistema de ventilação inteligente usaando apenas um fet um motor um termistor uma resistencia fixa o arduino de modo a que a medida que vai lendo a temp vai gerar um pwm que mete a ventuinha a funcionar de forma a refrigerar o local
      cmo e k eu faço isso
      agradeço desde ja a sua ajuda

      ResponderExcluir
    2. Este comentário foi removido pelo autor.

      ResponderExcluir