$ Arduino % uma plataforma eletr&nica open-source "a'eada em (ard)are e 'oft)are de 'imple' utili*ação. +eu principal o",eti-o % a utili*ação uni-er'al da plataforma com o intuito de de'en-ol-imento de pro,eto' onde ( a nece''idade de controle de acionamento'. Atualmente e/i'tem -rio' modelo' de (ard)are e 'oft)are. 0omo o o",eti-o de''e tra"al(o % a apre'entação da arquitetura e principalmente a utili*ação da interrupção na família Arduino 'implificaremo' o tra"al(o demo'trando apena' a aplicação denominada Arduino no.
"*'* Arquitetura
$ Arduino no % uma placa que utili*a o microcontrolador ATmega328. Po''ui 14 pino' de entrada e 'aída de dado' onde podem 'er utili*ado' como 'aída' PM56 entrada' anal7gica'6 um cri'tal de 1M* de frequ9ncia de o'cilação6 cone/ão +!6 interruptor de energia6 um ca"eçal(o I0+P In-Circuit Serial Programming 5 e um "otão de reiniciali*ação. $u 'e,a6 po''ui todo o 'uporte que o microcontrolador nece''ita podendo 'er conectado de forma 'imple' a um computador atra-%' da cone/ão +!. A -er'ão no difere da' demai' porque não utili*a o c(ip :T;I +! para cone/ão 'erial !+. Para i''o6 utili*a<'e do c(ip ATmega12 programado como con-er'or +!<'erial. $ Arduino no pode 'er programado com o 'oft)are da Arduino. $ microcontrolador ATmega328 do Arduino no , po''ui um programa de iniciali*ação para o Arduino pr%>. Tam"%m % po''í-el ignorar o programa de iniciali*ação do microcontrolador atra-%' do ca"eçal(o I0+P utili*ando o Arduino I+P ou 'imilar
1
Resumindo.
Microcontrolador ....................................................ATemga328 Ten'ão de $peração ................................................? Ten'ão de @ntrada ..................................................#<12? imite de Ten'ão de @ntrada .................................. <2>? Pino' @B+ ................................................................14 com 'aída PM5 @ntrada' Anal7gica' ............................................... 0orrente contínua por @B+ ......................................4>mA 0orrente contínua para pino' de 3.3? ....................>mA Mem7ria de dado' ..................................................32=! >.=! iniciali*ação 'i't.5 +CAM .....................................................................2=! @@PC$M ................................................................1=! :requ9ncia do 0ri'tal ..............................................1M* 0omprimento ..........................................................8.mm argura ...................................................................3.4 mm Pe'o ........................................................................2g
2
Fiura " / Esquema do Arduino Uno
3
"*$* Microcontrolador A&mea$'0P
$ c(ip ATmega328P % um microcontrolador de 8 "it' "a'eado na tecnologia 0M$+ com arquitetura CI+0 Reduced Instruction Set Computer 5D alguma' da' 'ua' principai' caracterí'tica' 'ãoE 4=B8= "Fte' di'poní-el para o 'i'tema na mem7ria program-el com leitura e e'crita di'poní-el6 1="Fte' @@PC$M6 2="Fte' +CAM6 23 @B+ para prop7'ito geral6 32 regi'tradore' de prop7'ito geral6 3 Timer'B0ounter' com modo comparati-o6 interrupçGe' interna' e e/terna'6 uma 'erial program-el +ACT6 um interface 'erial de 2 "Fte'6 uma porta 'erial +PI.
Fiura ' / Esquema do Microcontrolador A&mea$'0P
4
'* +nterrup,-o na 1am2lia Arduino
@/i'tem "a'icamente doi' tipo' de interrupçGe'. $ primeiro ca'o % acionado atra-%' de um e-ento que (a"ilita a :lag de interrupçGe'. Para e''e tipo de interrupção o P0 % apontado para a po'ição atual do -etor de interrupçGe' a fim de e/ecutar a rotina que manipula a interrupção e o (ard)are *era a flag corre'pondente da interrupção. :lag' de interrupçGe' podem 'er *erada' tam"%m atra-%' de programa. +e uma 'ituação de interrupção ocorre enquanto o "it que (a"ilita a interrupção e'ti-er *erado6 a :lag de interrupção 'er (a"ilitada e memori*ada at% que a interrupção 'e,a (a"ilitada ou a flag *erada por 'oft)are. Igualmente6 'e uma condição de interrupção ocorre enquanto o "it de interrupção glo"al e'ti-er *erado a flag de interrupção corre'pondente 'er (a"ilitada e memori*ada at% que o "it de interrupção glo"al 'e,a (a"ilitado6 e a''im a interrupção 'er e/ecutada conforme 'ua ordem de prioridade. $ 'egundo tipo de interrupção 'er e/ecutado 'empre que uma condição de interrupção acontecer. Hão nece''ariamente6 e''e' ca'o' po''uem flag'. +e a condição de interrupção termina ante' da interrupção 'er (a"ilitada a interrupção não 'er e/ecutada. Hote que o regi'trador de 'tatu' não % arma*enado automaticamente quando uma rotina de interrupção % e/ecutada'6 e''a 'ituação de-e 'er pen'ada pelo 'oft)are. ;urante c(amada' de interrupçGe' ou 'u"
interrupção % 'olicitada ou finali*ada6 e''a operação de-e 'er reali*ada pelo programador. $ !it # ou I<"it do regi'trador de 'tatu' % o re'pon'-el por (a"ilitar 15 ou de'a"ilitar >5 a' interrupçGe'. $ controle de interrupçGe' indi-iduai' % manipulado atra-%' de outro regi'trador. +e o (a"ilitador glo"al de interrupçGe' e'ti-er de'a"ilitado nen(uma da' interrupçGe' podem 'er (a"ilitada' indi-idualmente. $ !it # % *erado por (ard)are ap7' a ocorr9ncia de uma interrupção6 e (a"ilitado pela in'trução C@TI para (a"ilitar interrupçGe' 'u"'equente'. $ I<"it tam"%m pode 'er (a"ilitadoBde'a"ilitado por 'oft)are atra-%' da' in'truçGe' +@I e 0I.
Fiura $ / Reistrador de Status
Fiura % / Exemplos de c3dios de interrup,-o utili4ando as instru,5es C6+ ou SE+*
$* 7ibliora1ia
[1] Arduino Uno
;i'poní-el em (ttpEBB))).arduino.ccBenBMainBArduino!oardno Ace''o >B>B2>1
[2] Datasheet do microcontrolador ATmega328P
;i'poní-el em http!!"""#atmel#com!Images!doc8$%$#pd Ace''o >B>B2>1