Para enteder como funciona o software e a linguagem arduino, vamos começar com um exemplo basico, que vamos pegar um exemplo do proprio software, então, abra o seu software e clicle em FILE>EXAMPLES> 1.BASICS > BLINK como mostrado na figura abaixo:
Feito isto, o código do programa irá aparecer na sua tela.
Codigo:
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
// Pin 13 has an LED connected on most Arduino boards.
// give it a name:
int led = 13;
// the setup routine runs once when you press reset:
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
// the loop routine runs over and over again forever:
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
Para iniciar o entendimento do código, devemos observar que a liguagem arduino é praticamente igual á C, só que com algumas funções novas. Então, para quem já sabe C, ou tem uma pequena base, já facilita muitoo. Então vamos agora entender a estrutura do progama. Em todos os programa do arduino há uma ordem a ser respeitada:
1. Estrutura de Inclusão de Bibliotecas
2. Estrutura de Declaração de Variáveis
3. Estrutura Setup
4. Estrutura Loop
5. Demais estruturas de funções
O que são estas 5 estruturas citadas acima?
O diferencial de uma placa como o Arduino está profundamente ligada à estrutura de numero 1 citada acima. Quando você estiver pensando em fazer algum projeto mirabolante, você pode ter certeza que há 90% de chances de alguém já o ter feito. Desta forma, quando alguém já o fez, é bem provável que este alguém, em qualquer parte do mundo, já tenha escrito toda uma biblioteca para fazer o tal projeto. Então vá no google e escreva ARDUINO "(nome da biblioteca que você pensa em fazer)" LIBRARY. Portanto, o que são Bibliotecas? São conjuntos de funções desenvolvidas para uma aplicação particular. Seu ambiente de desenvolvimento Arduino já vem com algumas bibliotecas instaladas. Para vê-las, simule que você quer importar uma biblioteca (apenas simule, não precisa clicar em nenhuma para importar). Para tanto, clique em SKETCH > IMPORT LIBRARY... e veja quantas bibliotecas prontas para seu uso já existem:
Legal né? por isso que eu amoo o arduino, é muito simples trabalhar com ele.. rsrs
Mas neste momento não iremos utilizar nenhuma das bibliotecas mostradas à cima, mesmo porque nosso programa BLINK não necessita de uma biblioteca para funcionar, pois é um programa muito básico. Por este motivo você pode notar que o programa BLINK, após os comentários iniciais, começa com a declaração de variáveis, que o segundo da ordem:
int ledPin = 13; // LED connected to digital pin 13
A linha anterior quer dizer o seguinte:
int : variável do tipo inteira
ledPin = 13; : nome da variável. Neste caso, como o próprio nome diz, temos que a variável PINO DO LED vale 13.
// LED connected to digital pin 13 : comentário dizendo que existe um LED conectado ao pino
digital de numero 13.
Agora olhe o seu Arduino mais de perto. Se você notar, verá que logo abaixo do pino 13 digital existe um LED SMD, ou seja, um microled, já colocado na placa, como mostra a figura abaixo:
Vamos agora olhar a estrutura de Setup do programa:
void setup() {
// initialize the digital pin as an output:
pinMode(ledPin, OUTPUT);
}
void setup() { : Declaração que irá começar o Setup do programa. Sempre aberto com uma “{“ e fechada, no fim da declaração, por uma “}”.
// initialize the digital pin as an output: : Comentário dizendo que o pino digital será inicializado como uma saída.
pinMode(ledPin, OUTPUT); : Escolha do modo do pino, se é entrada (INPUT) ou saída (OUTPUT).
Como neste caso queremos acender um led, a corrente elétrica irá sair do pino e não entrar. Logo, setamos o ledPin (que tinha o valor 13, por causa do pino digital 13) como saída.
O Setup é a função que executa o codigo dentro apenas uma vez, como nao tem necessecidade que o "pinMode(ledPin, OUTPUT);" seja executado mais de uma vez, ele ficou dentro da função Setup.
Por fim, neste programa, iremos analisar a estrutura Loop:
void loop()
{
digitalWrite(ledPin, HIGH); // set the LED on
delay(1000); // wait for a second
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second
}
void loop() : De modo análogo ao setup, com o comando ao lado dizemos que irá começar o loop do programa, ou seja, o programa principal que ficará rodando por tempo indeterminado. Também é aberto com uma “{“ e fechado com uma “}”.
digitalWrite(ledPin, HIGH); // set the LED on : Escrita digital. Por tratar-se de um pino digital, ou você terá nível lógico 1 ou terá nível lógico 0, no caso de um led, ou teremos led acesso (1) ou teremos led apagado (0). O comando então liga o led, ou seja, envia 1 para o pino 13.
delay(1000); // wait for a second : Delay é mais uma função pronta de seu arduino. O numero
que for inserido entre os parêntesis será o valor, em milissegundos, que o Arduino irá esperar para
seguir para a próxima instrução. No caso, temos um delay de 1000 milissegundos, ou seja, uma
espera de 1 segundo para executar a próxima instrução.
digitalWrite(ledPin, LOW); // set the LED off
delay(1000); // wait for a second : Estes dois comandos são análogos aos dois vistos anteriormente, com a única diferença que a escrita digital escreverá um 0 no pino do led, ou seja, um nível lógico baixo: o led apagará e o Arduino espera 1 segundo para fazer a próxima instrução que, no caso, volta a ser o digitalWrite(ledPin, HIGH); .