Processamento de Sinais: Linguagem de Programação para Arduino
Processamento de Sinais: Linguagem de Programação para Arduino
Prótons (+)
Nêutrons
Elétrons (-)
CONDUTORES ISOLANTES
Conduzem com mais facilidade a corrente elétrica. Tem dificuldade de conduzir a corrente elétrica.
Exemplos: Cobre, Alumínio, Prata, Ferro, Exemplos: Madeira, Borracha, Mica, Plásticos em
Ouro, etc geral, etc.
Para que haja corrente elétrica é necessário uma diferença de potencial entre dois pontos (+ e -).
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 [Ω]
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.
PILHA / BATERIA
SIMBOLOGIA ILUSTRAÇÃO
TOMADA
SIMBOLOGIA ILUSTRAÇÃO
RESISTOR
SIMBOLOGIA ILUSTRAÇÃO
POTENCIÔMETRO:
SIMBOLOGIA ILUSTRAÇÃO
LDR:
SIMBOLOGIA ILUSTRAÇÃO
+
LED:
SIMBOLOGIA ILUSTRAÇÃO
SIMBOLOGIA ILUSTRAÇÃO
BUZZER:
SIMBOLOGIA ILUSTRAÇÃO
BOTÃO:
SIMBOLOGIA ILUSTRAÇÃO
SERVOMOTOR:
SIMBOLOGIA ILUSTRAÇÃO
Arduino UNO:
É o cérebro de toda a Eletrônica do nosso
curso. Podemos programá-lo para fazer o
que quisermos!
http://www.bosontreinamentos.com.br/eletro
nica/arduino/arduino-conhecendo-os-shields/
+3,3V
+5V
GND (-)
Esquemático:
LEMBRE-SE QUE
O BUZZER TEM
POLARIDADE!
Esquemático:
Esquemático:
Esquemático:
LEMBRE-SE QUE
O LED POSSUI
POLARIDADE!
Esquemático:
Esquemático:
Botão Reset
LED do pino 13
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.
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
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
Além da placa, o Arduino também possui um software, que é onde iremos programá-lo.
-Não há inteligência real no Arduino: ele apenas obedece a lógica que você manda!
- Não pare!
Ao abrirmos um programa
(sketch) vazio, ele já vem com
duas estruturas: setup() e loop().
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().
Para ligar ou desligar um pino, ele precisa estar definido como SAÍDA (Output) pelo
comando pinMode.
delay(1000); //Aguarda 1s
digitalWrite(2,HIGH); //Liga o pino 2
delay(200); //Aguarda 0,2s
digitalWrite(2,LOW); //Desliga o pino 2
Vamos fazer com que esse LED da placa (13) fique aceso!
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 }
Carregado
com sucesso!
5. Observe a mensagem de erro! Ela pode dar pistas sobre o que está acontecendo.
Nessa prática, vamos fazer o led piscar, acendendo por 0,5s e então apagando por 0,5s.
void loop() {
digitalWrite(3,HIGH);
digitalWrite(2,LOW);
delay(500);
digitalWrite(3,LOW);
digitalWrite(2,HIGH);
delay(500);
}
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.
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);
}
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.
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
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.
Resultado Esperado:
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.
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.
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>> <<nome>>;
Onde: tipo é um dos 4 tipos listados acima.
nome é um nome que pode ser escolhido pelo programador. Esse nome não pode:
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.
Variável tempo
substituindo o valor
do delay
Variável verde
substituindo o
número do pino
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);
}
//comandos
} //final da estrutura if
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.
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
}
EXERCÍCIOS
Porém o Arduino possui seis pinos (A0-A5) que são Entradas Analógicas:
Se para lermos uma entrada digital usávamos o comando digitalRead, para uma entrada
analógica usamos o comando analogRead.
5V 1023
2,5V 512
0V 0