Programe no Arduíno – Aprenda a fazer debug num LCD

36 Comentários

Por Filipe Caetano | MagicKey para o PPLWARE

Muitas vezes acontece a quem utiliza o Arduíno ter que o ligar ao PC só e apenas para poder ter uma forma de debug.

No entanto esta solução não se mostra nada conveniente, ou porque não da jeito ter o PC por perto ou até porque estamos a utilizar a porta serie para comunicar com outro dispositivo ou ainda porque queremos apenas mostrar ao utilizador algo muito simples.

Partindo deste problema, mostramos hoje uma forma conveniente de fazer o output das variáveis utilizadas no Arduíno.

arduino_00

Utilizando uma board Arduíno Duemilanove, um LCD de 16×2, um potenciómetro de 10 kohm e um simples botão construi-se um contador de segundo com função de reset.

Partindo do exemplo disponibilizado na biblioteca de exemplos do Arduino (como mostra na imagem) construi-se este simples exemplo.

arduino_01

O código desenvolvido e comentado é apresentado em baixo.

// adicionar ao projecto a livraria que permite usar o LCD de 16x2
#include <LiquidCrystal.h>
int segundos=0;

int botao = 7; // porta a usar para ligar o botão

int estadobotao=0; //Guarda o estado do botão

LiquidCrystal lcd(12, 11, 5, 4, 3, 2); //variável com a informação dos pinos a usar na comunicação com o display

void setup() {

pinMode(botao, INPUT); // inicialização do pino defenido para o botão como sendo uma entrada

lcd.begin(16, 2); //inicialização do display

lcd.print("PPLWARE"); //escrita na primeira linha do display

}

void loop() {

delay(1000); //período de espera de um segundo

segundos++; //incrementação da variável que guarda o tempo da contagem

lcd.setCursor(0, 1); //deslocamento do cursor de escrita no display para o inicio da segunda linha

lcd.print("contagem:"); // escrita do texto "contagem: " no display

lcd.setCursor(10, 1); // deslocamento do cursor de escrita para a segunda linha e para a decima coluna

lcd.print(segundos); // escrita do conteúdo da variável 'segundos'

estadobotao= digitalRead(botao); // le o estado do pino onde está ligado o botão

if (estadobotao == HIGH) { // verifica se o botão está premido, e se sim entra

segundos=0; // coloca a variável que guarda o tempo a '0'

lcd.setCursor(0, 1); //deslocamento do cursor de escrita no display para o inicio da segunda linha

lcd.print(" "); // limpa a segunda linha do display.

}

}

Por fim foi apenas necessário ligar o Arduino ao Display de 16×2 de acordo com as especificações do fabricante deste.

É apresentado um esquema da montagem feita.

arduino_02

Após a compilação do código deve então carregar-se para o Arduíno. Quando este passo estiver completo o programa entra em execução, no entanto poderá não aparecer nenhuma informação no display assim deve-se rodar o potenciómetro (de 10Kohm) até que a informação apareça no display.

Artigos relacionados

Partilhar:
Tags:

Comentários

