• Nenhum resultado encontrado

Oficina de Programa¸c˜ao utilizando a plataforma Arduino

N/A
N/A
Protected

Academic year: 2022

Share "Oficina de Programa¸c˜ao utilizando a plataforma Arduino"

Copied!
22
0
0

Texto

(1)

Oficina de Programa¸ c˜ ao utilizando a plataforma Arduino

Bianca Alessandra Visineski Alberton [email protected]

Paulo Nesello K¨unzel kruger [email protected]

Programa de Educa¸ao Tutorial Computando Culturas em Equidade Departamento Acadˆemico de Inform´atica

UTFPR

22 de setembro de 2012

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 1 / 13

(2)

Projeto 5: Efeito Ilumina¸ c˜ ao Sequencial

O que precisaremos?

10 LEDs vermelhos

Resistor de 220Ω ou valor aproximado

(3)

Circuito utilizado

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 3 / 13

(4)

O c´odigo esta na apostila!

O que h´a de novo? Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

(5)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 4 / 13

(6)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

(7)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 4 / 13

(8)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

(9)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array

Opera¸c˜oes

currentLED += direction ;

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 4 / 13

(10)

O c´odigo esta na apostila!

O que h´a de novo?

Vari´aveis

byte ledPin[] - Declara¸c˜ao de um array do tipobyte

ledPin[] = {4, 5, 6, 7, 8, 9, 10, 11, 12, 13};- Armazenar dados em um array

x = ledPin[5]; - Acesso ao conte´udo do Array Opera¸c˜oes

currentLED += direction ;

(11)

C´ odigo I

// P r o j e t o 5 - I l u m i n a c a o S e q u e n c i a l

// c r i a o a r r a y p a r a os t e r m i n a i s em que os L E D s e s t a o c o n e c t a d o s

b y t e l e d P i n [] = {4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 1 3 } ;

int l e d D e l a y ( 6 5 ) ; // i n t e r v a l o e n t r e as m u d a n c a s

int d i r e c t i o n = 1;

int c u r r e n t L E D = 0;

u n s i g n e d l o n g c h a n g e T i m e ;

 v o i d s e t u p () {

 // d e f i n e t o d o s os t e r m i n a i s c o m o O U T P U T

 for ( int x =0; x < 1 0 ; x ++) {

 p i n M o d e ( l e d P i n [ x ] , O U T P U T ) ;

 }

 c h a n g e T i m e = m i l l i s () ;

 }



 v o i d l o o p () {

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 5 / 13

(12)

C´ odigo II

 // se ja p a s s o u l e d D e l a y m i l i s s e g u n d o s d e s d e a u l t i m a m u d a n c a

 if (( m i l l i s () - c h a n g e T i m e ) > l e d D e l a y ) {

 c h a n g e L E D () ;

 c h a n g e T i m e = m i l l i s () ;

 }

 }



 v o i d c h a n g e L E D () {

 // d e s l i g a t o d o s os L E D s

 for ( int x =0; x < 1 0 ; x ++) {

 d i g i t a l W r i t e ( l e d P i n [ x ] , LOW ) ;

 }



 // l i g a o LED a t u a l

 d i g i t a l W r i t e ( l e d P i n [ c u r r e n t L E D ] , H I G H ) ;



(13)

C´ odigo III



 // m u d a a d i r e c a o ao c h e g a r nas e x t r e m i d a d e s

 if ( c u r r e n t L E D == 9) { d i r e c t i o n = -1;}

 if ( c u r r e n t L E D == 0) { d i r e c t i o n = 1;}

 }

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 7 / 13

(14)

Projeto 5.2: Efeito Ilumina¸ c˜ ao Sequencial - Intera¸ c˜ ao!

O que precisaremos?

Os mesmos componentes do projeto anterior mais um potenciˆometro

(15)

O c´odigo esta na apostila!

O que h´a de novo?

Fun¸c˜oes da biblioteca Arduino

ledDelay = analogRead(potPin); - Leitura de dados anal´ogicos entre 0 e 1023

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 9 / 13

(16)

O c´odigo esta na apostila!

O que h´a de novo?

Fun¸c˜oes da biblioteca Arduino

ledDelay = analogRead(potPin); - Leitura de dados anal´ogicos entre 0 e 1023

(17)

O c´odigo esta na apostila!

