0% acharam este documento útil (0 voto)
150 visualizações130 páginas

Processamento de Sinais: Linguagem de Programação para Arduino

Enviado por

danillo Correia
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
150 visualizações130 páginas

Processamento de Sinais: Linguagem de Programação para Arduino

Enviado por

danillo Correia
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 130

Processamento de Sinais

LINGUAGEM DE PROGRAMAÇÃO PARA


M01 ARDUINO
INTRODUÇÃO À ELETRÔNICA
Tudo o que nos cerca é composto por partículas extremamente pequenas, chamadas de Átomos

Prótons (+)

Nêutrons

Elétrons (-)

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA
Cargas iguais se repelem; Cargas diferentes se atraem.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – CORRENTE ELÉTRICA
Para que haja eletricidade, é necessário que as cargas elétricas se movimentem.

São os elétrons quem se movimentam, já que os


prótons não conseguem sair facilmente do núcleo
do átomo.

A esse movimento ordenado e elétrons,


chamamos de CORRENTE ELÉTRICA, que é medida
em Ampéres (A).

Quanto mais Ampéres, mais Elétrons estão


passando!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – CORRENTE ELÉTRICA
Podemos imaginar a Corrente Elétrica como um fluxo de água indo de um ponto mais alto para
um mais baixo.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – RESISTÊNCIA ELÉTRICA
Alguns materiais permitem que a corrente elétrica passe com mais facilidade do que outros.

CONDUTORES ISOLANTES

Conduzem com mais facilidade a corrente elétrica. Tem dificuldade de conduzir a corrente elétrica.

BAIXA RESISTÊNCIA ELÉTRICA ALTA RESISTÊNCIA ELÉTRICA

Exemplos: Cobre, Alumínio, Prata, Ferro, Exemplos: Madeira, Borracha, Mica, Plásticos em
Ouro, etc geral, etc.

A Resistência Elétrica é medida em Ohm (Ω).


M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
INTRODUÇÃO À ELETRÔNICA – RESISTÊNCIA ELÉTRICA
A Resistência Elétrica pode ser comparada ao diâmetro de uma tubulação de água:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – TENSÃO ELÉTRICA
Para que haja fluxo de água, é necessário que haja uma diferença de altura entre os reservatórios.

Para que haja corrente elétrica é necessário uma diferença de potencial entre dois pontos (+ e -).

A Tensão Elétrica é a força que


empurra os elétrons. Essa força
surge da diferença de potencial
elétrico entre dois pontos.

A Tensão Elétrica é medida em Volt (V).

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – TENSÃO ELÉTRICA
Podemos comparar a Tensão Elétrica como a diferença de altura entre os dois reservatórios.

Quanto maior a diferença de altura, mais força a água tem.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – RESUMINDO

Uma imagem vale mais do que mil palavras!


M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
INTRODUÇÃO À ELETRÔNICA – LEI DE OHM
A Lei de Ohm relaciona matemática as 3 grandezas elétricas que estudamos – Tensão, Corrente e
Resistência:

V
I
Onde: R
I é a Corrente Elétrica, em Ampéres [A]
V é a Tensão Elétrica, em Volts [V]
R é a Resistência Elétrica, em Ohms [Ω]

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – LEI DE OHM
EXEMPLO:

Em uma residência há um chuveiro ligado em 220V. A resistência do chuveiro


é de 11Ω. Qual é o valor da corrente elétrica que passa pelo chuveiro?

SOLUÇÃO:

V 220
I I  20 A Portanto, a corrente consumida por
este chuveiro é de 20 A.
R 11
M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
INTRODUÇÃO À ELETRÔNICA – CIRCUITO
Circuito é o caminho fechado por onde passa a corrente
elétrica.

Sentido Real: do negativo para o positivo.

Sentido Convencional: do positivo para o


negativo – o mais usado.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

FONTE DE TENSÃO CONTÍNUA (VCC):

PILHA / BATERIA

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

FONTE DE TENSÃO ALTERNADA (VAC):

TOMADA

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

RESISTOR: Resiste a passagem da corrente. Muito usado para limitar a


corrente em componentes, como nos LEDs.

RESISTOR

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


CÓDIGO DE CORES
DE RESISTORES

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

POTENCIÔMETRO (RESISTOR VARIÁVEL):

POTENCIÔMETRO:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

