oficina de programação utilizando a plataforma arduino · adapte o programa desta aula para que...
TRANSCRIPT
![Page 1: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/1.jpg)
Oficina de Programacao utilizando a plataformaArduino
Bianca Alessandra Visineski [email protected]
Paulo Nesello Kunzelkruger [email protected]
Programa de Educacao TutorialComputando Culturas em Equidade
Departamento Academico de InformaticaUTFPR
22 de setembro de 2012
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 1 / 13
![Page 2: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/2.jpg)
Projeto 5: Efeito Iluminacao Sequencial
O que precisaremos?
10 LEDs vermelhos
Resistor de 220Ω ou valor aproximado
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 2 / 13
![Page 3: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/3.jpg)
Circuito utilizado
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 3 / 13
![Page 4: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/4.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 5: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/5.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 6: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/6.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 7: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/7.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 8: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/8.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 9: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/9.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 10: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/10.jpg)
O codigo esta na apostila!
O que ha de novo?
Variaveis
byte ledPin[] - Declaracao de um array do tipo byte
ledPin[] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13; - Armazenar dados emum array
x = ledPin[5]; - Acesso ao conteudo do Array
Operacoes
currentLED += direction ;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 4 / 13
![Page 11: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/11.jpg)
Codigo I
// Projeto 5 - Iluminacao Sequencial
// cria o array para os terminais em que os LEDs estao
conectados
byte ledPin [] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13;
int ledDelay (65); // intervalo entre as mudancas
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
void setup ()
// define todos os terminais como OUTPUT
for (int x=0; x<10; x++)
pinMode(ledPin[x], OUTPUT);
changeTime = millis ();
void loop()
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 5 / 13
![Page 12: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/12.jpg)
Codigo II
// se ja passou ledDelay milissegundos desde a
ultima mudanca
if (( millis () - changeTime) > ledDelay)
changeLED ();
changeTime = millis ();
void changeLED ()
// desliga todos os LEDs
for (int x=0; x<10; x++)
digitalWrite(ledPin[x], LOW);
// liga o LED atual
digitalWrite(ledPin[currentLED], HIGH);
// incremento pelo valor de direction
currentLED += direction;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 6 / 13
![Page 13: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/13.jpg)
Codigo III
// muda a direcao ao chegar nas extremidades
if (currentLED == 9) direction = -1;
if (currentLED == 0) direction = 1;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 7 / 13
![Page 14: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/14.jpg)
Projeto 5.2: Efeito Iluminacao Sequencial -Interacao!
O que precisaremos?
Os mesmos componentes do projeto anterior mais um potenciometro
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 8 / 13
![Page 15: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/15.jpg)
O codigo esta na apostila!
O que ha de novo?
Funcoes da biblioteca Arduino
ledDelay = analogRead(potPin); - Leitura de dados analogicos entre0 e 1023
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 9 / 13
![Page 16: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/16.jpg)
O codigo esta na apostila!
O que ha de novo?
Funcoes da biblioteca Arduino
ledDelay = analogRead(potPin); - Leitura de dados analogicos entre0 e 1023
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 9 / 13
![Page 17: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/17.jpg)
O codigo esta na apostila!
O que ha de novo?
Funcoes da biblioteca Arduino
ledDelay = analogRead(potPin); - Leitura de dados analogicos entre0 e 1023
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 9 / 13
![Page 18: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/18.jpg)
O codigo esta na apostila!
O que ha de novo?
Funcoes da biblioteca Arduino
ledDelay = analogRead(potPin); - Leitura de dados analogicos entre0 e 1023
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 9 / 13
![Page 19: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/19.jpg)
Codigo I
// Cria o array dos terminais dos LEDs
byte ledPin [] = 4, 5, 6, 7, 8, 9, 10, 11, 12, 13;
int ledDelay; // intervalo entre as mudancas
int direction = 1;
int currentLED = 0;
unsigned long changeTime;
int potPin = 2; // seleciona o terminal de entrada de
dados pelo potenciometro
void setup ()
// define todos os terminais como OUTPUT
for (int x=0; x<10; x++)
pinMode(ledPin[x], OUTPUT);
changeTime = millis ();
void loop()
// le o valor do potenciometro e atribui a ledDelay
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 10 / 13
![Page 20: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/20.jpg)
Codigo II
ledDelay = analogRead(potPin);
// se ja passou ledDelay milissegundos desde a
ultima mudanca
if (( millis () - changeTime) > ledDelay)
changeLED ();
changeTime = millis ();
void changeLED ()
// desliga todos os LEDs
for (int x=0; x<10; x++)
digitalWrite(ledPin[x], LOW);
// liga o LED atual
digitalWrite(ledPin[currentLED],HIGH);
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 11 / 13
![Page 21: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/21.jpg)
Codigo III
// incremento pelo valor de direction
currentLED += direction;
// muda a direcao ao chegar nas extremidades
if (currentLED == 9) direction = -1;
if (currentLED == 0) direction = 1;
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 12 / 13
![Page 22: Oficina de Programação utilizando a plataforma Arduino · Adapte o programa desta aula para que os os LED’s sejam acessos dois a dois, come˘cando do centro, indo at e as extremidades](https://reader035.vdocuments.co/reader035/viewer/2022070805/5f0389c37e708231d4098c69/html5/thumbnails/22.jpg)
Exercıcio
Adapte o programa desta aula para que os os LED’s sejam acessos dois adois, comecando do centro, indo ate as extremidades e voltando para ocentro. Veja a figura abaixo.OBS: Utilizar o potenciometro e opcional.
PET - CoCE (UTFPR) Oficina de Programacao 22 de setembro de 2012 13 / 13