SlideShare uma empresa Scribd logo
1 de 18
Baixar para ler offline
Caderno de
Atividades 1
2
1º Experimento
Objetivo: Acender um LED com uma push button.
Funcionamento: Ao se pressionar a push Button o LED deverá acender, e
caso ela seja solta o LED deverá apagar.
Procedimentos:
(1) Monte o circuito no protoboard da maneira que segue abaixo, uma ob-
servação: para essas primeiras aplicações não é necessário fonte externa,
pois o próprio computador
fornece energia ao Arduino,
antes de ligar no computador
verifique todas as ligações no-
vamente;
(2) Com o circuito montado e
verificado conecte o Arduino
na USB do computador, abra o
programa e copie o código
descrito na próxima página:
3
int Pinoled = 13; //led no pino 13
int Botao = 2; //botao no pino 2
int EstadoBotao = 0; //Variável para ler o status do pushbutton
void setup()
{
pinMode(Pinoled, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
}
void loop()
{
EstadoBotao = digitalRead(Botao);
/*
novo estado do botão vai ser igual ao que
Arduino ler no pino onde está o botão.
Poderá ser ALTO (HIGH)se o botão estiver
Pressionado, ou BAIXO (LOW),se o botão
estiver solto
*/
if (EstadoBotao == HIGH) //Se botão estiver pressionado (HIGH)
{
digitalWrite(Pinoled, HIGH); // acende o led do pino 13.
}
else //se não estiver pressionado
{
digitalWrite(Pinoled, LOW); //deixa o led do pino 13 apagado
}
}
(3) Verifique se o código não possui erros, caso tudo esteja devidamente
preparado é só pressionar o botão de gravar. É necessário que você siga to-
dos os passos a risca para não correr o risco de danificar a plataforma.
Para pensar...
Através do primeiro experimento pense como seria o programa caso quisés-
semos inverter o estado do LED, ou seja, ele só seria ligado caso a chave não
estivesse pressionada, e caso contrário o LED apagaria.
4
2º Experimento
Objetivo: Controlar 3 LED com 3 botões.
Funcionamento: Iremos seguir o mesmo princípio do experimento anteri-
or, mas agora com 3 LED e 3 push buttons. Cada botão irá acionar um único
LED quando for pressionado, e irá desliga-lo caso contrário.
Procedimentos:
(1) Monte o circuito no protoboard da maneira que segue abaixo, note que
o circuito será praticamente o mesmo, mas com 2 chaves e 2 LED a mais, an-
tes de ligar o Arduino no computador verifique todas as ligações novamen-
te;
5
(2) Com o circuito montado e verificado conecte o Arduino na USB do com-
putador, abra o programa e copie o código descrito abaixo:
int ledPin1 = 13; //Led 1 ligado no pino 13
int ledPin2 = 12 //Led 2 ligado no pino 12
int ledPin3 = 11; //Led 3 ligado no pino 11
int Botao1 = 2; //Botão 1 ligado no pino 2
int Botao2 = 3; //Botão 2 ligado no pino 3
int Botao3 = 4; //Botão 3 ligado no pino 4
int EstadoBotao1 = 0; //Botão 1 desligado
int EstadoBotao2 = 0; //Botão 2 desligado
int EstadoBotao3 = 0; //Botão 3 desligado
void setup(){ //Configurações dos pinos
pinMode(ledPin1, OUTPUT); //pino do Led 1 configurado como saída
pinMode(Botao1, INPUT); //pino do botão 1 configurado como entrada
pinMode(ledPin2, OUTPUT); //pino do led 2 configurado como saída
pinMode(Botao2, INPUT); //pino do botão 2 configurado como entrada
pinMode(ledPin3, OUTPUT); //pino do led 3 configurado como saída
pinMode(Botao3, INPUT); //pino do botão 3 configurado como entrada
}
void loop(){
EstadoBotao1 = digitalRead(Botao1); // Lê o estado do botão 1
EstadoBotao2 = digitalRead(Botao2); // Lê o estado do botão 2
EstadoBotao3 = digitalRead(Botao3); // Lê o estado do botão 3
if (EstadoBotao1 == HIGH){ //Se o botão 1 está pressionado
digitalWrite(ledPin1, HIGH); //acende o led 1
}
else{ //Se não
digitalWrite(ledPin1, LOW); //apaga o led 1
}
if (EstadoBotao2 == HIGH){ //Se o botão 2 está pressionado
digitalWrite(ledPin2, HIGH); //acende led 2
}
else{ //Se não
digitalWrite(ledPin2, LOW); //apaga o led 2
}
if (EstadoBotao3 == HIGH){ //Se o botão 3 está pressionado
digitalWrite(ledPin3, HIGH); //acende o led 3
}
else{ //Se não
digitalWrite(ledPin3, LOW); //apaga led 3
}
}
6
(3) Verifique se o código não possui erros, caso tudo esteja devidamente
preparado é só pressionar o botão de gravar. É necessário que você siga to-
dos os passos a risca para não correr o risco de danificar a plataforma. Note
que neste experimento o programa apesar de parecer mais complexo nada
mais é do que uma ampliação do primeiro.
Para pensar...
Com base no experimento 2 altere o código para que a primeira chave, da
esquerda para a direita, acenda o LED verde, a segunda o LED amarelo, e o
LED vermelho só poderá ser aceso com o segundo e o terceiro botão pres-
sionados ao mesmo tempo.
Exercitando o conhecimento
Com o conhecimento adquirido nesse encontro elabore a so-
lução para os seguintes problemas:
1 – Com base no experimento 2, altere o código de programação,
para que sejam trocados de lugar os pinos onde estão conectados
os LED - troque para os pinos 8, 9, e 10) e as chaves - para os pinos
5, 6, 7.
2 - Você tem 4 botões e 4 LED, sendo que cada botão será responsá-
vel por acender uma quantidade especifica de LED simultanea-
mente, sendo o 1º botão responsável por acender o primeiro LED,
o segundo botão responsável por acender os 2 primeiros LED, o
terceiro botão responsável por acender os 3 primeiros LED, e o últi-
mo que irá acender todos os LED. Implemente o código desse pro-
grama.
7
3º Experimento
Objetivo: Controlar 1 Led com um botão, utilizando a estrutura “while” .
Funcionamento: Enquanto uma chave “push button” estiver pressionada o
led se manterá aceso.
Procedimentos:
(1) Monte o circuito no protoboard da maneira que segue abaixo, note que
o circuito será o mesmo do primeiro experimento, e o funcionamento tam-
bém, com a diferença que será utilizada a estrutura “while” em vez do “if”,
antes de ligar o Arduino no computador verifique todas as ligações nova-
mente:
8
(2) Com o circuito montado e verificado conecte o Arduino na USB do com-
putador, abra o programa e copie o código descrito abaixo:
(3) É importante observar nesse experimento que, para podermos sair da
condição “while”, é necessário alterar o valor da variável EstadoBotao den-
tro do próprio “while”, pois caso contrário ele ficará em uma volta eterna.
int Pinoled = 13; //led no pino 13
int Botao = 2; //botao no pino 2
int EstadoBotao = 0; //Variável para ler o status do pushbutton
void setup()
{
pinMode(Pinoled, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
}
void loop()
{
EstadoBotao = digitalRead(Botao);
while(EstadoBotao==HIGH)
{
digitalWrite(Pinoled, HIGH);
EstadoBotao = digitalRead(Botao);
}
digitalWrite(Pinoled,LOW);
}
9
4º Experimento
Objetivo: Controlar uma sequência de leds com um botão, utilizando a es-
trutura “while”.
Funcionamento: Enquanto uma chave “push button” estiver pressionada
um conjunto de 5 leds irá se acender sequencialmente, e permanecerá acesa
enquanto o botão se mantiver pressionado, caso contrário todos os leds se
apagam.
Procedimentos:
(1) Monte o circuito
no protoboard da ma-
neira que segue abai-
xo, e na programação
iremos utilizar a fun-
ção “delay();” que ser-
ve para gerar uma
pausa no programa, fa-
remos isso para po-
dermos visualizar os
led se acendendo pau-
sadamente, antes de
ligar o Arduino no
computador verifique
todas as ligações nova-
mente:
10
int l5 = 13;
int l4 = 12;
int l3 = 11;
int l2 = 10;
int l1 = 9;
int Botao = 2; //botao no pino 2
int EstadoBotao = 0; //Variável para ler o status do pushbutton
void setup(){
pinMode(l1, OUTPUT); //Pino do led será saída
pinMode(l2, OUTPUT); //Pino do led será saída
pinMode(l3, OUTPUT); //Pino do led será saída
pinMode(l4, OUTPUT); //Pino do led será saída
pinMode(l5, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
}
void loop()
{
EstadoBotao = digitalRead(Botao);
while(EstadoBotao==HIGH)
{
digitalWrite(l1, HIGH);
delay(100);
digitalWrite(l2, HIGH);
delay(100);
digitalWrite(l3, HIGH);
delay(100);
digitalWrite(l4, HIGH);
delay(100);
digitalWrite(l5, HIGH);
delay(100);
EstadoBotao = digitalRead(Botao);
}
digitalWrite(l1,LOW);
digitalWrite(l2,LOW);
digitalWrite(l3,LOW);
digitalWrite(l4,LOW);
digitalWrite(l5,LOW);
}
11
(3) Novamente fizemos a leitura do estado do botão dentro do “while”, para
podermos sair dessa estrutura quando o botão for solto.
Para pensar...
Dessa vez altere o código para que o led anterior apague quando o led se-
guinte acender, e quando chegar no último led ele retorna ao primeiro repe-
tindo a sequência.
12
5º Experimento
Objetivo: Controlar uma sequência de leds com um botão, utilizando a es-
trutura “while” e “for”.
Funcionamento: O circuito será o mesmo anterior e o funcionamento tam-
bém, enquanto uma chave “push button” estiver pressionada um conjunto
de 5 leds irá se acender sequencialmente, e permanecerá acesa enquanto o
botão se mantiver pressionado, caso contrário todos os leds se apagam. A
diferença agora é que iremos utilizar a estrutura “for”, a qual deixará o pro-
grama mais curto.
Procedimentos:
(1) Monte o circuito no
protoboard da maneira
que segue abaixo, e na
programação iremos u-
tilizar a função “delay
();” que serve para ge-
rar uma pausa no pro-
grama, faremos isso pa-
ra podermos visualizar
os led se acendendo
pausadamente, antes de
ligar o Arduino no com-
putador verifique todas
as ligações novamente:
13
int l5 = 13;
int l4 = 12;
int l3 = 11;
int l2 = 10;
int l1 = 9;
int Botao = 2; //botao no pino 2
int EstadoBotao = 0; //Variável para ler o status do pushbutton
int led;
void setup()
{
pinMode(l1, OUTPUT); //Pino do led será saída
pinMode(l2, OUTPUT); //Pino do led será saída
pinMode(l3, OUTPUT); //Pino do led será saída
pinMode(l4, OUTPUT); //Pino do led será saída
pinMode(l5, OUTPUT); //Pino do led será saída
pinMode(Botao, INPUT); //Pino com botão será entrada
}
void loop()
{
EstadoBotao = digitalRead(Botao);
while(EstadoBotao==HIGH)
{
for(led=9; led<=13;led++){
digitalWrite(led, HIGH);
delay(100);
}
EstadoBotao = digitalRead(Botao);
}
for(led=9;led<=13;led++)
{
digitalWrite(led, LOW);
}
}
14
(3) Repare que nosso programa diminuiu consideravelmente seu tamanho,
isso devido a nova estrutura “for”, que nos permite repetir a mesma ação di-
versas vezes, sem que precisemos reescrever tudo.
Para pensar...
Aumente seu circuito para 10 leds, e controle-os da mesma forma, mas ago-
ra acionando-os com 2 botões em vez de um, ou seja, a sequencia só será a-
cionada quando 2 botões estiverem pressionados ao mesmo tempo.
15
6º Experimento
Objetivo: Acionar um buzzer variando seu som emitido, através da estrutu-
ra “for”.
Funcionamento: Uma variável chamada tom irá iniciar em zero, sendo ela
a responsável por definir a frequência do buzzer, e irá sendo incrementada
ao longo do tempo, alterando o som do mesmo.
16
int Buzzer = 9;
int x=10;
int tom = 0;
void setup()
{
pinMode(Buzzer, OUTPUT);
}
void loop()
{
for(tom=0; tom<=1000;tom++){
digitalWrite(Buzzer, HIGH); // Liga buzzer
delayMicroseconds(tom); // Espera o tempo proporcional ao comprimento de
onda da nota musical em microsegundos
digitalWrite(Buzzer, LOW); // Desliga buzzer
delayMicroseconds(tom); // Espera o tempo proporcional ao comprimento de
onda da nota musical em microsegundos
if(tom==1000)
{
tom=0;
}
}
}
17
(3) Note que dentro do for é utilizado um “if” para verificar quando a variá-
vel tom chega no seu máximo, quando isso ocorre ela é reiniciada e volta a
zero, colocando a frequência do buzzer em seu máximo.
Para pensar...
Altere o código acima para reproduzir o som do buzzer ao contrário come-
çando com a frequência mínima, em vez de máxima como era o anterior, di-
ca: a variável tom deve ser tratada de maneira diferente.
18
Oficinas Tecnológicas para
alunos do Ensino Médio
Prof. Dr. Leonardo Mesquita
mesquita@feg.unesp.br
Coordenador do Projeto
Prof. Dr. Galeno José de Sena
gsena@feg.unesp.br
Prof. Dr. Marco Aurélio Alvarenga Monteiro
marco.aurelio@feg.unesp.br
Prof. José Marcelo de A. Wendling Jr.
jmarcelo@feg.unesp.br
Felipe Barbosa da Silva
Ismael de Almeida Júnior
Letícia Miranda de França Mota
Renan Moura Santana
Samuel José de Carvalho

Mais conteúdo relacionado

Mais procurados

Manual controlador digital sinergia
Manual controlador digital sinergiaManual controlador digital sinergia
Manual controlador digital sinergiaworldpiscinas
 
Manual controlador digital absoluto
Manual controlador digital absolutoManual controlador digital absoluto
Manual controlador digital absolutoworldpiscinas
 
Manual de programação introdutória
Manual de programação introdutóriaManual de programação introdutória
Manual de programação introdutóriaCélio Sousa
 
Manual do Controle duplicador tx copy 433,92 mhz
Manual do Controle duplicador tx copy 433,92 mhzManual do Controle duplicador tx copy 433,92 mhz
Manual do Controle duplicador tx copy 433,92 mhzLuiz Avelar
 
Tudo sobre placa de portão Garen G1 ou Unisystem
Tudo sobre placa de portão Garen G1 ou Unisystem Tudo sobre placa de portão Garen G1 ou Unisystem
Tudo sobre placa de portão Garen G1 ou Unisystem Luiz Avelar
 
Guia arduino iniciante multilogica ARDUINO
Guia arduino iniciante multilogica ARDUINOGuia arduino iniciante multilogica ARDUINO
Guia arduino iniciante multilogica ARDUINOChellton Almeida
 
Manual Portao Basculante Garen G1
Manual Portao Basculante Garen G1Manual Portao Basculante Garen G1
Manual Portao Basculante Garen G1Heliton Costa
 
150434001 r3 1 1 manual alarme l2004-cs e exact plus
150434001 r3 1 1 manual alarme l2004-cs e exact plus150434001 r3 1 1 manual alarme l2004-cs e exact plus
150434001 r3 1 1 manual alarme l2004-cs e exact plusGlaudson Filho
 
Manual do controlador NOVATION DICER
Manual do controlador NOVATION DICERManual do controlador NOVATION DICER
Manual do controlador NOVATION DICERHabro Group
 
Manual do piano digital FENIX DP70
Manual do piano digital FENIX DP70Manual do piano digital FENIX DP70
Manual do piano digital FENIX DP70Habro Group
 
Manual fittipaldi
Manual fittipaldiManual fittipaldi
Manual fittipaldiSenac
 
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraMinicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraPotiLivre Sobrenome
 
Manual da Pedaleira LINE 6 AMPLIFi FX100
Manual da Pedaleira LINE 6 AMPLIFi FX100Manual da Pedaleira LINE 6 AMPLIFi FX100
Manual da Pedaleira LINE 6 AMPLIFi FX100Habro Group
 
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150Habro Group
 
Manual da linha de controladores NOVATION LAAUNCH KEY MKII
Manual da linha de controladores NOVATION LAAUNCH KEY MKIIManual da linha de controladores NOVATION LAAUNCH KEY MKII
Manual da linha de controladores NOVATION LAAUNCH KEY MKIIHabro Group
 
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)Habro Group
 

Mais procurados (20)

Manual controlador digital sinergia
Manual controlador digital sinergiaManual controlador digital sinergia
Manual controlador digital sinergia
 
Manual controlador digital absoluto
Manual controlador digital absolutoManual controlador digital absoluto
Manual controlador digital absoluto
 
Brisa 4 8-plus-v3-port
Brisa 4 8-plus-v3-portBrisa 4 8-plus-v3-port
Brisa 4 8-plus-v3-port
 
Manual de programação introdutória
Manual de programação introdutóriaManual de programação introdutória
Manual de programação introdutória
 
Manual do Controle duplicador tx copy 433,92 mhz
Manual do Controle duplicador tx copy 433,92 mhzManual do Controle duplicador tx copy 433,92 mhz
Manual do Controle duplicador tx copy 433,92 mhz
 
Tudo sobre placa de portão Garen G1 ou Unisystem
Tudo sobre placa de portão Garen G1 ou Unisystem Tudo sobre placa de portão Garen G1 ou Unisystem
Tudo sobre placa de portão Garen G1 ou Unisystem
 
Manual de utilização ydm 3212
Manual de utilização ydm 3212Manual de utilização ydm 3212
Manual de utilização ydm 3212
 
Guia arduino iniciante multilogica ARDUINO
Guia arduino iniciante multilogica ARDUINOGuia arduino iniciante multilogica ARDUINO
Guia arduino iniciante multilogica ARDUINO
 
Manual Portao Basculante Garen G1
Manual Portao Basculante Garen G1Manual Portao Basculante Garen G1
Manual Portao Basculante Garen G1
 
150434001 r3 1 1 manual alarme l2004-cs e exact plus
150434001 r3 1 1 manual alarme l2004-cs e exact plus150434001 r3 1 1 manual alarme l2004-cs e exact plus
150434001 r3 1 1 manual alarme l2004-cs e exact plus
 
Manual do controlador NOVATION DICER
Manual do controlador NOVATION DICERManual do controlador NOVATION DICER
Manual do controlador NOVATION DICER
 
Manual positron1
Manual positron1Manual positron1
Manual positron1
 
Manual do piano digital FENIX DP70
Manual do piano digital FENIX DP70Manual do piano digital FENIX DP70
Manual do piano digital FENIX DP70
 
Manual fittipaldi
Manual fittipaldiManual fittipaldi
Manual fittipaldi
 
Alarme microcontrol
Alarme   microcontrolAlarme   microcontrol
Alarme microcontrol
 
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio OliveiraMinicurso Arduino com Projetos Praticos - Jotacisio Oliveira
Minicurso Arduino com Projetos Praticos - Jotacisio Oliveira
 
Manual da Pedaleira LINE 6 AMPLIFi FX100
Manual da Pedaleira LINE 6 AMPLIFi FX100Manual da Pedaleira LINE 6 AMPLIFi FX100
Manual da Pedaleira LINE 6 AMPLIFi FX100
 
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150
Manual dos Amplificadores LINE 6 AMPLIFi 75 e AMPLIFi 150
 
Manual da linha de controladores NOVATION LAAUNCH KEY MKII
Manual da linha de controladores NOVATION LAAUNCH KEY MKIIManual da linha de controladores NOVATION LAAUNCH KEY MKII
Manual da linha de controladores NOVATION LAAUNCH KEY MKII
 
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)
Manual do Órgão Eletrônico Ringway RS 400H (PORTUGUÊS)
 