LDR (RESISTOR DEPENDENTE DE LUZ): Sua resistência varia de acordo com


a luz. No claro, é baixa.
No escuro, é alta.

LDR:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

LED: Emite luz quando polarizado corretamente. Atentar para o lado


positivo e o lado negativo.

+
LED:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES
LED RGB (RED, GREEN, BLUE): 3 leds em um. Vermelho, Verde e Azul.

ÂNODO COMUM CÁTODO COMUM

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

BUZZER: Emite som quando polarizado corretamente. Atentar para o lado


positivo e o negativo.

BUZZER:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

BOTÃO: Quando pressionados, permitem que a eletricidade passe.

BOTÃO:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

Servomotor: São motores que permitem o controle exato de seu giro.

SERVOMOTOR:

SIMBOLOGIA ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRINCIPAIS
COMPONENTES

Arduino UNO:
É o cérebro de toda a Eletrônica do nosso
curso. Podemos programá-lo para fazer o
que quisermos!

Existem vários tipos de Arduino, de tamanhos


diferentes. O que iremos usar no curso é o Arduino
UNO. ILUSTRAÇÃO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – ARDUINOS

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – SHIELDS

Shields são placas que podem ser


conectadas em cima do Arduino,
trazendo novos recursos pra ele!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – SHIELDS

http://www.bosontreinamentos.com.br/eletro
nica/arduino/arduino-conhecendo-os-shields/

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – ALIMENTAÇÃO
O Arduino possui alguns pinos de onde podemos tirar
energia:

+3,3V
+5V
GND (-)

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 1 - BUZZER
Nessa prática vamos ligar o Buzzer ao Arduino:

Lembre-se que o Buzzer tem polaridade, um lado


que é positivo e outro que é negativo.

E aí? O Buzzer tocou?

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PROTOBOARD

O Protoboard ou Matriz de Contatos é uma placa


perfurada que nos permite montar e desmontar
circuitos eletrônicos facilmente.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PROTOBOARD

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PROTOBOARD

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PROTOBOARD

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 2 – BUZZER E
PROTOBOARD(Ligação Direta)

Esquemático:
LEMBRE-SE QUE
O BUZZER TEM
POLARIDADE!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 2 – BUZZER E
PROTOBOARD(Ligação Indireta)

Esquemático:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 3 – BOTÃO E
BUZZER NO PROTOBOARD

Esquemático:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 4 – LED NO
PROTOBOARD

Esquemático:
LEMBRE-SE QUE
O LED POSSUI
POLARIDADE!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 5 – BOTÃO E LED
NO PROTOBOARD

Esquemático:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


INTRODUÇÃO À ELETRÔNICA – PRÁTICA 5 – BOTÃO E LED
NO PROTOBOARD

Esquemático:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO Pinos Digitais

Botão Reset
LED do pino 13

Cabo USB LED Arduino Ligado

Microcontrolador
Alimentação
(7 a 12V)
Pinos de Pinos
Energia Analógicos
M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
O ARDUINO – DIGITAL X ANALÓGICO
Sinais Digitais são aqueles que podem assumir apenas 2 valores: desligado (0) ou ligado
(1), em inglês HIGH e LOW.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – DIGITAL X ANALÓGICO
Os Sinais Analógicos são aqueles que podem variar livremente dentro de uma
determinada faixa, podendo assumir muito mais do que 2 valores.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – ENTRADAS E SAÍDAS

Os pinos digitais do Arduino podem ser


configurados como Entradas (INPUT) ou
Saídas (OUTPUT).

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – ENTRADAS E SAÍDAS

Se um pino for configurado como Entrada, significa que o Arduino irá receber informação
de fora nele.
Exemplo: Botões e Sensores. ENTRADA
INPUT

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – ENTRADAS E SAÍDAS

Se um pino for configurado como Saída, significa que o Arduino irá mandar informação
para esses pinos (ligar ou desligar). Cada pino pode emitir até 5V/40mA.
Exemplo: LEDs, Buzzers, Motores, etc.
SAÍDA
OUTPUT

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – SOFTWARE (IDE)

Além da placa, o Arduino também possui um software, que é onde iremos programá-lo.

Os Softwares usados na programação são muitas vezes chamados de IDE (Ambiente de


Desenvolvimento Integrado, do inglês Integrated Developement Environment)

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


IDE

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


SERÁ QUE É ASSIM QUE SE
PROGRAMA?

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


