quarta-feira, 19 de outubro de 2011

TUTORIAL: LED RGB com Arduino e Scratch

Resumo: Neste tutorial vamos aprender como usar um LED RGB com o Arduino, combinado diversas cores, através do SCRATCH.


  • Componentes


    • Arduino
    Figura 1: 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.
    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. Além de 14 portas digitais, que vão de 0 a 13, figura 1.

      LED RGB
    Figura 2: LED RGB.

    A palavra LED significa Light Emissor Diode, ou em português, Diodo Emissor de Luz.
    A Palavra RGB significa RED GREEN BLUE, em português, Vermelho Verde Azul, que são as cores de luz que formam todas as outras cores.
    Resumidamente, o LED RGB é a união de três LED’s em apenas um único invólucro. Assim podemos associar estas três cores, podendo variar a intensidade de cada uma por PWM, e reproduzir uma grande quantidade de cores.
    Na figura abaixo, veja o modelo de LED RGB que estamos usando, “Catodo comum”. Onde temos quatro pinos, sendo que o primeiro injeta-se o sinal para cor Vermelha (RED); o segundo, catodo (Cathode), liga-se ao Terra da fonte; terceiro o sinal da cor Azul (Blue) e o quarto o da cor Verde (Green).

    Figura 3: LED RGB.

    O PWM
    ( Explicação extraída de um Artigo publicado por Eduardo Souza Ramos. )
    PWM, que significa Pulse Width Modulation, ou Modulação por Largura de Pulso, nada mais é que do que alimentar uma carga com uma sequência rápida de pulsos para obter uma potência intermediária. Com isso podemos obter uma tensão analógica a partir de um sinal digital. Em termos mais técnicos, o PWM é uma onda com frequência constante (período fixo) e com a largura do pulso variável. Esta largura de pulso é também chamada de Ciclo Ativo, ou Duty Cicle, em inglês. Na figura 1 temos a representação de algumas formas de onda mostrando larguras de pulso diferentes.

    Figura 4: Formato de ondas, PWM.

    Como podemos observar, na verdade, a saída continua sendo digital, somente pode assumir os valores 0 (para Vss) e 1 (para Vdd). No caso do Arduino, estes valores são 0 V e 5 V. A relação entre o tempo em que temos o pulso e a duração de um ciclo completo nos define o Ciclo Ativo (Duty Cicle). A forma de se calcular o Ciclo Ativo dá-se pela fórmula abaixo:


    Mas o que significa o Ciclo Ativo do PWM? Significa justamente a percentagem da potência total aplicada à carga.

    Variando-se a largura do pulso, e inclusive o intervalo entre dois pulsos consecutivos, de modo a termos Ciclos Ativos diferentes, podemos controlar a potência média aplicada a uma carga. Assim, quando a largura do pulso varia de zero até o máximo (valor do período do pulso), a potência (e conseqüentemente a tensão) também varia na mesma proporção. Se quisermos, portanto, aplicar à carga uma potência equivalente a 50% da potência total, basta gerar um pulso onde o tempo em que este permaneça no nível lógico 1 seja exatamente a metade do período total do pulso. A potência média e, portanto, a própria tensão média aplicada à carga é neste caso 50%.





  • SCRATCH




  • Figura 5: 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 também 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 automação.
    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 as peças de encaixar do brinquedo LEGO.


    Montagem

    A imagem abaixo, mostra como é feita a montagem do LED RGB com o Arduino. O Arduino possui alguns pinos específicos para PWM, como os pinos 5, 6 e 9, onde esta ligado o LED RGB.

    Figura 6: Circuito de montagem do LED RGB + Arduino.


    Programa no SCRATCH

    Figura 7: Programa no Scratch.

    Descrição do programa:

    Quando o programa for iniciado, ou seja, quando for clicada na bandeira verde, o programa entra no bloco “sempre”. Neste bloco temos três peças “analog (5) value (255)”, esta peça funciona como se fosse uma saída “analógica” no Arduino, porem sabemos que essa saída na verdade é por PWM, que dará uma tensão media na saída do pino (5) de acordo com a variação de (0 à 255) que corresponde valores entre 0V e 5V.
    Portanto podemos variar a tensão de saída para os três pinos (9, 6 e 5) modificando seus valores (0 à 255) no Scratch, fazendo diversas combinações de cores.


    Resultados

    Figura 8: Resultado da montagem.


    Após a montagem do circuito e a construção dos blocos no Scratch, o sistema esta pronto para usar.


    Figura 9: Sistema funcionando...


    Então observe que a partir de um circuito simples e uma programação mínima, podemos controlar um LED RGB.

    Obrigado!


    Você pode assistir a esse, e outros tutoriais, em vídeo passo-a-passo no site www.engcomper.com ou no YouTube:


    4 comentários:

    1. Pô cara, muito bom esse Scratch, to usando aqui no meu Linux seguindo seu manual, e para fazer coisas simples até que é bem prático :D.

      Ajuda muito quem está querendo o primeiro contato con Arduino, mas não quer a complexibilidade do código.

      Parabéns!

      ResponderExcluir
    2. Obrigado Cleber, realmente o Scratch é muito bom, e ajuda muito também no desenvolvimento da logica de programação, porque a programação escrita segue o mesmo raciocínio. Logo estaremos postando mais tutoriais.

      Qualquer duvida, pode postar aqui ou mandar email para (atendimento@engcomper.com), que será respondido o mais breve possível com certeza. Abraços

      ResponderExcluir
    3. http://www.youtube.com/watch?v=5bOcVZqi0GM

      ResponderExcluir
    4. Pessoal, vcs tem o algoritimo no matlab para o funcionamento do LED RGB conectado ao arduino?? obrigado

      ResponderExcluir