Semelhante a Caderno de-atividades-1-3-versaofinal.compressed

Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetApostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetSaymon Cristian Alves Oliveira
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduinotamarasalvatori
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleNatã Barbosa
 
Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Ana Carneirinho
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoFernando Passold
 
Sistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o ArduinoSistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o ArduinoSuzana Viana Mota
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98Texas Instruments
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardFabio Souza
 
Introdução ao Arduino/Genuino
Introdução ao Arduino/GenuinoIntrodução ao Arduino/Genuino
Introdução ao Arduino/GenuinoJoão Sá
 
Roteiro de prática utilizando kit arduíno
Roteiro de prática utilizando kit arduínoRoteiro de prática utilizando kit arduíno
Roteiro de prática utilizando kit arduínoRafaelRocha658505
 
EV3#4: Exercicios com o sensor de toque
EV3#4: Exercicios com o sensor de toqueEV3#4: Exercicios com o sensor de toque
EV3#4: Exercicios com o sensor de toqueAna Carneirinho
 
Manual-de-Instrucoes-Z31Y_r0.pdf
Manual-de-Instrucoes-Z31Y_r0.pdfManual-de-Instrucoes-Z31Y_r0.pdf
Manual-de-Instrucoes-Z31Y_r0.pdfDanielMdena
 
