BLINK
Nosso Segundo programa a ser analisado é o Blink. Ele é o programa que vem instalado em quase 100% das placas vendidas. Ele consiste em fazer o LED conectado no pino 13 piscar. Por padrão a maioria das placas Arduino já vem com um LED na placa ligado a esse pino, o que facilita testar a placa sem precisar de nenhum componente extra.
Abaixo o exemplo Blink como podemos acessar em (File>Examples>01.Basics>Blink).
Agora o mesmo código com comentários traduzidos:
Funcionamento:
Int led = 13;
O primeiro comando é uma declaração de uma variável int (do tipo inteira) para armazenar o valor 13. Mas pra que isso? Realmente como esse código é pequeno isso não tem muito sentido, mas imagine um programa gigantesco em que aparecesse em vários locais comandos para um determinado pino. Agora imagine como seria um terror se precisasse trocar de pino. Aí teríamos de procurar no programa inteiro onde tem o pino e muda-lo. Mas…. utilizando desse artifício de criar uma variável, dar um nome e um valor… podemos simplesmente alterar o numero do pino em apenas um local do código que todo o programa estará atualizado. Lembrem-se que depois de cada comando temos de por um ponto vírgula para indicar fim de comando.
pinMode(led,OUTPUT);
com esse comando dizemos ao Arduino que que queremos que o pino led (lembrando que led está atualmente armazenando o valor 13) seja uma saída (output).Lembrando que o Arduino diferencia maiúsculas de minúsculas (case sensitive), ou seja, neste comando pinMode(led, OUTPUT) o “M” é maiúsculo e se escrever minúsculo não vai funcionar =).
digitalWrite(led, HIGH);
Conseguimos mudar o nível lógico de um pino previamente configurado como saída através desse comando. Se quisermos ligar (ou setar, ou nível lógico 1 ou ainda 5v) escrevemos digitalWrite(pino,HIGH); e se quisermos desligar (“zerar”, nível lógico 0 ou ainda 0v) escrevemos digitalWrite(pino, LOW);
delay(1000);
Este comando faz o Arduino parar a execução do programa e aguardar (em milisegundos) o tempo indicado pelos parênteses. Como temos 1000 milisegundos isso é igual a 1 segundo. A desvantagem desse comando está no fato de o Arduino não executar mais nada durante esse tempo do delay e caso você precise fazer outra tarefa durante este tempo não vai ser possível. Para contornar esse problema podemos usar o comando milis(); que será visto mais adiante.
Resumindo:
Definimos que queríamos chamar o pino 13 de “led” ( poderíamos ter pulado isto e ter escrito logo 13 em todas a partes do programa), depois entramos no setup… já no setup definimos como iria funcionar o pino se ia ser entrada ou saída. No caso escolhemos saída. Depois entramos no loop()… lá o primeiro comando foi digitalWrite(led, HIGH); que diz “ei arduino jogue 5v no pino led”. O Arduino aceitou o comando pois ele sabe que “led” é 13 e pode controlar o pino pois ele é saída. Com isso o LED na placa acende… o Arduino aguarda 1s por causa do comando de delay e depois desliga o led pelo comando de digitalWrite(led, LOW); … aguarda mais 1s e repete tudo de novo por causa do loop.
Até a próxima =)


Brennschneidmaschine Hersteller
I am extremely impressed with your writing skills as well as with the layout on your weblog. Is this a paid theme or did you modify it yourself? Anyway keep up the excellent quality writing, it is rare to see a nice blog like this one nowadays..
Almir
Olá, esse é o tema “Rowling” que é gratuito e feito por Anders Norén. Pode ser encontrado em http://www.andersnoren.se/teman/, apenas configurei um pouco para minhas necessidades. É realmente difícil achar blog sem propagandas e com assunto bem escrito, espero que tenha ajudado no que estava procurando. Obrigado =).
constancy
Ϝirst off I woulⅾ like to say fantastic bⅼog! I had a quick ԛuestion that I’d like to ask if you ԁo not mind.
I was interested to know how you center yourѕelf and
clear your mind before writing. I have had a tough time clearing my
mind in getting my iԀeas out. I do enjoy writing but it just
seems like the first 10 to 15 minutes tend to be wasted juѕt trying to figure
oᥙt hoԝ to begin. Any sսggestions or hints? Thanks!