NÃO!
- Para programar, temos de usar comandos específicos.

- Esses comandos são executados em ordem, de cima pra baixo.

-Não há inteligência real no Arduino: ele apenas obedece a lógica que você manda!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


5 DICAS DE PROGRAMAÇÃO
- Sempre digite seus códigos! Evite copiar e colar, especialmente enquanto está
aprendendo

- Não tenha medo de errar! Seja persistente. É normal ter dificuldades.

- Saiba procurar informação.

- Repetição é a chave do aprendizado.

- Não pare!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – ESTRUTURA DO PROGRAMA

Ao abrirmos um programa
(sketch) vazio, ele já vem com
duas estruturas: setup() e loop().

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMANDOS BÁSICOS – CASE SENSITIVE

A Linguagem de Programação do Arduino é Case Sensitive (Sensível ao Caso). Ou seja:


diferencia letras maiúsculas de minúsculas.

Para o Arduino, as palavras “Arduino” e “arduino” são diferentes.

Assim, na programação devemos respeitar a forma correta como os comandos


devem aparecer. Geralmente primeira palavra com inicial minúscula e as outras com
maiúscula (há exceções).

Exemplos: pinMode, digitalWrite, digitalRead, analogWrite, analogRead, etc.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMANDOS BÁSICOS – pinMode()

O comando pinMode define se um determinado pino será Entrada (INPUT) ou Saída


(OUTPUT).

Exemplo: pinMode(7,OUTPUT); Exemplo 2: pinMode(5,INPUT);

No exemplo acima, o pino 7 foi No exemplo acima, o pino 5 foi


configurado como SAÍDA. configurado como ENTRADA.

Definir um pino como sendo Entrada ou Saída é uma das primeiras coisas a ser feita.
Por isso, devemos fazê-la logo na estrutura setup().

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMANDOS BÁSICOS – digitalWrite()

O comando digitalWrite permite ligar ou desligar uma saída digital.

digitalWrite(7,HIGH); //Aciona o pino 7

digitalWrie(7,LOW); //Desliga o pino 7

digitalWrite(7,1); //Aciona o pino (equivalente ao HIGH)

digitalWrite(7,0); //Desliga o pino 7 (equivalente ao LOW)

Para ligar ou desligar um pino, ele precisa estar definido como SAÍDA (Output) pelo
comando pinMode.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMANDOS BÁSICOS – delay()
O comando delay faz com que o Arduino aguarde um determinado tempo sem fazer nada.
Esse tempo deve ser dado em ms (milisegundos). Por exemplo, 1s = 1000ms.

delay(1000); //Aguarda 1s
digitalWrite(2,HIGH); //Liga o pino 2
delay(200); //Aguarda 0,2s
digitalWrite(2,LOW); //Desliga o pino 2

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA
O Arduino UNO tem um LED para testes já na placa. Esse led está ligado ao pino digital 13.

LED na placa. Esse LED está


ligado ao pino 13

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA

Vamos fazer com que esse LED da placa (13) fique aceso!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA

CÓDIGO COMENTÁRIO
1 void setup(){
2 pinMode(13,OUTPUT); //Define pino 13 como saída
3 }
4 void loop(){
5 digitalWrite(13,HIGH); //Liga o pino 13
8 }

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA
Para transferir o nosso primeiro programa, é bem simples!

1. Conecte o Arduino no computador via cabo USB.

2. Vá em Ferramentas > Porta e verifique se o modelo da placa Arduino está selecionado


como “Arduino/Genuino UNO”

3. Em Porta, selecione a Porta onde o Arduino está


conectado (geralmente não é COM1)

4. Clique no Botão Carregar

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA
O programa que você digitou então será compilado, ou seja, traduzido para código de
máquina do Arduino. Então é enviado para ele através do cabo USB.

Carregado
com sucesso!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRIMEIRO PROGRAMA
E se houver algum erro? Devo arrancar os cabelos?

1. Não se desespere! É normal!

2. Verifique se o Arduino está conectado ao PC e energizado.

3. Verifique se o PC reconhece o Arduino na hora de selecionar a Porta

4. Verifique se não esqueceu nada no código. Se não faltou um ponto-e-vírgula. Se as letras


maiúsculas e minúsculas foram digitadas corretamente, de acordo com o comando.

