domingo, 20 de abril de 2014

Acendimento de Led com Arduino

Olá pessoal, já fazem alguns dias que estou engajado em aprender um pouco mais sobre a placa e suas aplicações, então resolvi começar.
Como primeiro experimento resolvi começar com o mais básico o acendimento de um Led que pode ser feito apenas com um código chamado "blink" que esta nos exemplos básicos do Arduíno e além de tudo serve para testar o funcionamento da placa após a sua compra, é um exemplo simples que pode ser executado facilmente:

Exemplo de conexão led
Note que se você soldar apenas um resistor de 220ohms na perna "anodo" do Led e conecta - lo a porta 13 no Arduíno e a outra extremidade do Led o "catodo" na porta GND do Arduíno (foto ao lado), terá um feito de piscar o led escrevendo um simples Scketch no Arduíno, esse é um dos exemplos mais usados quando se compra um Arduíno ele serve para testar em parte seu funcionamento básico, mas caso você não tenha um Led não fique preocupado a fabricante do Arduíno se preocupou com isso pra você e incluiu em sua board um led integrado, que ao ser executado o mesmo scketch "blink" utilizando a porta 13 fara piscar o led que está na board.
Para os amigos que ficaram curiosos com esse método de teste e primeiro exercicio com o Arduíno segue abaixo o scketch para ele ser executado lembrando que ele pode ser encontrado no menu da IDE do Arduíno basta clicar em File>Examples>Basics>Blink...

int led = 13;
void setup() 
{              
    pinMode(led, OUTPUT);    
}
void loop() 
{
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}

Agora caso a sua conexão tenho sido bem sucedida ao se fazer o upload do scketch para o Arduíno o seu led agora vai piscar com intervalos de 1 segundo entre as piscadas, caso isso não tenha acontecido verifique as conexões e soldas e faça novamente o modelo.

Entendendo os comnados

 Vamos verificar o que cada função faz e para que servem dentro do seu scketch...

"int led = 13;"

Essa função define o nome da porta 13 como sendo "led" é bastante simples existem outros parâmetros para se utilizar a função "int" caso você queira estudar ainda mais sobre ela o link a seguir (em inglês) te dará mais detalhes sobre ela:

http://arduino.cc/en/Reference/Int

"void setup(){}"

O  código de estrutura setup nada mais é do que uma das principais funções do Arduíno sem ela suas scketch's não irão compilar pela IDE e será exibido um erro, ela é parte básica e é usada para chamar suas variáveis, é executada apenas uma só vez quando se inicia o Arduíno a menos que seja apertada a tecla "reset" que esta presente na board, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Setup

"pinMode(led, OUTPUT);"

A função "pinMode" já diz tudo, é usada para definir o modo que se comporta o pino, dentro dos parenteses () estão definidos seus parâmetros o "led" que definimos no inicio do Scketch como sendo a porta "13" (int led = 13), foi configurado para "OUTPUT" ou seja definido como saida, sendo assim já sabemos que ele fornecerá corrente e voltagem, e não receberá nenhum valor de algum sensor por exemplo, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/PinMode 

"void loop(){}"

Também definido como um código de estrutura é parte vital da nossa scketch dentro dela ficarão as principais operações que o Arduíno ira fazer e como o nome já diz sempre está em "loop", ficando assim em um laço eterno, executando todas as funções que estão dentro dele por quantas vezes forem necessárias, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Loop

"digitalWrite(led, HIGH);"

Agora que a brincadeira começa a ficar interessante, essa função faz uma escrita em uma porta digital como sua tradução já diz, seus parâmetros também dizem como essa função deve se comportar e diz que o "led" que definimos como sendo a porta "13", vai estar "HIGH" ou seja no máximo fornecendo assim máxima tensão de saída na porta no nosso caso 5Volts, mais detalhes podem ser vistos:
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/Constants 

"delay(1000);"

Essa função tem como objetivo promover um "atraso" na sua programação, uma espera, um ponto de aguardo, e em seus parenteses o tempo é contato por millisegundos ou seja para se ter uma pausa de 1 segundo digitamos o valor 1000 ao invés de 1, se queremos 5  segundos colocamos entre os parenteses o valor 5000 e assim sucessivamente, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Delay 

"digitalWrite(led, LOW);"

Aqui temos quase uma repetição da função "digitalWrite", porém em seus parâmetros temos outros valores indicando que agora o nosso "led" que esta conectado a porta "13" passa a ter uma outra condição, agora "LOW" que significa baixo, ou em outras palavras desligado, fazendo assim com que o nosso "led" agora fique desligado.
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/Constants

Você poderá fazer experiências com seu Arduíno agora controlando ele de outras formas, alterando os valor do "delay" ou colocando mais funções e ver como o circuito se comporta...

Abraços

Nenhum comentário:

Postar um comentário