Programe no Arduíno – Aprenda a fazer debug num LCD
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.
Utilizando uma board Arduíno Duemilanove, um LCD de 16x2, 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.
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 16x2 de acordo com as especificações do fabricante deste.
É apresentado um esquema da montagem feita.
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
Este artigo tem mais de um ano
Boas,
simples mas bom.
Gosto disto.
Cumprimentos,
Marco Matos
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?
Isso ja me parece difícil… mas era bom que desse por exemplo pelo “smartphone” Android 😀
Algo assim ?
http://www.cooking-hacks.com/indexa.php/shop/arduino/shields/arduino-mega-adk.html
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.
A ideia acima do smartphone parece-me boa, numa emergência…
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?)
Que tal um I2C?
http://www.arduino.cc/playground/Code/LCDi2c
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.
Okapa! Obrigado
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
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 😀
lusorobotica acabou :/
Se nao tou em erro, foi de la que mandei vir o meu… tenho pena que tenha acabado 🙁
Eu prefiro a Libelium (cooking-hacks)
sparkfun.com
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! 😉
Sempre que vejo estes posts sobre o Arduíno apetece-me pegar num e experimentar programá-lo.
Parabéns pelos posts, Filipe.
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 😉
obrigado..
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.
disco externo, suponho que está formatado com ntfs, entao procurar por ntfs-3g ou algo similar, verifica se esta instalado.
cumps
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.
Fica aqui uma ideia do que podem fazer, com um pouco mais de conhecimentos.
http://engenhocas4you.wordpress.com/2011/11/04/placa-controlo-insoladura-uv-–-versao-ii/
Para os interessados em comprar LCD, fica aqui:
http://engenhocas4you.wordpress.com/venda-material/
http://www.olx.pt/en/userlistings/venda4you
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á =)
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..
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”. 🙂
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
Fiquei com uma curiosidade…Qual a tua praia Serva? Eu tenho de te colocar a fazer um artigo aqui para a malta 🙂
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:)
Malta ja encomendei para começar a brincar também. Alguém me indica por aí uns tutoriais desde o inicio??
Obrigado
http://www.labdegaragem.com.br, tem varios tutos lah…
Thanks
já agora, ficam umas fotos de um trabalho que fiz :
http://img851.imageshack.us/slideshow/webplayer.php?id=gpsz.jpg
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