Oficina de Programa¸
c˜
ao utilizando a plataforma
Arduino
Bianca Alessandra Visineski Alberton
bi.alberton@gmail.com
Paulo Nesello K¨
unzel
kruger paulo@hotmail.com
Programa de Educa¸c˜ao Tutorial
Computando Culturas em Equidade
Departamento Acadˆemico de Inform´atica
UTFPR
22 de setembro de 2012
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 () {
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 ) ;
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;}
}
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
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 ) ;
}
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;}
}