O que h´a de novo?

Fun¸c˜oes da biblioteca Arduino

ledDelay = analogRead(potPin); - Leitura de dados anal´ogicos entre 0 e 1023

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 9 / 13

(18)

O c´odigo esta na apostila!

O que h´a de novo?

Fun¸c˜oes da biblioteca Arduino

ledDelay = analogRead(potPin); - Leitura de dados anal´ogicos entre 0 e 1023

(19)

C´ odigo I

// C r i a o a r r a y dos t e r m i n a i s dos L E D s

b y t e l e d P i n [] = {4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 1 3 } ;

int l e d D e l a y ; // i n t e r v a l o e n t r e as m u d a n c a s

int d i r e c t i o n = 1;

int c u r r e n t L E D = 0;

u n s i g n e d l o n g c h a n g e T i m e ;

int p o t P i n = 2; // s e l e c i o n a o t e r m i n a l de e n t r a d a de d a d o s p e lo p o t e n c i o m e t r o

v o i d s e t u p () {

 // d e f i n e t o d o s os t e r m i n a i s c o m o O U T P U T

 for ( int x =0; x < 1 0 ; x ++) {

 p i n M o d e ( l e d P i n [ x ] , O U T P U T ) ;

 }

 c h a n g e T i m e = m i l l i s () ;

 }



 v o i d l o o p () {

 // le o v a l o r do p o t e n c i o m e t r o e a t r i b u i a l e d D e l a y

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 10 / 13

(20)

C´ odigo II

 l e d D e l a y = a n a l o g R e a d ( p o t P i n ) ;



 // se ja p a s s o u l e d D e l a y m i l i s s e g u n d o s d e s d e a u l t i m a m u d a n c a

 if (( m i l l i s () - c h a n g e T i m e ) > l e d D e l a y ) {

 c h a n g e L E D () ;

 c h a n g e T i m e = m i l l i s () ;

 }

 }



 v o i d c h a n g e L E D () {

 // d e s l i g a t o d o s os L E D s

 for ( int x =0; x < 1 0 ; x ++) {

 d i g i t a l W r i t e ( l e d P i n [ x ] , LOW ) ;

 }





(21)

C´ odigo III

 // i n c r e m e n t o p e l o v a l o r de d i r e c t i o n

 c u r r e n t L E D += d i r e c t i o n ;



 // m u d a a d i r e c a o ao c h e g a r nas e x t r e m i d a d e s

 if ( c u r r e n t L E D == 9) { d i r e c t i o n = -1;}

 if ( c u r r e n t L E D == 0) { d i r e c t i o n = 1;}

 }

PET - CoCE (UTFPR) Oficina de Programa¸ao 22 de setembro de 2012 12 / 13

(22)

Exerc´ıcio

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 e voltando para o centro. Veja a figura abaixo.

OBS: Utilizar o potenciˆometro ´e opcional.

Referências

Documentos relacionados

Equipamentos de emergência imediatamente acessíveis, com instruções de utilização. Assegurar-se que os lava- olhos e os chuveiros de segurança estejam próximos ao local de

• Quando o navegador não tem suporte ao Javascript, para que conteúdo não seja exibido na forma textual, o script deve vir entre as tags de comentário do HTML. &lt;script Language

Este trabalho buscou, através de pesquisa de campo, estudar o efeito de diferentes alternativas de adubações de cobertura, quanto ao tipo de adubo e época de

17 CORTE IDH. Caso Castañeda Gutman vs.. restrição ao lançamento de uma candidatura a cargo político pode demandar o enfrentamento de temas de ordem histórica, social e política

O enfermeiro, como integrante da equipe multidisciplinar em saúde, possui respaldo ético legal e técnico cientifico para atuar junto ao paciente portador de feridas, da avaliação

Ao nível municipal não são contemplados Centros de Coordenação Operacional, no entanto, de acordo com a Directiva Operacional n.º 1/2009 da Autoridade Nacional de Protecção

II - os docentes efetivos, com regime de trabalho de 20 (vinte) horas semanais, terão sua carga horária alocada, preferencialmente, para ministrar aulas, sendo o mínimo de 8 (oito)

Nos termos da legislação em vigor, para que a mensagem de correio eletrônico tenha valor documental, isto é, para que possa ser aceito como documento original, é necessário existir