Manual de programação placa ppa prog.pdf
Manual de programação placa ppa prog.pdfManual de programação placa ppa prog.pdf
Manual de programação placa ppa prog.pdfErivan Costa
 

Semelhante a Caderno de-atividades-1-3-versaofinal.compressed (20)

Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSetApostila Arduino - Núcleo de Estudos em Robótica SheepSet
Apostila Arduino - Núcleo de Estudos em Robótica SheepSet
 
Slide 5 - PROJETOS.pptx
Slide 5 - PROJETOS.pptxSlide 5 - PROJETOS.pptx
Slide 5 - PROJETOS.pptx
 
Ufes erus minicurso arduino
Ufes erus minicurso arduinoUfes erus minicurso arduino
Ufes erus minicurso arduino
 
Erus minicurso arduino
Erus minicurso arduinoErus minicurso arduino
Erus minicurso arduino
 
Arduino
ArduinoArduino
Arduino
 
Desafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - JoinvilleDesafio de Robótica - Católica de Santa Catarina - Joinville
Desafio de Robótica - Católica de Santa Catarina - Joinville
 
Clp exercicio
Clp  exercicioClp  exercicio
Clp exercicio
 
Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)Arduino - iniciação à linguagem C (entradas e saídas digitais)
Arduino - iniciação à linguagem C (entradas e saídas digitais)
 
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novoArduino sist u_controlados_intro_eletrica_2019_keynote_novo
Arduino sist u_controlados_intro_eletrica_2019_keynote_novo
 
