Apostila Arduino Nas Eletivas
Apostila Arduino Nas Eletivas
O que é o arduino?
É um dispositivo eletrônico que permite a programação para controle de portas (pinos)
como entrada ou saída. Devido a essa funcionalidade, podemos fazer diversos dispositivos
tais como robôs, alarmes, controles, automação, etc.
O arduino é composto por um circuito integrado ATMEGA328P conhecido como
microcontrolador e outros circuitos intermediários como reguladores de tensão, clocks e
comunicação.
O Arduino é uma plataforma física de computação de código aberto, que tem como objetivo
criar ferramentas de baixo custo, acessíveis e fácil de usar. Ele utiliza a linguagem de
programação padrão, que é essencialmente C/C++.
Como o hardware é livre, existem vários tipos de Arduinos, os principais são:
2) ligando uma conector jack P4 de 7V até 12V (20V no máximo) na entrada de energia
do arduino. Esse 7V é necessário pois há um diodo D1 protetor (contra
inversibilidade) que provoca uma queda de tensão antes de chegar no regulador 5V.
Acima de 12V o regulador vai esquentar;
Esquema elétrico da alimentação do arduino.
Perceba que o Vin é alimentado pelo conector jack, neste caso, o Vin funciona como
saída fornecendo uma tensão (próxima) da fonte externa.
Comandos básicos
A estrutura da IDE (ambiente de desenvolvimento integrado) do arduino segue conforme a
figura abaixo.
Nele temos a estrutura básica para todos os sketchs.
void setup() { }
local onde fazemos a configuração do arduino.
void loop() { }
local onde fazemos toda a lógica de programação.
Tanto o void setup quanto o void loop são funções básicas do arduino.
O programa do arduino se baseia em variáveis para realizar operações, que são dados ou
informações ou nomes de objetos, como por exemplo: portas, Leds, sensores, motores, etc.
Qualquer objeto externo ligado a uma porta no arduino, precisa de uma variável para ser
identificada no programa do arduino
Dentro de qualquer região, podemos colocar comentários por meio de duas barras //.
Qualquer texto depois dessas barras serão ignoradas durante a compilação.
Obs: compilação é uma etapa de verificação feita pela IDE para detectar possíveis erros
básicos que não correspondem ao padrão da linguagem.
Tipos de variáveis
Antes de armazenar um dado, precisamos dizer ao arduino qual o tipo do dado a ser
armazenado em determinada variável.
O primeiro tipo é o int.
int (inteiro)
[Tipo de Dados]
Descrição
Ints (integer ou inteiros) são o tipo o tipo de dados primário para armazenamento de
números.
No Arduino Uno (e outras placas baseadas em micros ATmega) um int armazena um valor
16-bit (2 bytes). Isso garante um intervalo de -32,768 a 32,767 (um valor mínimo de -2^15 e
um valor máximo de (2^15) - 1). No Arduino Due e outras placas baseadas em micros
SAMD (como o MKR1000 e Zero), um int armazena um valor 32-bit (4 bytes). O que garante
um intervalo de -2,147,483,648 a 2,147,483,647 (um valor mínimo de -2^31 e um valor
máximo de (2^31) - 1).
Variáveis int armazenam números negativos com uma técnica chamada (Complemento de
2). O bit mais significativo, às vezes chamado de o "bit de sinal", indica que o número é
negativo. O resto dos bits são invertidos e 1 é adicionado.
O Arduino cuida dos detalhes nas operações com números negativos por você, tal que
operações aritméticas funcionam transparentemente na maneira esperada. No entanto,
pode-se haver uma complicação ao lidar com o operador de deslocamento de bits a direita
(>>).
Sintaxe
int var = val;
=== Parâmetros
Código de Exemplo
Esse código cria uma variável do tipo integer chamada 'contador', a qual é inicialmente
atribuído o valor 0 (zero). A váriavel incrementa em 1 (um) a cada execução do loop e é
mostrada no monitor serial.
void setup() {
Serial.begin(9600); // usa a porta serial para imprimir o
número que será visível no monitor serial.
}
void loop() {
contador++; // soma 1 ao int contador a cada
execução do loop. O mesmo que contador = contador + 1.
Serial.println(contador); // Imprime o estado atual do contador
delay(1000); //dá um tempo de 1000ms (1 segundo) antes de refazer
o loop.
}
Há vários tipos de dados, e para cada um, precisamos de uma declaração específica. A
tabela abaixo descreve os mais usuais e o intervalo numérico de cada tipo.
pinMode(pino,INPUT);
● pinMode(pino,OUTPUT);
função responsável por atribuir pino como saída (OUTPUT) ou entrada (INPUT)
numa determinada variável declarada anteriormente.
● digitalRead(pino);
Função que lê o valor do pino definido como entrada (INPUT). Usamos para detectar
valores de sensores.
● digitalWrite(pino,HIGH);
Função que enviar um valor alto (HIGH) para uma porta definida no pino.
● digitalWrite(pino,LOW);
Função que envia um valor baixo (LOW) para uma porta definida no pino.
● analogWrite(pino,HIGH);
● analogWrite(pino,LOW);
● delay();
delay(1000)