Na interface de programação (levemente introduzida em posts passados) é possível programar o Arduino e linguagem C/C++.
Para quem conhece essa linguagem, aqui é as mesma coisa em termos de estrutura (inclusão de bibliotecas, funções, estrutura...).
Antes de começar, a programação do Arduino é dividida em 2 blocos: void setup() e void loop().
- void setup(): bloco de inicialização, ou seja, é aqui se coloca os valores iniciais de variáveis, condições de entradas e saídas dos pinos, entre outras. Esse bloco é executado somente uma vez quando a placa é ligada e toda vez que a mesma é "resetada".
- void loop(): popularmente é o programa principal, depois de passar pelo void setup() o microcontrolador vai ficar executando esse bloco em loop infinito, por isso é aqui "que se faz as mágicas" de controle e programação.
Pode parecer meio confuso de inicio mas quem já tem prática em programação de microprocessadores e microcontroladores vai entender e se acostumar facilmente.
Programa Piscar LED
Para entender melhor a programação, segue abaixo um exemplo comentado.
Descrição: acende e apaga (pisca) um LED num determinado período de tempo. O LED é ligado na porta 13 (digital) do Arduino.
Observação: o LED não pode receber tensão diretamente entre seus terminais, uma vez que a corrente deve ser limitada. Assim, usa-se um resistor em série com o LED. Para calcular o valor do resistor usa-se a seguinte fórmula: R = (Vfonte - Vled) / Iled.
A tensão de um LED varia de 1,8-3V com c orrentes entre 12-30mA. Nesse exemplo o LED trabalha com VLed = 2V, Iled = 15mA:
R = (5 - 2) / 0,015
R = 200 Ohms
Com isso a ligação fica da seguinte forma:
Programação:
// pino digital de controle do LED
int ledPin = 13;
// tempo de delay
int tempo;
void setup()
{
// configura ledPin como saída
pinMode(ledPin, OUTPUT);
tempo = 1000; // 1000ms = 1s
}
void loop()
{
// ledPin vai para nível alto (acende LED)
digitalWrite(ledPin, HIGH);
// espera 1s
delay(tempo);
// ledPin vai para nível baixo (apaga LED)
digitalWrite(ledPin, LOW);
// espera 1s
delay(tempo);
}
Para fazer o download do programa clique aqui
Olá amigo,
ResponderExcluirApenas uma correção, o resistor no pino 13 é desnecessário pois o mesmo já possui um resistor bem como um LED SMD o que não justifica a utilização deste led neste pino, você pode usar esta configuração sem problemas nos outros 12 pinos digitais do arduino, mas no pino 13 é desnecessário.
Um abraço, até mais
coco
ResponderExcluir