ATmega Prática
ATmega PráticaATmega Prática
ATmega Prática
 
Arduino
ArduinoArduino
Arduino
 
3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino3 aula do curso de automação - Arduino
3 aula do curso de automação - Arduino
 
Sistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o ArduinoSistemas Digitais - Aula 06 - Como programar o Arduino
Sistemas Digitais - Aula 06 - Como programar o Arduino
 
Material Auxiliar Para Curso BáSico Msp430 55 A 98
Material Auxiliar Para Curso BáSico Msp430   55 A 98Material Auxiliar Para Curso BáSico Msp430   55 A 98
Material Auxiliar Para Curso BáSico Msp430 55 A 98
 
Workshop Microchip Curiosity Board
Workshop Microchip Curiosity BoardWorkshop Microchip Curiosity Board
Workshop Microchip Curiosity Board
 
Introdução ao Arduino/Genuino
Introdução ao Arduino/GenuinoIntrodução ao Arduino/Genuino
Introdução ao Arduino/Genuino
 
Roteiro de prática utilizando kit arduíno
Roteiro de prática utilizando kit arduínoRoteiro de prática utilizando kit arduíno
Roteiro de prática utilizando kit arduíno
 
EV3#4: Exercicios com o sensor de toque
EV3#4: Exercicios com o sensor de toqueEV3#4: Exercicios com o sensor de toque
EV3#4: Exercicios com o sensor de toque
 
