• Nenhum resultado encontrado

Caderno de Atividades 1

N/A
N/A
Protected

Academic year: 2021

Share "Caderno de Atividades 1"

Copied!
18
0
0

Texto

(1)

Caderno de

Atividades 1

(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

Referências

Documentos relacionados

em efeitos superiores, contudo, considerando-se a realização do experimento apenas no Rio Grande do Sul e as particularidades de cada região produtiva, a extrapolação dos

índice de lucratividade (IL), para cultivares de coentro consorciado com rabanete em função de diferentes doses de jitirana mais esterco bovino incorporado ao solo

SENSOR DE

O emprego de um estimador robusto em variável que apresente valores discrepantes produz resultados adequados à avaliação e medição da variabilidade espacial de atributos de uma

Usando essa técnica, você não precisará ler o texto inteiro para conseguir apreender as informações de cunho geral, como por exemplo: quem, quando, onde e como; mas apenas

Note on the occurrence of the crebeater seal, Lobodon carcinophagus (Hombron &amp; Jacquinot, 1842) (Mammalia: Pinnipedia), in Rio de Janeiro State, Brazil.. On May 12, 2003,

E ele funciona como um elo entre o time e os torcedores, com calçada da fama, uma série de brincadeiras para crianças e até área para pegar autógrafos dos jogadores.. O local

A Seqüência de Três Níveis oferece um quadro mais amplo de uma situação e pode ser útil para fazer perguntas a respeito da situação de pessoas que não estão fisicamente