5. Observe a mensagem de erro! Ela pode dar pistas sobre o que está acontecendo.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LED EXTERNO
Vamos ligar agora um LED externo no pino 13 e ver se ele também acende, com o mesmo
programa!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 6 – FAZENDO O LED PISCAR

Nessa prática, vamos fazer o led piscar, acendendo por 0,5s e então apagando por 0,5s.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 6 – FAZENDO O LED PISCAR
CÓDIGO
1 void setup(){
2 pinMode(13,OUTPUT); //Define pino 13 como saída
3 }
4 void loop(){
5 digitalWrite(13,HIGH); //Liga o pino 13
8 delay(500); //Espera 0,5s
9 digitalWrite(13,LOW); //Desliga o pino 13
10 delay(500); //Espera 0,5s
11 }
M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
EXERCÍCIOS

1. Faça um pisca-pisca em que o LED deve piscar ainda mais rápido.

2. Faça um programa no Arduino em que o LED deverá piscar 2x rapidamente e 1x


lentamente, repetindo isso indefinidamente.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMENTÁRIOS
Comentários são textos que o programador pode colocar no meio do código e que será
ignorado pelo Arduino, não causando nenhum erro.

A forma mais comum de se fazer comentários na programação é através da barra dupla //

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 7 – FAZENDO DOIS LEDS PISCAREM
Nessa prática vamos fazer a ligação de dois LEDs no Arduino e fazê-los piscarem juntos, de
forma alternada (isto é, quando um está aceso, o outro está apagado, e vice-versa).
CIRCUITO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 7 – FAZENDO DOIS LEDS PISCAREM
Nessa prática vamos fazer a ligação de dois LEDs no Arduino e fazê-los piscarem juntos, de
forma alternada (isto é, quando um está aceso, o outro está apagado, e vice-versa).
CIRCUITO CÓDIGO
void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
}