Manual-de-Instrucoes-Z31Y_r0.pdf
Manual-de-Instrucoes-Z31Y_r0.pdfManual-de-Instrucoes-Z31Y_r0.pdf
Manual-de-Instrucoes-Z31Y_r0.pdf
 
Manual de programação placa ppa prog.pdf
Manual de programação placa ppa prog.pdfManual de programação placa ppa prog.pdf
Manual de programação placa ppa prog.pdf
 

Caderno de-atividades-1-3-versaofinal.compressed

  • 2. 2 1º Experimento Objetivo: Acender um LED com uma push button. Funcionamento: Ao se pressionar a push Button o LED deverá acender, e caso ela seja solta o LED deverá apagar. Procedimentos: (1) Monte o circuito no protoboard da maneira que segue abaixo, uma ob- servação: para essas primeiras aplicações não é necessário fonte externa, pois o próprio computador fornece energia ao Arduino, antes de ligar no computador verifique todas as ligações no- vamente; (2) Com o circuito montado e verificado conecte o Arduino na USB do computador, abra o programa e copie o código descrito na próxima página:
  • 3. 3 int Pinoled = 13; //led no pino 13 int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //Variável para ler o status do pushbutton void setup() { pinMode(Pinoled, OUTPUT); //Pino do led será saída pinMode(Botao, INPUT); //Pino com botão será entrada } void loop() { EstadoBotao = digitalRead(Botao); /* novo estado do botão vai ser igual ao que Arduino ler no pino onde está o botão. Poderá ser ALTO (HIGH)se o botão estiver Pressionado, ou BAIXO (LOW),se o botão estiver solto */ if (EstadoBotao == HIGH) //Se botão estiver pressionado (HIGH) { digitalWrite(Pinoled, HIGH); // acende o led do pino 13. } else //se não estiver pressionado { digitalWrite(Pinoled, LOW); //deixa o led do pino 13 apagado } } (3) Verifique se o código não possui erros, caso tudo esteja devidamente preparado é só pressionar o botão de gravar. É necessário que você siga to- dos os passos a risca para não correr o risco de danificar a plataforma. Para pensar... Através do primeiro experimento pense como seria o programa caso quisés- semos inverter o estado do LED, ou seja, ele só seria ligado caso a chave não estivesse pressionada, e caso contrário o LED apagaria.
  • 4. 4 2º Experimento Objetivo: Controlar 3 LED com 3 botões. Funcionamento: Iremos seguir o mesmo princípio do experimento anteri- or, mas agora com 3 LED e 3 push buttons. Cada botão irá acionar um único LED quando for pressionado, e irá desliga-lo caso contrário. Procedimentos: (1) Monte o circuito no protoboard da maneira que segue abaixo, note que o circuito será praticamente o mesmo, mas com 2 chaves e 2 LED a mais, an- tes de ligar o Arduino no computador verifique todas as ligações novamen- te;
  • 5. 5 (2) Com o circuito montado e verificado conecte o Arduino na USB do com- putador, abra o programa e copie o código descrito abaixo: int ledPin1 = 13; //Led 1 ligado no pino 13 int ledPin2 = 12 //Led 2 ligado no pino 12 int ledPin3 = 11; //Led 3 ligado no pino 11 int Botao1 = 2; //Botão 1 ligado no pino 2 int Botao2 = 3; //Botão 2 ligado no pino 3 int Botao3 = 4; //Botão 3 ligado no pino 4 int EstadoBotao1 = 0; //Botão 1 desligado int EstadoBotao2 = 0; //Botão 2 desligado int EstadoBotao3 = 0; //Botão 3 desligado void setup(){ //Configurações dos pinos pinMode(ledPin1, OUTPUT); //pino do Led 1 configurado como saída pinMode(Botao1, INPUT); //pino do botão 1 configurado como entrada pinMode(ledPin2, OUTPUT); //pino do led 2 configurado como saída pinMode(Botao2, INPUT); //pino do botão 2 configurado como entrada pinMode(ledPin3, OUTPUT); //pino do led 3 configurado como saída pinMode(Botao3, INPUT); //pino do botão 3 configurado como entrada } void loop(){ EstadoBotao1 = digitalRead(Botao1); // Lê o estado do botão 1 EstadoBotao2 = digitalRead(Botao2); // Lê o estado do botão 2 EstadoBotao3 = digitalRead(Botao3); // Lê o estado do botão 3 if (EstadoBotao1 == HIGH){ //Se o botão 1 está pressionado digitalWrite(ledPin1, HIGH); //acende o led 1 } else{ //Se não digitalWrite(ledPin1, LOW); //apaga o led 1 } if (EstadoBotao2 == HIGH){ //Se o botão 2 está pressionado digitalWrite(ledPin2, HIGH); //acende led 2 } else{ //Se não digitalWrite(ledPin2, LOW); //apaga o led 2 } if (EstadoBotao3 == HIGH){ //Se o botão 3 está pressionado digitalWrite(ledPin3, HIGH); //acende o led 3 } else{ //Se não digitalWrite(ledPin3, LOW); //apaga led 3 } }
  • 6. 6 (3) Verifique se o código não possui erros, caso tudo esteja devidamente preparado é só pressionar o botão de gravar. É necessário que você siga to- dos os passos a risca para não correr o risco de danificar a plataforma. Note que neste experimento o programa apesar de parecer mais complexo nada mais é do que uma ampliação do primeiro. Para pensar... Com base no experimento 2 altere o código para que a primeira chave, da esquerda para a direita, acenda o LED verde, a segunda o LED amarelo, e o LED vermelho só poderá ser aceso com o segundo e o terceiro botão pres- sionados ao mesmo tempo. Exercitando o conhecimento Com o conhecimento adquirido nesse encontro elabore a so- lução para os seguintes problemas: 1 – Com base no experimento 2, altere o código de programação, para que sejam trocados de lugar os pinos onde estão conectados os LED - troque para os pinos 8, 9, e 10) e as chaves - para os pinos 5, 6, 7. 2 - Você tem 4 botões e 4 LED, sendo que cada botão será responsá- vel por acender uma quantidade especifica de LED simultanea- mente, sendo o 1º botão responsável por acender o primeiro LED, o segundo botão responsável por acender os 2 primeiros LED, o terceiro botão responsável por acender os 3 primeiros LED, e o últi- mo que irá acender todos os LED. Implemente o código desse pro- grama.
  • 7. 7 3º Experimento Objetivo: Controlar 1 Led com um botão, utilizando a estrutura “while” . Funcionamento: Enquanto uma chave “push button” estiver pressionada o led se manterá aceso. Procedimentos: (1) Monte o circuito no protoboard da maneira que segue abaixo, note que o circuito será o mesmo do primeiro experimento, e o funcionamento tam- bém, com a diferença que será utilizada a estrutura “while” em vez do “if”, antes de ligar o Arduino no computador verifique todas as ligações nova- mente:
  • 8. 8 (2) Com o circuito montado e verificado conecte o Arduino na USB do com- putador, abra o programa e copie o código descrito abaixo: (3) É importante observar nesse experimento que, para podermos sair da condição “while”, é necessário alterar o valor da variável EstadoBotao den- tro do próprio “while”, pois caso contrário ele ficará em uma volta eterna. int Pinoled = 13; //led no pino 13 int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //Variável para ler o status do pushbutton void setup() { pinMode(Pinoled, OUTPUT); //Pino do led será saída pinMode(Botao, INPUT); //Pino com botão será entrada } void loop() { EstadoBotao = digitalRead(Botao); while(EstadoBotao==HIGH) { digitalWrite(Pinoled, HIGH); EstadoBotao = digitalRead(Botao); } digitalWrite(Pinoled,LOW); }
  • 9. 9 4º Experimento Objetivo: Controlar uma sequência de leds com um botão, utilizando a es- trutura “while”. Funcionamento: Enquanto uma chave “push button” estiver pressionada um conjunto de 5 leds irá se acender sequencialmente, e permanecerá acesa enquanto o botão se mantiver pressionado, caso contrário todos os leds se apagam. Procedimentos: (1) Monte o circuito no protoboard da ma- neira que segue abai- xo, e na programação iremos utilizar a fun- ção “delay();” que ser- ve para gerar uma pausa no programa, fa- remos isso para po- dermos visualizar os led se acendendo pau- sadamente, antes de ligar o Arduino no computador verifique todas as ligações nova- mente:
  • 10. 10 int l5 = 13; int l4 = 12; int l3 = 11; int l2 = 10; int l1 = 9; int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //Variável para ler o status do pushbutton void setup(){ pinMode(l1, OUTPUT); //Pino do led será saída pinMode(l2, OUTPUT); //Pino do led será saída pinMode(l3, OUTPUT); //Pino do led será saída pinMode(l4, OUTPUT); //Pino do led será saída pinMode(l5, OUTPUT); //Pino do led será saída pinMode(Botao, INPUT); //Pino com botão será entrada } void loop() { EstadoBotao = digitalRead(Botao); while(EstadoBotao==HIGH) { digitalWrite(l1, HIGH); delay(100); digitalWrite(l2, HIGH); delay(100); digitalWrite(l3, HIGH); delay(100); digitalWrite(l4, HIGH); delay(100); digitalWrite(l5, HIGH); delay(100); EstadoBotao = digitalRead(Botao); } digitalWrite(l1,LOW); digitalWrite(l2,LOW); digitalWrite(l3,LOW); digitalWrite(l4,LOW); digitalWrite(l5,LOW); }
  • 11. 11 (3) Novamente fizemos a leitura do estado do botão dentro do “while”, para podermos sair dessa estrutura quando o botão for solto. Para pensar... Dessa vez altere o código para que o led anterior apague quando o led se- guinte acender, e quando chegar no último led ele retorna ao primeiro repe- tindo a sequência.
  • 12. 12 5º Experimento Objetivo: Controlar uma sequência de leds com um botão, utilizando a es- trutura “while” e “for”. Funcionamento: O circuito será o mesmo anterior e o funcionamento tam- bém, enquanto uma chave “push button” estiver pressionada um conjunto de 5 leds irá se acender sequencialmente, e permanecerá acesa enquanto o botão se mantiver pressionado, caso contrário todos os leds se apagam. A diferença agora é que iremos utilizar a estrutura “for”, a qual deixará o pro- grama mais curto. Procedimentos: (1) Monte o circuito no protoboard da maneira que segue abaixo, e na programação iremos u- tilizar a função “delay ();” que serve para ge- rar uma pausa no pro- grama, faremos isso pa- ra podermos visualizar os led se acendendo pausadamente, antes de ligar o Arduino no com- putador verifique todas as ligações novamente:
  • 13. 13 int l5 = 13; int l4 = 12; int l3 = 11; int l2 = 10; int l1 = 9; int Botao = 2; //botao no pino 2 int EstadoBotao = 0; //Variável para ler o status do pushbutton int led; void setup() { pinMode(l1, OUTPUT); //Pino do led será saída pinMode(l2, OUTPUT); //Pino do led será saída pinMode(l3, OUTPUT); //Pino do led será saída pinMode(l4, OUTPUT); //Pino do led será saída pinMode(l5, OUTPUT); //Pino do led será saída pinMode(Botao, INPUT); //Pino com botão será entrada } void loop() { EstadoBotao = digitalRead(Botao); while(EstadoBotao==HIGH) { for(led=9; led<=13;led++){ digitalWrite(led, HIGH); delay(100); } EstadoBotao = digitalRead(Botao); } for(led=9;led<=13;led++) { digitalWrite(led, LOW); } }
  • 14. 14 (3) Repare que nosso programa diminuiu consideravelmente seu tamanho, isso devido a nova estrutura “for”, que nos permite repetir a mesma ação di- versas vezes, sem que precisemos reescrever tudo. Para pensar... Aumente seu circuito para 10 leds, e controle-os da mesma forma, mas ago- ra acionando-os com 2 botões em vez de um, ou seja, a sequencia só será a- cionada quando 2 botões estiverem pressionados ao mesmo tempo.
  • 15. 15 6º Experimento Objetivo: Acionar um buzzer variando seu som emitido, através da estrutu- ra “for”. Funcionamento: Uma variável chamada tom irá iniciar em zero, sendo ela a responsável por definir a frequência do buzzer, e irá sendo incrementada ao longo do tempo, alterando o som do mesmo.
  • 16. 16 int Buzzer = 9; int x=10; int tom = 0; void setup() { pinMode(Buzzer, OUTPUT); } void loop() { for(tom=0; tom<=1000;tom++){ digitalWrite(Buzzer, HIGH); // Liga buzzer delayMicroseconds(tom); // Espera o tempo proporcional ao comprimento de onda da nota musical em microsegundos digitalWrite(Buzzer, LOW); // Desliga buzzer delayMicroseconds(tom); // Espera o tempo proporcional ao comprimento de onda da nota musical em microsegundos if(tom==1000) { tom=0; } } }
  • 17. 17 (3) Note que dentro do for é utilizado um “if” para verificar quando a variá- vel tom chega no seu máximo, quando isso ocorre ela é reiniciada e volta a zero, colocando a frequência do buzzer em seu máximo. Para pensar... Altere o código acima para reproduzir o som do buzzer ao contrário come- çando com a frequência mínima, em vez de máxima como era o anterior, di- ca: a variável tom deve ser tratada de maneira diferente.
  • 18. 18 Oficinas Tecnológicas para alunos do Ensino Médio Prof. Dr. Leonardo Mesquita mesquita@feg.unesp.br Coordenador do Projeto Prof. Dr. Galeno José de Sena gsena@feg.unesp.br Prof. Dr. Marco Aurélio Alvarenga Monteiro marco.aurelio@feg.unesp.br Prof. José Marcelo de A. Wendling Jr. jmarcelo@feg.unesp.br Felipe Barbosa da Silva Ismael de Almeida Júnior Letícia Miranda de França Mota Renan Moura Santana Samuel José de Carvalho