36

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *

  1. Avatar de Marco Matos

    Boas,

    simples mas bom.

    Gosto disto.

    Cumprimentos,
    Marco Matos

  2. Avatar de Carlos
    Carlos

    Library não é livraria, é biblioteca.

    😛

    Mas e já agora, sem ter o PC à mão, como é que se manda o código para a maquineta?

    1. Avatar de Paulo Teixeira
      Paulo Teixeira

      Isso ja me parece difícil… mas era bom que desse por exemplo pelo “smartphone” Android 😀

    2. Avatar de Filipe Caetano
      Filipe Caetano

      Carlos, com certeza que é necessário o PC para “mandar” o código para a “maquineta”, no entanto depois disso não é mais necessário.
      É apresentado um exemplo muito básico, no entanto cada um pode usar o LCD nas aplicações que lhe forem convenientes. Por exemplo, se desejarmos apenas apresentar a informação de um termómetro e por exemplo o numero de pessoas presentes numa sala, desenvolvemos a “maquineta” obviamente com um sensor de temperatura e um PIR, e colocamos a entrada da sala. Como podes ver neste caso apenas necessitamos do PC para “mandar” o código para a “maquineta”, após esta fase esta pode tornar-se autónoma.

      1. Avatar de Carlos
        Carlos

        A ideia acima do smartphone parece-me boa, numa emergência…

  3. Avatar de Marco Pinheiro
    Marco Pinheiro

    Pois, sem PC não podes escrever, compilar e enviar o código para o microcontrolador Carlos. Mas não tens um?? 🙂

    @Filipe Caetano: podes dizer-me pf. qual é a ref. desse LCD e onde compraste? Queria comprar um pois o que tenho ocupa-me quase todos os pinos do Arduino (este parece mais eficaz, usa PWM não?)

    1. Avatar de Filipe Caetano
      Filipe Caetano

      Ola Marco, o LCD foi comprado na Libelium (agora cooking-hacks).
      A ligação feita não usa PWM, usa sim 4 pinos digitais para a comunicação, um para activar ou desactivar a comunicação com o LCD e ainda outro para seleccionar a linha do LCD onde vai escrever, no fundo são utilizados 6 pinos.

      1. Avatar de Marco Pinheiro
        Marco Pinheiro

        Okapa! Obrigado

  4. Avatar de Marco Matos

    Boas,

    já agora onde comprar o arduino e componentes para andar a “brincar” com isto?

    Conhecem alguma loja ou específica para estas coisas?

    Cumprimentos,
    Marco Matos

    1. Avatar de Paulo Teixeira
      Paulo Teixeira

      Tens varias, se fores ao google fazer uma pesquisa encontras logo.
      Por exemplo a leiritronica, a PTRobotics, a lusorobotica, ebay…
      Tens muito por onde escolher 😀

      1. Avatar de Daniel©
        Daniel©

        lusorobotica acabou :/

        1. Avatar de Paulo Teixeira
          Paulo Teixeira

          Se nao tou em erro, foi de la que mandei vir o meu… tenho pena que tenha acabado 🙁

          1. Avatar de Filipe Caetano
            Filipe Caetano

            Eu prefiro a Libelium (cooking-hacks)

    2. Avatar de MiniMe
      MiniMe

      sparkfun.com

    3. Avatar de Marco Pinheiro
      Marco Pinheiro

      Eu costumo comprar arduinos e shields para ele aqui >> http://www.ebay.es/sch/pokaralake/m.html?_nkw=&_armrs=1&_from=&_ipg=&_trksid=p3686

      Vem da china mas nunca me falharam.

      Diverte-te! 😉

  5. Avatar de José Fonseca
    José Fonseca

    Sempre que vejo estes posts sobre o Arduíno apetece-me pegar num e experimentar programá-lo.
    Parabéns pelos posts, Filipe.

    1. Avatar de MiniMe
      MiniMe

      Experimentem tb o picaxe … tem vantages e desvantagens sobre o arduino mas da tb para fazer algumas brincadeiras.
      Uma das maiores vantagens e que nao e obrigatorio aprender a programar. Um simples fluxograma resolve o assunto 😉

    2. Avatar de Filipe Caetano
      Filipe Caetano

      obrigado..

  6. Avatar de João
    João

    Boas, sei que este não é o sitio certo para esta pergunta mas estou mesmo chateado com isto. Como é que posso mexer no disco no linux? não me deixa fazer nada, criar pastas copiar para la ficheiros nem nada disso :s. Queria instalar o xampp e li que tem de ser na pasta OPT mas não da para colar la os ficheiros nem criar pastas, nada de nada :S
    Tenho o PinguyOS.
    Obrigado e desculpem.

    1. Avatar de joao L
      joao L

      disco externo, suponho que está formatado com ntfs, entao procurar por ntfs-3g ou algo similar, verifica se esta instalado.

      cumps

  7. Avatar de Ricardo
    Ricardo

    Cuidado porque é fácil queimar esse tipo de LCD (custam 10 euros em média)…Em assembly programar um LCD ainda dá trabalho, já em arduino parece brincadeira de crianças.

  8. Avatar de Jorge Castro
    Jorge Castro

    Boa noite camaradas, antes de mais bom post da pplware 🙂

    Fiquei curioso acerca do projecto. Mas Para dar os primeiros passos nesta linguagem de “integrados” qual o primeiro passo?

    Pelo que eu percebi temos de adquirir um integrado que se possa então programar esse integrado com linguagem arduino.

    Mas, qual a experiência que devo começar? Acho que para dar uns toques no arduino porque não começar com o exemplo acima mostrado?

    Obrigado pela ajuda desde já =)

    1. Avatar de Filipe Caetano
      Filipe Caetano

      Jorge, antes de mais tens que comprar um Arduino, como pretendes apenas iniciar podes começar pelo UNO. Para comprares podes visitar alguns dos locais que já foram sugeridos nos comentários anteriores.
      Quanto aos primeiros desenvolvimentos, podes começar pelos exemplos que vêm com o intuitivo IDE do Arduino, não queiras logo fazer este, começa por fazer o “hello word” da electronica que é ascender um led 🙂
      Boa sorte..

      1. Avatar de Jorge Castro
        Jorge Castro

        Obrigado Felipe desde já. Mais informo que estou num curso de engenharia de Electrotécnica, mas, até agora nunca vi uma linguagem para trabalhar com “integrados” apenas conhecia já programados de fábrica. Vou investigar sobre o assunto, estou mesmo curioso desta plataforma muito interessante.

        Mais uma vez Obrigado pela “dica”. 🙂

  9. Avatar de serva
    serva

    Boa noite ,

    Excelente post , não é a minha praia , mas fiquei deveras interessado com o tema , quem sabe se um dia não experimento uma brincadeira destas .

    Os meus agradecimentos

    Serva

    1. Avatar de Pedro Pinto

      Fiquei com uma curiosidade…Qual a tua praia Serva? Eu tenho de te colocar a fazer um artigo aqui para a malta 🙂

  10. Avatar de João Ribeiro
    João Ribeiro

    Bom artigo 🙂

    Como as coisas evoluíram 😛

    Eu no meu tempo (há 6-7 anos para cá) programava micro-controladores numa STK500 (e já era um espetáculo 🙂 http://www.radiolocman.com/op/device.html?di=62487&/ATSTK500

    Depois segui Eng. Informática no IST e deixei-me um pouco disso, no entanto guardo algumas saudades desses tempos 🙂

    Abraço! Boas recordações hehe:)

  11. Avatar de Micael
    Micael

    Malta ja encomendei para começar a brincar também. Alguém me indica por aí uns tutoriais desde o inicio??
    Obrigado

  12. Avatar de night
  13. Avatar de Tiago Oliveira
    Tiago Oliveira

    Mais um óptimo post pplware!
    Já agora, alguém sabe onde encomendar arduinos em que o pagamento possa ser feito no acto da entrega?

    Cumprimentos