• 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

[email protected] Coordenador do Projeto

Prof. Dr. Galeno José de Sena

[email protected]

Prof. Dr. Marco Aurélio Alvarenga Monteiro

[email protected]

Prof. José Marcelo de A. Wendling Jr.

[email protected]

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

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

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