void loop() {

digitalWrite(3,HIGH);
digitalWrite(2,LOW);
delay(500);
digitalWrite(3,LOW);
digitalWrite(2,HIGH);
delay(500);
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 8 – SEMÁFORO

Nessa prática vamos montar um semáforo. Usaremos 3 leds, um verde, um vermelho e um


amarelo. Faça um semáforo que funcione da seguinte forma: inicialmente vermelho
começa ligado. Após 5s, vermelho apaga e verde acende. Após 4s, verde apaga e amarelo
acende. Após 1s, amarelo apaga e o ciclo se repete.

Nessa prática vamos usar comentários para


descrever o que cada linha do programa está
fazendo.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 8 – SEMÁFORO

CIRCUITO CÓDIGO
void setup() {
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
}

void loop() {
digitalWrite(2,HIGH); //liga vermelho
delay(5000); // aguarda 5s
digitalWrite(2,LOW); //apaga vermelho
digitalWrite(3,HIGH); //liga verde
delay(4000); //aguarda 4s
digitalWrite(3,LOW); //apaga verde
digitalWrite(2,HIGH); //acende amarelo
delay(1000); //aguarda 1s
digitalWrite(2,LOW); //apaga amarelo
}
EXERCÍCIO

1. Use 4 LEDs.
Faça com que os LEDs vão ligando, um por um, de 1s em 1s, até que todos os 4 estejam
ligados.
Então, após 1s, eles começam a apagar um a um, de 1s em 1s, até que todos estejam
apagados e o ciclo se repete.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA EXTRA – LED RGB
Os LEDs RGB nada mais são do que 3 LEDs (Red, Green e Blue – Vermelho, Verde e Azul)
ligados no mesmo encapsulamento.

É possível acender cada led separadamente ou,


acendendo mais de um, é possível combinar as cores.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA EXTRA – LED RGB
Existem 2 tipos de LEDs RGB: Cátodo Comum (Neg. Comum) ou Ânodo Comum (Pos.
Comum):

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA EXTRA – LED RGB
Nessa prática, vamos fazer acender 5 cores diferentes no LED:

- Acende Vermelho. Após 5s,


- Acende Verde. Após 5s,
- Acende Azul. Após 5s,
- Acende Amarelo (mistura de Vermelho e Verde). Após 5s,
- Acende Ciano / Azul Aqua (mistura de Verde e Azul). Após 5s,
- Acende Branco (mistura das 3 cores).

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA EXTRA – LED RGB
Circuito:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA EXTRA – LED RGB
Código: int pinoR = 4; // número dos pinos Red, Green e Blue de acordo com a ligação
int pinoG = 3;
int pinoB = 2;

void setup(){
pinMode(pinoR, OUTPUT);
// define os pinos como saída
pinMode(pinoG, OUTPUT);
pinMode(pinoB, OUTPUT);
}

void loop(){
digitalWrite(pinoR,HIGH);
// acende vermelho
delay(5000);
// aguarda 5s
digitalWrite(pinoR,LOW); // apaga vermelho e acende verde
digitalWrite(pinoG,HIGH);
delay(5000);
digitalWrite(pinoG,LOW); // apaga verde e acende azul
digitalWrite(pinoB,HIGH);
delay(5000);
digitalWrite(pinoB,LOW);
digitalWrite(pinoR,HIGH); // apaga azul e acende vermelho e verde (para gerar amarelo)
digitalWrite(pinoG,HIGH);
delay(5000);
digitalWrite(pinoR,LOW);
digitalWrite(pinoB,HIGH); // apaga vermelho e acende azul (azul + verde = azul aqua / ciano)
delay(5000);
digitalWrite(pinoR, HIGH);
// acende vemelho, mantendo as 3 cores acesas p/ formar o Branco
delay(5000);
digitalWrite(pinoB,LOW);
// apaga azul e verde para reiniciar o ciclo
digitalWrite(pinoG,LOW);
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
Sinais Analógicos são aqueles que não possuem apenas 2 estados possíveis, mas
geralmente muito mais.

O Arduino não possui pinos com saída analógica real, já que seus pinos só conseguem
emitir 0V ou 5V. Porém, usa uma técnica que simula uma saída analógica, chamada de
PWM.

PULSE WIDTH MODULATION


MODULAÇÃO POR LARGURA DE PULSO

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
Para entendermos o PWM, imagine que temos uma lâmpada e um interruptor:

O que acontece se começarmos a ligar/desligar


a lâmpada muito rapidamente?

A partir de certa velocidade, a lâmpada não


ficará mais acesa ou apagada, mas sim meia-
acesa.

Isso é o PWM! A partir de apenas duas tensões


(0V e 5V) e oscilando-as rapidamente, é
possível obter um comportamento analógico.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
Alguns sinais de PWM podem ser vistos abaixo:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
Nem todos os pinos do Arduino possuem a capacidade de gerar uma saída PWM.

Os pinos antecedidos por ~ podem ser utilizados como saída analógica PWM.
São eles os pinos 3, 5, 6, 9, 10 e 11

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
O comando analogWrite() permite enviar um valor de 0 (totalmente desligado) a 255
(totalmente ligado) para a saída analógica:

analogWrite(3,0); //Manda 0V p/ pino 3


delay(1000); //Espera 1s
analogWrite(3,127); //Manda 2,5V p/ pino 3
delay(1000); //Espera 1s
analogWrite(3,255); // Manda 5V p/ pino 3

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 9 – SAÍDA PWM (ANALÓGICA)
Nessa prática vamos ligar um LED na primeira saída analógica, que é no CÓDIGO
pino 3. Para dar o efeito do LED acendendo aos poucos, vamos enviar a void setup() {
cada 0,5s os valores 0, 2, 5, 10, 25 e 50 para ele. pinMode(3, OUTPUT);
}

CIRCUITO void loop() {


analogWrite(3,0);
delay(500):
analogWrite(3, 2);
delay(500);
analogWrite(3,5);
delay(500);
analogWrite(3,10);
delay(500);
analogWrite(3,25);
delay(500);
analogWrite(3,50);
delay(500);
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIO

1. Faça com que o LED acenda aos poucos e depois apague aos poucos também.

2. Coloque 3 LEDs de cores diferentes e faça com que eles também acendam aos poucos e
apaguem aos poucos, em momentos diferentes.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 10 – MONITOR SERIAL
O Monitor Serial nos permite receber e enviar informações para o Arduino em tempo
real!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 10 – MONITOR SERIAL
Principais Comandos:

Velocidade de Comunicação – padrão


é 9600 bits por segundo

Transmite para o Monitor Serial algum


conteúdo e pula de linha ao final.

Transmite para o Monitor Serial algum


conteúdo e não pula de linha no final.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 10 – MONITOR SERIAL
Exemplo - envie o programa abaixo para o Arduino:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 10 – MONITOR SERIAL
Abra o Monitor Serial:

Resultado Esperado:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIO

1. Refaça o semáforo da prática 8 (de preferência, sem olhar o código). Use o Monitor Serial
para mostrar qual a cor do LED que está aceso em cada etapa.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


DESAFIO
Faça um semáforo com 3 LEDs, vermelho, amarelo e verde. Use também um Buzzer.
Inicialmente, vermelho acende por 5 segundos. Então, vermelho pisca 2 vezes rapidamente e
apaga, acendendo o Verde.

Verde fica aceso por 4 segundos. Então, verde apaga e amarelo acende por 2 segundos.
Enquanto amarelo está aceso, o buzzer deve dar 2 toques rápidos, para que os motoristas
fiquem atentos. O ciclo se repete.

Mostre no Monitor Serial qual LED está ligando em cada etapa. Faça também comentários no
código, para explicar o que está acontecendo.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Variáveis são espaços da memória do Arduino que nos permitem armazenar
temporariamente valores e dados.

Nós já usamos muito o conceito de variáveis na matemática. Por exemplo, no Teorema de


Pitágoras:

3 variáveis:
h h -> hipotenusa
a -> cateto
a b -> cateto

b
M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Tipos Principais de Variáveis:

Tipo Descrição Limites


int Armazena números inteiros -32768 a +32767
float Armazena números com vírgula (ponto decimal) -3.4028E+38 a +3.4028E+38

char Armazena um único caractere, seja letra, número 1 caractere


ou símbolo.
String Armazena vários caracteres, como textos e frases. Indefinido (enquanto couber na
memória do Arduino)

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Para declarar (criar) uma variável, basta:

<<tipo>> <<nome>>;
Onde: tipo é um dos 4 tipos listados acima.
nome é um nome que pode ser escolhido pelo programador. Esse nome não pode:

- começar com número;


- conter espaços (dever um nome único);
- conter caracteres especiais, como por exemplo: $%&^*(*,.?/!`
- ter o mesmo nome que um outro comando ou função do Arduino;

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Exemplos de nomes de Variáveis válidos e inválidos:

Nomes Inválidos Nomes Válidos Explicação

123Arduino Arduino123 Não pode começar com números


Arduino Amado Arduino_Amado Não pode conter espaços

Arduino$%%^ Arduino Não pode conter caracteres especiais

delay delay_meu Não pode ter o mesmo nome que um comando

Lembre-se que o Arduino é Case Sensitive. Portanto, as variáveis devem ser usadas sempre
da mesma forma com que foram declaradas, respeitando as letras maiúsculas e minúsculas.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Exemplo 1:

Variável tempo
substituindo o valor
do delay

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Exemplo 2:

Variável verde
substituindo o
número do pino

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Operadores Matemáticos:
Permitem que o Arduino realize cálculos matemáticos.

Operador Descrição Exemplo


+ Soma x = a+b;
- Subtração x=a-b;
* Multiplicação x=a*b;
/ Divisão x=a/b;

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Exemplo: Resultado:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 11 – VARIÁVEIS
Operadores Relacionais (Comparação):
Permitem ao Arduino comparar valores:
Operador Descrição Exemplo Leitura
== Igual a=b A igual a b
!= Diferente a != 4 a diferente de 4
> Maior a > 10 a maior que 10
>= Maior ou Igual a >= 50 a maior ou igual a 50
< Menor a<5 a menor que 5
<= Menor ou Igual a <= 10 a menor ou igual a 10
M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO
O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Circuito:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Comando digitalRead(<<pino>>);
Esse comando lê o estado de um pino e resulta em 0 ou 1.
Exemplo:
int estadoBotao; //declara variável estadoBotao para armazenar um número inteiro

void setup() {
pinMode(2,INPUT); //declara o pino 2 como entrada. Botões sempre são entradas
Serial.begin(9600); //configura comunicação serial 9600 bits por segundo
}
void loop() {
estadoBotao = digitalRead(2); //diz que a variável estadoBotao será a leitura do pino 2
Serial.println(estadoBotao);
delay(200);
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Comando if (se)
O comando if separa um bloco do programa que só será executado se uma
determinada condição acontecer.
if (<<condição>>){ //início da estrutura if

//comandos

} //final da estrutura if

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Comando if (se)
O comando if separa um bloco do programa que só será executado se uma
determinada condição acontecer.
if ( vaiChover == 1){ //início da estrutura if
//comandos
// levar guarda-chuva
} //final da estrutura if

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Exemplo:

Acender o LED somente se o botão for pressionado, e apagar 2s depois.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Circuito:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Código:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 12 – LEITURA DE ENTRADAS
(BOTÃO)
Outra Alternativa:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

EXERCÍCIOS

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

1. Utilize dois botões e um LED. Ao pressionar um dos botões, o LED deve acender e
permanecer aceso. Ao pressionar o outro, o LED deve apagar.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

2. Faça um circuito com 3 botões (B1, B2 e B3) e 2 LEDs (L1 e L2). Ao pressionar B1, L1 liga.
Ao pressionar B2, L2 liga. Ao pressionar B3, os dois LEDs apagam.
O ARDUINO – COMANDO ELSE
Além do if, existe um complemento que pode vir depois dele chamado else, que significa
(se não):

If (<<condição>>){
//comandos se condição verdadeira
}else{
//comandos se condição falsa
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – COMANDO ELSE
Código:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA E
Na Lógica E, todas as condições devem ser verdadeiras para que o if seja executado.

If (<<condição1>> && <<condição2>> && <<condição3>> ){


//comandos se as 3 condições forem verdadeiras
}else{
//comandos se condição falsa
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA E
Exemplo: ao pressionar os dois botões ao mesmo tempo, o LED deve acender. Após 2s,
apaga.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA E
Código:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA OU
Na Lógica OU, se qualquer uma das condições for verdadeira, o if será executado.

If (<<condição1>> || <<condição2>> || <<condição3>> ){


//comandos se qualquer condição for verdadeira
}else{
//comandos se nenhuma for verdadeira
}

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA OU
Exemplo: Ao pressionar qualquer um dos dois botões, o LED deve acender. Após 2 segundos,
apaga.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – LÓGICA OU
Código:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

EXERCÍCIOS

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

1. Faça um circuito com 2 botões (B1 e B2). Faça


um programa no qual, ao pressionar qualquer um
dos botões, apareça no Monitor Serial a frase
“Botão Pressionado”.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


EXERCÍCIOS

2. Faça um circuito com 3 botões (B1, B2 e


B3) e um LED. Ao pressionar B1 e B2 ao
mesmo tempo, juntos, o Led acende. Ao
pressionar B3, o LED apaga.
EXERCÍCIOS

3. Faça um circuito com 2 botões e 3


leds e que apertar Bot.1 E Bot2
(juntos), ligam os 3 leds; após 2s, apaga
led vermelho; após 2s, apaga amarelo;
após 2s, apaga vermelho.
O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
A entrada digital (0/1) possui apenas dois estados, como já vimos. Nela, podemos ligar
botões ou sensores que funcionem de forma digital.

Porém o Arduino possui seis pinos (A0-A5) que são Entradas Analógicas:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
Esses pinos podem reconhecer tensões entre 0V e 5V, atribuindo ao 0V o valor 0 e ao 5V o
valor 1023.

Se para lermos uma entrada digital usávamos o comando digitalRead, para uma entrada
analógica usamos o comando analogRead.

O comando analogRead fará a leitura da entrada analógica selecionada (<<pino>>) e nos


dará um valor entre 0 e 1023.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
Esses pinos podem reconhecer tensões entre 0V e 5V, atribuindo ao 0V o valor 0 e ao 5V o
valor 1023.

5V 1023

2,5V 512

0V 0

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
Para variarmos a tensão em uma entrada analógica, vamos inicialmente usar um
potenciômetro. Um potenciômetro é um Resistor Variável.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
Código:

Veja a variação da tensão


no pino A0 através do
Monitor Serial!

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 13 – ENTRADA ANALÓGICA E
PLOTTER SERIAL
Vejamos essa mesma variação de forma gráfica através do Plotter Serial:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 14 – ACENDENDO LED ATRAVÉS DO
POTENCIÔMETRO
Vamos agora fazer com que um LED
acenda sempre que a resistência do
potenciômetro estiver maior do que a
metade.

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO


O ARDUINO – PRÁTICA 14 – ACENDENDO LED ATRAVÉS DO
POTENCIÔMETRO
Código:

M01 | LINGUAGEM DE PROGRAMAÇÃO PARA ARDUINO

Você também pode gostar