Você está na página 1de 27
>>m capitulo 1 Por onde comeco? Este capitulo é para o leitor que est ansioso para comecar. A sua placa nova de Arduino chegou e vocé quer que ela faca alguma coisa. Portanto, mdos 4 obra. Objetivos deste capitulo >» Explicar como energizar o Arduino. > Demonstrar a instalagao do ambiente de desenvolvimento do ‘Arduino no Windows 7, no Mac 0S Xeno Linux. > Aplicara configuracéo do ambiente do Arduino. > Demonstrar como modificar 0 Sketch Blink. > Ensinar a utilizar um resistor e um LED externo de maior poténcla, > Auxiliar no reconhecimento um protoboard. 30 projetos com Arduino >> Alimentagdo elétrica Quando vocé compra uma placa de Arduino Uno ou Leonardo, ela costuma vir com um programa Blink (Piscar) pré-instalado que fara piscar 0 pe- queno LED existente na placa. A Figura 1-1 mostra duas placas Arduino. © diodo emissor de luz (LED), assinalado com a letra L na placa, estéligado a um dos pinos de co- nexéo de entrada e saida digitals da placa. Ele esta conectado ao pino digital 13. Isso limita 0 uso do pino 13 a ser uma saida. No entanto, 0 LED conso- ‘me apenas uma pequena quantidade de corrente, cde modo que vocé ainda pode conectar outras coi- sas.a esse pino de conexio. Tudo que vocé precisa para colocar 0 seu Arduino em funcionamento é alimenté-lo com energia elé- trica. A maneira mais fécil de fazer isso & conecté-1o uma porta USB (Universal Serial Bus) do seu com- putador. Para um Arduino Uno, vocé precisard de ‘um cabo USB do tipo A-B. Esse é 0 mesmo tipo de abo que normalmente é usado para conectar um computador a uma impressora. Para um Leonardo, vocé precisaré de um conector USB do tipo micro. E Figura 1-1 Arduinos Uno e Leonardo. Fonte: do autor. Possivel que surjam algumas mensagens do seu sis- ‘tema operacional a respeito de novos dispositivos ‘ou hardware encontrados. Por enquanto, ignore-os. Se tudo estiver funcionando corretamente, o LED de- vers piscar (blink) uma vez.a cada dois segundos. Nas placas novas de Arduino, esse sketch (Blink), que faz OLED piscar, jé vem instalado e & utilizado para ve- rificarse a placa esta funcionando. Se vocé clicar no botdo de Reset, o LED deverd piscar momentanea- mente. Se esse for 0 caso e 0 LED nao piscar, ento provavelmente a placa nao veio programada com o sketch Blink (piscar). Nao se desespere pois, depois de tudo instalado, faremos modificagdes e instalare- mos esse sketch como nosso primeiro projeto, EE >> Como instalar o software ‘Agora que o Arduino esta funcionando, vamos talar 0 software de modo que possamos modificar ‘© programa Blink (piscar) e envi-lo & placa. O pro- cedimento exato depende do sistema operacional que vocé esté utilizando no seu computador. No entanto,o principio bésico é o mesmo para todos. Instale o ambiente de desenvolvimento do Ardul- no. Esse & 0 programa que vocé executa no seu computador permitindo que voce escreva sketches e transfra-os paraa placa do Arduino. Instale o driver USB que permite a comunicagao do computador com a porta USB do Arduino. Isso & usado paraa programacio eo envio de mensagens. O site do Arduino (www.arduino.cc) contém a Gl- tima versdo do software. Neste livro, usaremos a versao Arduino 1.0.2. >> Instalagéo no Windows As instrucdes seguintes sao para a instalacdo no Windows 7. 0 processo é quase 0 mesmo para 0 Windows Vista e XP.A nica parte que pode ser um. pouco trabalhosa é a instalacao dos drivers. Siga as instrugées de como baixar o arqui vo para Windows na pagina inicial do Arduino (wwwarduino.cc). Com isso, vocé baixara 0 arquivo ‘com extensdo Zip contendo o software de Arduino, como esté mostrado na Figura 1-2. € possivel que a versdo baixada do software seja mais recente do ‘que a versdo 1.0.2 mostrada (a equipe de desenvol- vimento do Arduino ainda néo atualizou o nome do arquivo Zip). Figura 1-2. Baixando o software de Arduino para Windows. Fonte:do autor. O software de Arduino nao faz distingao entre as, diversas verses de Windows. 0 arquivo baixado deve funcionar com todas as verses, de Windows XP em diante. As instrugdes seguintes sao para o Windows 7. Selecione a opgao“Salvar’ na caixa de didlogo salve 0 arquivo Zip no seu Desktop. A pasta con- tida no arquivo Zip se tomard a pasta principal de ‘Arduino, Agora descompacte o arquivo (unzip) no seu Desktop, Mais tarde, se desejar, vocé poder ‘mové-lo para algum outro local. No Windows, vocé pode fazer isso clicando no ar- uivo Zip com o botao direito. Entéo aparecerd 0 ‘menu da Figura 1-3. Em seguida selecione a opcdo “Extrair Tudo' (Extract All para abrir oassistente de extrair pastas, mostrado na Figura 1-4, Extraia os arquivos transferindo-os para o seu Desktop. Share with » G Send by Bluetooth to » Restore previous versions Send to » Figura 1-3 Aopcdo"Extrair Tudo" (Extract All) do ‘menu no Windows. Fonte: doautor Por onde comego? capitulo 1» 30 projetos com Arduino Cb tect Figura 1-4 Extraciodo arquivo Arduino no Windows. Fonte-doautor. Isso criaré uma nova pasta para essa versio de Ar- duino (no aso, 1.0.2) no seu Desktop. Se desejar, vocé poders ter diversas verses de Arduino insta- ladas a0 mesmo tempo, cada uma na sua prépria pasta, Atualizagdes do Arduino ndo séo muito frequentes e historicamente tém sempre mantido uma boa compatibilidade com versées anteriores do software. Portanto, a menos que vocé esteja tendo problemas ou que haja um novo recurso de software que vocé gostaria de utilizar, nao é essen- cial manter-se atualizado com a titima versio. ‘Agora que vocé instalou a pasta de Arduino no lu- {gar correto, precisamos instalar os drivers USB. Se voce ainda nao 0 fez, conecte 0 seu Leonardo ou Uno no seu computador. Dependendo da versio do seu Windows, poderso ocorrer algumas tentati- ‘vas nao muito ber-sucedidas por parte do seu sis- tema operacional para instalar os drivers. Simples- mente cancele essas tentativas na primeira vez que surgirem porque provavelmente nao funcionarao. Em vez disso, abra 0 Gerenciador de Dispositivos. Ele pode ser acessado de diversas maneiras, de- pendendo da sua versao de Windows. No Windows, 7, primeito voc® precisa abrir 0 Painel de Controle. A sequit selecione a opgio para ver fcones e 0 Ge- renciador de Dispositivos deverd aparecer na lista. Na seco "Outros Dispositivos;’ vocé deverd ver um icone em *Dispositivo Desconhecido” com um pe- queno triingulo amarelo de alerta. Esse icone & do seu Arduino (Figura 1-5), @ | 50/3) on as) iF intron Te tances 1.9 Rates Ras + Conan ply sere $B 00,00. 80M des + Bg Haman ote nace 2 eg MF ATAATADL centre: 1} magng dace $a Nabors PB) Mee dtr pining desc SI Mentor FB Neen aap 1h Cberdeae em pine Diver Ste abe ni AB Proce Sq Sung > Spe] — Figura 1-5 0 Gerenciador de Dispositivos do Windows. Fonte: do autor. Clique com 0 botao direito em “Dispositivo Des- conhecido”e selecione a op¢o “Atualizar Driver’. Entéo, vocé deverd escolher entre “Pesquisar au- tomaticamente software de driver atualizado” ou “Procurar software de driver no computador’. Se- lecione a segunda op¢io e navegue até “arduino- -1.0.2-windows\arduino1.0.2\drivers” (Figura 1-6). Modifique os ntimeros da versio se vocé estiver usando uma versio diferente de Arduino. Clique em “Avangar’, Poderé surgir um alerta de seguranga. Se sso ocorrer, permita a instalacdo do software. Depois da instalacao do software, apare- ceré uma mensagem de confirmago como a mos- ‘trada na Figura 1-7. Para um Leonardo, a mensa~ gem seré diferente, mas 0 procedimento ¢ idéntico. ‘Agora, 0 Gerenciador de Dispositivos deve mostrar ‘nome correto para 0 Arduino (Figura 1-8). Esse processo ¢ realizado uma tinica vez. De agora, em diante, sempre que vocé conectar a sua placa de Arduino, os seus drivers USB serio carregados automaticamente e o Arduino estard pronto para funcionar, enon nd gee cies tgeeaee 159 Gime cnt Figura 1 Fonte:do autor. Figura 1-6 Buscandoos drivers USB. Fonte: do autor. Figura 1-7. Ainstalacdo bem-sucedida do driver USB. Fonte: do autor. (0 Gerenciador de Dispositivos mostrando o Arduino. capitulo 1 > Por onde comego? 30 projetos com Arduino >> Instalagao no Mac OS X O processo de instalagao do software de Arduino ‘no Mac é bem mais facil do que no PC. Como antes, oprimeiro passo ¢ baixar 0 arquivo. No aso do Mac, é um arquivo Zip. Depois disso, clique duas vezes no arquivo Zip, do qual seré extrafdo um arquivo simples denominado “Arduino.app’. Esse arquivo contém 0 aplicativo Arduino completo. Basta arrasté-lo a sua pasta de aplicativos. ‘Agora, vocé pode localizar e executar 0 software do Arduino que esté na pasta de aplicativos. Como vocé iré usé-lo frequentemente, talvez queira clicar com 0 botdo direto no icone do Ar- duino que esté no “Dock” e ativar “Keep in Dock" (mantenha no dock). >> Instalagao no Linux Ha muitas distribuigdes diferentes de Linux, e as Instrugbes para cada distribuicio sio ligeiramente diferentes. A comunidade de Arduino tem feito um > Configurando o ambiente do seu Arduino Independentemente do tipo de computador que vocé esté usando, agora o software de Arduino jd deve estar instalado, sendo necessario fazer alguns ajustes. Vocé precisa especificar a porta serial que esta conectada a placa de Arduino e também o tipo de placa de Arduino que vocé esta utilizando. Mas, primeiro, vocé precisa conectar (seu Arduino ao computador por meio do cabo USB. Se nao fizer isso, nao serd possivel selecionar aporta serial. A seguir, execute 0 software de Arduino. No Win- dows, isso significa abrir a pasta “Arduino'e clicar no icone “Arduino” (selecionado na Figura 1-9). Se ‘vocé preferir, pode colocar um atalho na sua Area deTrabalho. Aporta serial & configurada no menu Ferramentas, ‘como mostrado na Figura 1-10 no Mace na Figura 1-11 no Windows 7 a lista de portas no Linux & similar do Mac. ‘Se vocé estiver utilizando muitos dispositivos USBs ‘ou Bluetooth no seu Mac, é provavel que, nalista de portas, haja poucas opgdes disponivels. Selecione 0 item da lista que comeca por“dev/tty.usbserial’. No Windows, a porta serial pode ser configurada ‘comumente para COM3 ou COM, dependendo do ‘que aparecer, No menu Ferramentas, agora podemos escolher a placa que seré utilizada, como mostrado na Fi- gura 1-12. SE eee ee >> Como baixar o software Para os projetos Os sketches (como sio denominados os progra- mas no mundo do Arduino) usados neste livro estao dispontveis para download na forma de um arquivo simples Zip com menos de um megabyte. Portanto, vocé pode baixar o software para todos ‘5 projetos, mesmo que vocé pretenda usar ape- nas alguns deles. Para baixé-os, acesse osite www. simonmonk.org/e siga os links de download para a segunda edicao" deste livro, Com qualquer plataforma, o software do Arduino espera encontrar todos os sketches na pasta“Meus Documentos’, dentro de um diretério denominado “Arduino, que foi criado pelo software do Arduino * N.deT: Eo livro no qual a expressio “Second edition’ ‘quase ilegivel,esté acima de"30 Arduino! vam Hetoer Wh exer mayen ite eter BDrecereraces ||] nranre uve itt efor Dive mayen wo — Fetes dw wyivren 0 eter ren byran mute eter “Biteenet rane | [J Bese aven ie Heer rae i dew nvaan wu fief Bios | ina ar a4 pooeton 9) Bogen NAVIN LR Appleton. $068 Bonen minum ste Aepeate ame |] eitesean MYA LM Aplestonetins OI compas [I Bresson maven wee TexDounet me Boonies |] Banca MNVZHD Mad Aplenion nin. $2 mormon 1h Bierce: Gino Ove meats OWAL/2012 1180 etheto Soe OE Figura 1-9 _Iniciando a execucao do Arduino no Windows. Fontecdo autor. =e capitulo 1 > Por onde comego? 30 projetos com Arduino Figura 1-11 Windows. Fonte: doautor. Configurando a porta serial no vez em que foi executado. Portanto, coloque os contetidos do arquivo Zip dentro dessa pasta, supondo que vocé jé tenha instalado o soft- ware do Arduino. Observe que os sketches so numerados por proje- toe vém em suas proprias pastas. Projeto 1 >> LED piscante Supondo que vocé jé tena instalado com sucesso ‘0 software, agora podemos iniciar 0 nosso primel- to projeto emocionante. Na verdade, ele nao é tio ‘emocionante, mas precisamos iniciar com alguma coisa e, dessa forma, poderemos verficar se confi- ‘guramos tudo corretamente e se estamos prontos para utilizar o nosso Arduino. Modificaremos o sketch Blink (piscar) de exemplo que acompanha o Arduino. Para isso, aumenta- remos a frequéncia do pisca-pisca e, em seguida, instalaremos o sketch modificado na placa do Ar- duino. Em vez de piscar lentamente, a nossa placa faré 0 LED piscar (flash) rapidamente. Em seguida, levaremos 0 projeto um paso mais adiante: utili- zaremos um resistor e um LED externo de maior poténcia no lugar do pequeno LED que vem junto na placa do Arduino. eo aa aC) Descrigio ‘Arduino Uno ou Leonardo LED vermelho de 5 mm Resistor de 27000 1/4W Protoboard Fios de conexdo (jumpers) he Na realidade, praticamente qualquer LED e re- sistor de 270 ohms comuns serdo adequados. Ondimero na coluna“Apéndice"refere-se a lis- ta de componentes disponivel no Apendice, ‘na qual estéo 0s respectivos cédigos adota- dos por diversos fornecedores. >> Software Primeiro, precisamos carregar o sketch Blink no software do Arduino. Esse sketch vem como exem- plo quando vocé instala o ambiente Arduino, Por- tanto, podemos carregé-lo utilizando o menu File (arquivo), como mostrado na Figura 1-13. O sketch serd aberto em uma janela separada (F- gura 1-14), Agora, se desejar, vocé poderé fechar a janela vazia que foi aberta quando o software do ‘Arduino comecou a ser executado. ‘A maior parte do texto desse sketch esté na forma de comentarios. Na tealidade, esses comentarios Figura 1-13 Carregando o sketch Blink. Fonte:do autor. Figura 1-14 Osketch Blink. Fonterdo autor. nao fazem parte do programa, mas explicam o que ocorre durante. execugao do programa para qual- quer pessoa que estiver lendo.o sketch. Os comentérios podem ter uma tinica linha, come- cando com // eestendendo-se até o final da mesma linha, ou podem ocupar diversas linhas, comegando com /* eterminando com */algumaslinhas depois. Se todos os comentarios de um sketch fossem re- tirados, o sketch ainda continuaria funcionando exatamente da mesma maneira, Nés incluimos 0s comentirios porque séo iiteis a qualquer pes- soa que estiver lendo o sketch tentando entender como ele funciona, Antes de comecar, é necessério uma pequena ex- plicagdo. A comunidade Arduino utiliza a palavra “sketch’ no lugar de “programa': Por essa razio, de agora em diante, tei me referir aos nossos progra- ‘mas de Arduino como sketches. Ocasionalmente, poderei me referir a “cédigo” Cédigo & um termo usado pelos programadores para fazer referéncia a ‘uma seco de um programa ou, genericamente, 20 que é escrito quando um programa é criado. Desse modo, alguém poderia dizer “Eu escrevi um pro- grama que faz aquilo’, ou poderia dizer "Eu escrevi um cédigo que faz aquilo’ Para alterara frequéncia com que o LED pisca, pre- cisamos modificar 0 valor do retardo (delay). Para isso, nos dois lugares do sketch em que temos delay (1000) ; devemos trocar 0 valor dentro dos parénteses por 200, de modo que teremos delay (200) ; Isso alterard o retardo (delay) entre o ligar e o des- ligar do LED. Esse tempo passaré de 1.000 milisse- unos (1 segundo) para 200 milissegundos (um uinto de segundo). No Capitulo 3, exploraremos ‘com mais profundidade esse sketch, Por enquanto, vamos simplesmente alterar 0 retardo e transferir (upload) o sketch para a placa de Arduino. Por onde comego? capitulo 1» 30 projetos com Arduino Com a piaca conectada ao computador, clique no botio “Upload” do software do Arduino. Isso est mostrado na Figura 1-15. Se tudo estiver funcio- nando corretamente, haveré uma pequena pausa @, em seguida, os dois LEDs vermelhos da placa piscardo de forma intermitente enquanto o sketch estiver sendo transferido (uploading) para a placa. Isso deverd levar uns 5a 10 segundos. Se isso nao ocorrer, verifique a porta serial e as configuracées do tipo de placa de Arduino que est sendo utilizado, como foi descrito nas secdes anteriores. Quando o sketch completo estiver instalado, a placa serd inicializada (reset) automaticamente e, se tudo estiver certo, vocé verd o LED da porta digital 13 co- ‘mecar a piscar mais rapidamente do que antes, >> Hardware AAté agora, parece que ainda nao trabalhamos com eletrénica de verdade, porque o hardware estava todo contido na placa do Arduino. Nesta seco, acrescentaremos um LED externo & placa, Nao podemos simplesmente aplicar uma tens3o diretamente aos LEDs. Eles devem ser conectados um resistor tador de corrente. O LED € 0 re- sistor podem ser encomendados de qualquer for- necedor de material eletrénico. Os cédigos desses ‘componentes para diversos fornecedores esto detalhados no Apéndice. Os pinos de conexo da placa do Arduino sio. projetados para ser acoplados a placas au res denominadas shields’. Entretanto, quando 0 objetivo & experimental, é possivel inserirfios ou terminais (pernas) de cada componente direta- mente neles. ‘A Figura 1-16 mostra o diagrama esquematico da ‘conexéo do LED externo. Esse tipo de diagrama esquemético usa simbolos ‘especiais para representar os componentes eletro- nicos. O LED aparece representado como uma seta grande, indicando que um diodo emissor de luz, ‘como qualquer outro diodo, permite a circulacéo de corrente apenas em um sentido. As setas pequenas Junto ao simbolo do LED indicam que ele emite luz. Meee eeoo )000UUlU—Ee Figura 1 Fonte-do autor 15 Transferindo o sketch para a placa do Arduino. Pino digital 12 Led > Vermetho > RI ‘Arduino g GND Figura 1-16 Diagrama esquemético de um LED conectado a placa do Arduino, Fonte:do autor. O resistor esté representado simplesmente como um. reténgulo. Frequentemente os resistores so mos- trados na forma de uma linha em zigue-zague. As demais linhas do diagrama representam conexdes, elétricas entre os componentes. Essas conexdes po- dem ser feitas por fios ou pelas trilhas de uma placa de citcuito impresso. Nesse projeto, essas conexdes sero 0s préprios terminals dos components. Podemos conectar 0s componentes diretamente aos pinos de conexio do Arduino, inserindo-os entre 0 pino digital 12 e pino GND (terra), mas primeiro precisamos fazer uma conexao entre um ‘terminal do LED e um do resistor. Para fazer a conexdo com 0 LED, poderemos usar qualquer um dos terminais do resistor. Entretanto, hd um modo correto de ligar 0 LED. No LED, um ter- minal é um pouco menor do que 0 outro. O termi- nal mais longo deve ser conectado ao pino digital 12, 0 mais curto deve ser conectado ao resistor. Nos LEDs e em alguns outros componentes, vale a convengao do terminal positivo ser mais longo do que o negativo. Para ligaro resistor ao terminal curto do LED, afaste culdadosamente os terminals do LED e enrosque um terminal do resistor em torno do terminal curto, do LED, como esté mostrado na Figura 1-17. Figura 1-17 Um LED conectado em série com um resistor. Fonte: do autor. AA seguir, encaixe o terminal longo do LED no pino ital 12 € 0 terminal livre do resistor em um dos dois pinos GND de conexdo. A Figura 1-18 mostra como fazer isso. Algumas vezes, pode ser ttl do- brar ligeiramente a ponta do terminal para que se eencaixe mais irmemente no pino de conexao. ‘Agora podemos modificar 0 sketch para usarmos 0 LED externo que acabamos de conectar. Tudo que precisamos fazer é alterar o sketch de modo que o pino digital 12 seja utilizado no lugar do 13 para controlar 0 LED. Para isso, modificaremos a linha int Leapin = 13; /| BD conectado ao pino digital 12 Figura 1-18 Um LED conectado & placa de Arduino, Fonte: do autor. Por onde comego? capitulo 1» 30 projetos com Arduino para int Leavin = 12; // 1D conectado ao pino digital 12 Agora, clicando no botao “Upload to 10 Board’, transfira 0 sketch do mesmo modo que vocé fez quando aumentou a frequéncia do pisca-pisca. PCE SET >> Protoboard Enroscar fios para fazer conexdes 56 é pratico em casos simples, como conectar um LED e um resis tor. Um protoboard (ou matriz de contato) permite a construgio de circuitos complexos sem necessi- dade de soldagem. De fato, é uma boa ideia pri- meito construir o citcuito em um protoboard até que funcione corretamente para, entéo, realizar as soldagens. Um protoboard constitui-se de um bloco de plast- o com ofificios e com conexdes fixadas por molas ‘metélicas. Os componentes eletrOnicos sao inseri- dos nesses orificios, também denominados conta- tos, pela parte superior. Abaixo dos orificios do protoboard, hé trilhas me- télicas que conectam entre si diversos orificios, constituindo fileiras de contatos. As fileiras apre- sentam um intervalo entre elas, de modo que cir- ‘uitos integrados do tipo DIL (dual-in-line) podem ser inseridos sem que os terminais de uma mesma fila sejam colocados em curto-circuito. Podemos construir esse projeto em um protobo- ard em vez de enroscar pernas de componentes. A Figura 1-19 mostra uma fotografia de como fazer isso. A Figura 1-20 mostra com mais clareza como ‘0s componentes séo posicionados e conectados. Voce observaré que, nas bordas do protoboard (em cima e embaixo), hé duas faixas horizontais compri- das com fileiras de orificios, Por baixo ha trilhas me- talicas de conexéo entre 0s orifcios, estando dis- postas perpendicularmente as fileiras normals de cconexéo. Essas fileiras compridas so usadas para ‘energizar os componentes do protoboard. Normal- mente, uma é para o terra (OV ou GND) e uma para a tensdo de alimentacio positiva (usualmente 5V). ‘Além do protoboard, vocé precisaré de alguns pe- dacos de fios (jumpers) para fazer conexdes (veja ‘© Apéndice). Costumam ser pedacos curtos de di versas cores e com alguns centimetros de compri- mento. So usados para realizar as conexdes entre © Arduino e o protoboard. Se quiser, vocé podera usar fio rigido e um descascador de fio ou alicate Figura 1-19 Projeto 1 montado no protoboard. Fonte-doautot Figura 1-20 A disposicio dos componentes do Projeto 1. Fonte:do autor. para descascar as pontas dos fios. £ bom dispor de a0 menos tr&s cores diferentes: vermelho para as conexdes com 0 lado positivo da alimentacao elé- trica, preto para o lado negativo e algumas outras cores (amarelo ou laranja) para as demais cone- xGes. ss0 facilita muito o entendimento do circ to, Vocé também poderd comprar fios rigidos de conexao jé preparados em diversas cores. Observe que nao é aconselhavel usar fios flexiveis porque ‘tendem a se dobrar quando sao inseridos nos orf: ios do protoboard. Podemos desenroscar os terminais do LED e do resistor, deixando-os retos para, em seguida, in- seri-os em um protoboard. 0 protoboard mais co- mum a venda tem 60 fileiras de contatos. Em nos- 05 projetos, o protoboard usado frequentemente terd 30 fileiras de contatos, sendo conhecido como ‘melo protoboard. Cada fileira tem cinco contatos, tum intervalo e mais cinco contatos. Neste livro, usaremos seguidamente esse protoboard, Se voce conseguir algo similar, faciitaré muito. A placa usada foi fornecida pela empresa AdaFruit (veja 0 ‘Apéndice). O seu tamanho e disposicéo de conta- tos sao muito comuns. See eee eee eet >> Resumo Criamos 0 nosso primeiro projeto, ainda que bem simples. No Capitulo 2, iremos nos aprofundar mais um pouco no Arduino antes de passarmos para projetos mais interessantes. capitulo 1 > Por onde comego? >>& Capitulo 2 Um passeio pelo Arduino Neste capitulo, examinaremos o hardware de uma placa de Arduino e também 0 microcontrolador, que é 0 seu coracéo. A placa serve simplesmente de suporte ao microcontrolador e estende os seus pinos até os conectores, de modo que vocé possa incluir circuitos eletrénicos e dispor de uma conexdo USB para fazer a transferéncia de sketches, etc. Também aprenderemos um poucoa respeito da linguagem C, que é utilizada para programar o Arduino programaro Arduino 6 algo quefaremos nos capitulos sequintes, quando comecarmos os trabalhos prdticos de projeto. Embora esse capitulo seja bem teérico em alguns momentos, ele Ihe ajudard a compreender como funcionam os projetos. Objetivos deste capitulo > Auxliar na dentificagéo dos componentes de uma placa de Arduino, >> Examinar as diferentes placas de Arduino. » Estudar um pouco da linguagem C. 30 projetos com Arduino >> Microcontroladores © coragdo do nosso Arduino é um microcontrola- dor. Praticamente todos os demais componentes da placa destinam-se ao fomnecimento de energia elétrica e & comunicagao como seu computador. Sendo assim, o que obtemos exatamente quando compramos um desses pequenos computadores para usar em nossos projetos? A resposta 6 que, na realidade, terios um peque- ‘no computador em um chip. Ele tem tudo que os eiros computadores pessoais continham, além de outras coisas mais. Ele contém um processador, 2.042,5 quilobytes de meméria de acesso aleatério (RAM) para guardar dados, 1 quilobyte de meméria pprogramével apagavel somente de leitura (EPROM) @ quilobytes de meméria flash para armazenar os nossos programas. £ importante perceber que se trata de quilobytes (milhares de bytes) e nao deme- gabytes (milhdes de bytes) ou gigabytes (bilhdes de bytes). A maioria dos smartphones alcanga até 1 gigabyte de meméra. Isso é meio milhao de vezes ‘mais meméria RAM do que ha em um Arduino. Na verdade, um Arduino é um dispositive muito sim- ples quando comparado com o hardware mais atual existente, Entretanto, 0 objetivo do Arduino néo é ser um hardware de ponta. O Arduino no precisa controlar uma tela de alta resolucéo ou uma rede complexa.O seu objetivo é controlar e executar ta- refas muito mais simples. Ha algo que o Arduino tem e que vocé nao encon- traré em um smartphone: pinos de entrada esaida. Esses pinos estabelecem a conexdo entre o micro- controlador e o resto da nossa eletrénica. € dessa forma que o Arduino controla coisas. As entradas podem ler dados tanto digitais (A cha- ve esté ligada ou desligada?) quanto analégicos (Qual é a tensdo em um pino?). Isso nos possibilita conectar muitos tipos diferentes de sensores de luz, temperatura, som e outros. As saidas também podem ser analégicas ou digi- tais. Assim, vocé pode fazer que um pino esteja ativado ou desativado (0 volts ou 5 volts), per- mitindo que diodos emissores de luz (LEDs) se- Jam ligados ou desligados diretamente, ou vocé pode usar a safda para controlar dispositivos com poténcias mais elevadas, como um motor. Es- ses pinos também podem fornecer uma tenséo de saida analégica, isto é, vocé pode fazer que 2 saida de um pino apresente uma dada tensio ‘em particular, petmitindo que vocé, por exemplo, ajuste a velocidade de um motor ou o brilho de uma lampada, em vez de simplesmente ligé-los ou desligé-los. SEAEEROOEDEnERESAREDEEEERESS = = >> Quais sdo os componentes de uma placa de Arduino? ‘AFigura 2-1 mostra nossa placa de Arduino - neste caso, um Arduino Uno. Vamos dar um répido pas- seio pelos varios componentes da placa. ‘Comecando na parte superior esquerda, préximo do soquete USB, esté 0 botdo de Reset (inicializa- (0). Ao clicar neste botdo, um pulso légico é en- viado ao pino Reset do microcontrolador, obrigan- do 0 microcontrolador a comecar a execugéo do programa desde o inicio ea limpar a sua memaéria. Observe que qualquer programa armazenado no dispositive seré mantido porque ele esté arma- zenado em uma meméria flash nao volati, isto é, uma memeéria que preserva seu conteido mesmo ‘quando ela nao esté energizada. >> Fonte de alimentagao ‘O Arduino pode ser energizado por meio do conec- tor USB que fica a direita, em cima, ou do soquete (jack) CC que fica mais abaixo. Quando a tagéo é feita com um adaptador CC de tensio ou ‘com baterias, um valor entre 7,5V e 12V CC deve ser fornecido através do jack. Quando 0 Arduino esté ligado, 0 LED indicador & direita no Uno (ou a esquerda no Leonardo) estaré aceso, Conector, esp2 Chave Reset Conectores de alimentagao elétrica Figura2-1 Componentes de um Arduino Uno. Fonte:do autor. >> Conexées de alimentagao elétrica A seguir, vamos examinar os pinos fémeas de co- nexao (soquetes) na parte de baixo da Figura 2-1. Fora o primeiro pino, vocé poder ler os nomes das Oprimeiro pino sem nome esté reservado para uso futuro. O préximo pino, !OREF, é usado para indi- car a tensdo em que o Arduino trabalha. 0 Uno e © Leonardo trabalham com SV. Portanto, esse pino sempre estard em SV, e nds nao o usaremos. O seu objetivo é permitit que shields acoplados a Ardui- nos de 3V, como 0 Arduino Due, detectem a tensio nna qual 0 Arduino opera, O préximo pino &0 Reset. Ele tem a mesma funcio do botio Reset (nicializar) do Arduino. Da mesma forma que reniciaizamos um computador PC inicializamos ‘omicrocontrolador. Ess inicializacéo obriga o micro- controlador a comecar a execucéo de seu programa desde 0 inicio.O pino Reset permite que vocéinicali- zeomicrocontrolador aplicando momentaneamente ‘uma tenséo de nivel lagicoalto (+5V) aesse pino. Os demais pinos dessa secéo fornecem diferentes tensées (3,3V, 5V, GND e 9V), como indicado. (eer Pinos de entrada e saida digitais LeDde poténcia Conector Entradas analogicas pino GND, ou terra (ground), significa simplesmen- te OV. Ea tensio de referéncia a qual todas as de- ‘mals tenses da placa so referidas. Neste ponto, talvez seja oportuno relembrar 0 leitor da diferenca entre tensio e corrente. No hd analogia perfeita para o comportamento dos elétrons em um fio, mas uma analogia com a égua que circula em um encanamento pode ser ttl, particularmente em termos de tensio, corrente e resistencia. A relacdo entre essas trés colsas ¢ de- nominada leide Ohm. AA Figura 2-2 resume a relacdo entre tensio, cor- rente e resisténcia. O lado esquerdo do diagrama mostra um circuito de encanamento em que a parte superior do diagrama esté mais elevada (em altura) do que a parte inferior, Nesse caso, a ten- déncia natural é a 4gua escoar de cima para baixo no diagrama. Dois fatores determina o volume de dgua que esté pasando por um ponto qualquer do circuito durante um dado interval (corrente): # Aaltura da agua (ou, se preferir, a pressdo pro- duzida pela bomba). Em eletrénica, isso equi- vale a tensa © Aresisténcia oferecida ao fluxo em razao do es- treitamento do encanamento, Um passeio pelo Arduino capitulo2 » 30 projetos com Arduino Corrente | Smetios 1 Resistencia 20 fluxo O metros Figura22 Aleide Ohm. Fonte do autor. Quanto mais potente a bomba, maior seré a altu- ra alcancada pelo bombeamento da 4gua e maior sera a corrente que fluiré no sistema. Por outro lado, quanto maior a resisténcia oferecida pelo en- canamento, maior sera a corrente. No lado direlto da Figura 2-2, podemos ver o cir- Cuito elétrico equivalente a0 nosso encanamento. Nesse caso, a corrente é, na realidade, uma medida de quantos elétrons estdo passando por um ponto durante um segundo. E, realmente, a resisténcia & a resisténcia ao fluxo de elétrons. Em vez de altura ou pressao, temios 0 conceito de tenséo. A parte de baixo do diagrama esté em OV, ou terra, e a parte de cima do diagrama mostra o valor de SV. Desse modo, a corrente (I) que citcula éa diferenca de tensao (5) dividida pela resistén- cia). Aleide Ohm costuma ser escrita como V =IR. Nor- malmente, conhecemos V e queremos calcular Rou |. Pata isso, alteramos a equagao e obtemos 1=VRouR=V/. Quando conectamos coisas ao Arduino, é muito importante fazer alguns célculos usando a lei de Ohm. Sem esses célculos, 0 Arduino poder ser danificado se vocé exigir uma corrente elevada de- mais. No entanto, geralmente as placas de Arduino v Corrente () Resisténcia () 80 muito tolerantes a algum excesso acidental ‘que venha a ocorrer, Retornando aos pinos de poténcia do nosso Ardut- no, podemos ver que a placa de Arduino fornece tensées titeis de 3,3V e 5V. Seo Arduino for alimen- tado com uma tenséo mais elevada através do jack de alimentacao elétrica, entdo essa tensdo tam- bém estaré dispontvel no pino Vin (tenséo de en- trada). Podemos usar qualquer uma dessas fontes para produzir uma corrente, desde que tomemos 0 ‘cuidado de nao fazer um curto-circuito (resisténcia nula ao fluxo). Se isso ocorresse, uma corrente po- tencialmente elevada poderia surgir e causar da- nos, Em outras palavras, énecessétio ter certeza de que a resisténcia de qualquer coisa ligada a fonte de alimentacdo elétrica tem resisténcia suficiente para impedir que circule uma corrente demasia- damente elevada. Assim como devemos aplicar corretamente as tensdes, cada um desses pinos de ‘tensdo admitiré um valor maximo de corrente. Para © pino de 3,3V, essa corrente é 50 mA (milésimos de ampere) e, apesar de no estar declarado na es- pecificacio do Arduino, esse valor provavelmente fica em torno de 300 mA para o pino de 5V. ‘As duas conexdes GND so idénticas. € bom dispor de diversos GNOs para ligar coisas. De fato, hé ou- tro pino de conexao na parte de cima da placa. >> Entradas analégicas préximo conjunto de pinos de conexéo é deno- minado “Analog In 0 to 5" (Entradas analégicas 1 a 5). Esses sels pinos podem ser usados para medir a ‘tensdo aplicada em cada um deles, permitindo que esses valores possam ser usados em um sketch. Observe que mediremos uma tenséo e no uma corrente. Como essas entradas tém uma resistén- cia interna muito elevada, a corrente que entra e vai paraa terra é muito pequena. ‘Mesmo que sejam entradas analégicas, esses pinos também podem ser usados como entradas ou sai- das digitais, mas, por default,* essas entradas so analégicas. Diferente do Uno, o Leonardo também pode usar 08 pinos digitais 4, 6, 8, 9, 10 e 12.como entradas analégicas, >> Conexées digitais ‘Agora passaremos para a barra de conexao da par- te de cima, comecando pelo lado direito (Figura 2-1), Aqui encontramos pinos denominados ‘Digi- tal 0to 13" (Digital 0a 13). Eles podem ser usados como entradas ou como saidas. Quando usados como safdas, eles se comportam como as tenses de alimentagao elétrica, discutidas anteriormente, exceto que agora todas sao de SV e podem ser liga- das ou desligadas a partir de um sketch. Assim, se vocé ligé-las em seu sketch, elas ficaréo com SV. Se vocé desligé-las, elas ficardo com OV. Como no caso das conexées de alimentacao elétrica, vocé deve tomar cuidado para néo ultrapassar as correntes maximas permitidas. * N.de'T: Por default é uma expresséo utlizada para indicar uma stuacéo que serésubentendida e adotada se nada hou- ver em contrtio. No caso, os pinos sero automaticamente considerados anal6gicos porque nada fo deciarado em con- wari, dizendo que os pinos so dightas. Essas conexdes podem fornecer 40 mA com SV. sso é mais do que suficiente para acender um LED comum, mas é insuficiente para acionar direta- mente um motor elétrico. Como exemplo, vamos ver como conectar um LED a um desses pinos digits. Para isso, vamos voltar 20 Projeto 1 do Capitulo 1. Para lembrar, a Figura 2-3 mostra o diagrama es- quemitico do acionamento do LED que usamiosno Capitulo 1. Se 0 LED nao fosse usado com o resistor ‘mas fosse ligado diretamente entre o pino 12 €0 pino GND, entéo, quando vocé ligasse (SV) 0 pino ital 12, vocé queimaria 0 LED, destruindo-o. |ss0 ocorre porque os LEDs tém uma resisténcia muito baixa. Isso causara uma corrente muito ele- vada, a ndo ser que sejam protegidos por meio de um resistor para limitar a corrente. ‘Um LED precisa em torno de 10 mA para brilhar de forma razodvel. Arduino pode fornecer 40 mA, de modo que nao haveré problema desde que esco- Ihamos um valor adequado de resistor. Independentemente de quanta corrente circula em um LED, ele apresenta a propriedade interes- sante de sempre haver em torno de 2V entre seus terminais. Podemos usar esse fato e a lei de Ohm Pino digital 12 > uD Vermelho ial Ri Arduino ¢ GND Figura2-3_LEDe resistor em série. Fonte: do autor. Um passeio pelo Arduino capitulo2 » 30 projetos com Arduino para calcular o valor correto do resistor que deverd ser usado, Sabemos que (pelo menos quando estéligado) 0 pino de saida fornece SV. Acabamos de dizer que, Tio LED, a queda de tensdo serd 2V, sobrando 3V (5 ~ 2) para o resistor limitador de corrente. Que- remos que a corrente no crcuito seja 10 mA. Desse ‘modo, 0 valor do resistor deverd ser R=V/ R=3V/10mA R=3V/0,01A R=300 ohms Os resistores estdo dispor nizados. O valor mais prés ‘ohms. Isso significa que, em vez de 10 mA, a cor- rente seré, na realidade, l=vr 1=3/270 1511111 mA Esses valores ndo so cruciais e, provavelmente, 0 LED estaria igualmente bem com qualquer valor entre 5 e 30 mA. Assim, 270 ohms funcionariam tao bem quanto 220 ou 330 ohms. Podemos também configurar um desses pinos digitais como entrada. Nesse caso, ele funcio- naré de forma similar a uma entrada anal6gica, embora indique apenas se a tensao no pino est acima de um determinado limiar (cerca de 2,5¥) oundo, Alguns dos pinos digitais (3, 5, 6, 9, 10 € 11) s8o, acompanhados pelas letras "PWM". Eles podem ser usados para fornecer uma saida variavel em vez de simplesmente 5V ou nada. ‘Na Figura 2-1, no lado esquerdo da barra de pinos superior, hd outro pino de conexio GND e um pino denominado AREF, que pode ser usado para ajus- tara faixa de leitura das entradas analégicas. Neste livro, ele nfo serd usado. 0 pino digital 13 também esta ligado a um LED co- nhecido como LED L. >> Microcontrolador Continuando 0 nosso passeio pela placa do Ar- duino, © microcontrolador é o dispositivo retan- gular preto com 28 pinos. Ele é encaixado em um soquete do tipo DIL (dual-in-line), podendo ser substituido facilmente. 0 microcontrolador de 28 pinos usado em um Arduino Uno é o ATmega328. ‘Amaior diferenca entre o Uno eo Leonardo (Figura 2-4) 6 que 0 Leonardo tem um microcontrolador soldado de forma permanente na superficie da placa. Isso dlficulta muito a substituicao do micro- controlador quando deixa de funcionar. (O Leonardo funciona com uma versao diferente de microcontrolador, No Leonardo, 0 circuito de inter- face USB faz parte do microcontrolador, ao passo que, no Uno, esse circuito é externo, ‘Assim, a placa do Leonardo tem menos compo- nentes e, por essa razo, custa menos. A Figura 2-5 mostra um diagrama de blocos com as caractersti- ‘cas do microcontrolador ATmega328. O coracio, ou talvez mais adequadamente o cére- bro, do dispositive & a unidade central de proces- samento (UCP). Ela controla tudo que acontece dentro do dispositive. A UCP busca as instrucées de programa armazenadas na meméria flash e as ‘executa, Isso pode significar buscar dados na me- méria de trabalho (RAM), modificé-los e depois, armazené-los de volta. Pode também significar al- terar as saidas digitais de OV para SV. ‘A meméria programavel apenas de leitura eletri ‘camente apagével (EEPROM*) é similar & meméria flash por nao ser volatil. sso significa que voc8 pode desligare ligar 0 dispositive sem que ele esqueca 0 ‘que esté armazenado na EEPROM. Se o objetivo da * N.deT.:A sigla EEPROM ver da expressio Electrically era- sable programmable read only memory. Figura2-4 0 Arduino Leonardo. Fonte:do autor. UART (interface serial de dados) RAM 2 Kbytes (meméria de trabalho) Meméria Flash 32 Kbytes EEPROM 1 Kbytes uce (meméria nao volatil) Portas entrada/saida Figura2-5 0 diagrama de biocos do ATmega328. Fonte:do autor. ‘memiéria lash 6 armazenar instrugdes de programa (dos sketches), 0 da EEPROM é armazenar dados ue voce nao quer perder no caso de ocorrer uma Inicializacdo (Reset) ou falta de energia elétrica. © microcontrolador do Leonardo ¢ similar, ex- ceto que sua RAM tem 2,5 quilobytes em vez de 2quilobytes. >> Outros componentes ‘A esquerda e um pouco acima do microcontrola- dor hé um componente retangular prateado. E um oscilador de cristal de quartzo. Ele oscila 16 mi- Ihées de vezes por segundo e, em cada uma dessas oscilagdes, 0 microcontrolador pode executar uma operacao - como soma, subtracéo, etc. Um passeio pelo Arduino capitulo2 » 30 projetos com Arduino Aditeita e um pouco acima do mictocontrolador esta ‘oconector de programagao serial (conectorICSP).Ele Coferece um outro meio de programar o Arduino sem usar a porta USB. Entretanto, como jé dispomos de ‘uma conexéo USB e software para usé-la de forma conveniente, nds ndo faremos uso do conector ICSP. ‘esquerda na parte de cima da placa, préximo do conector USB, esto crcuito integrado de interface USB. Ele converte os niveis dos sinais USB padroni- zados em niveis que podem ser usados diretamen- te pela placa do Arduino. eee >> A familia Arduino E util conhecer um pouco as diversas placas de Ar- duino, Usaremos 0 Uno ou Leonardo na maioria de rnossos projetos. Entretanto, também trabalhare- ‘mos um pouco com o Arduino Lilypad, uma placa bem interessante. © Lilypad (Figura 2-6) é uma placa de Arduino de ouca espessura que pode ser costurada nas ves- timentas para ser usada em aplicacdes conhecidas como computacio vestivel (wearable computing). Como ele no tem uma conexéo USB, e vocé deve usar um adaptador separado para programé-lo. 0 Figura 2-6 0 Arduino Lilypad. Fonte-doautor. seu visual é excepcionaimente bonito. Inspirados ‘em sua aparéncia de relégio, nés 0 usaremos no Projeto 29 (Reléaio com Lilypad). No outro extremo do espectro esta 0 Arduino Mega. Essa placa tem um processador mais répido, ‘com mais meméria e com um numero maior de pi- nos de entrada e saida, De forma engenhosa, 0 Arduino Mega também pode usar shields construfdos para o Uno €0 Leo- nardo, 0s quais s8o encaixados na frente do Mega cde modo tal que permite acesso 8 sua barra dupla adicional de pinos de conexéo. Somente os proje- ‘tos mais exigentes realmente necessitam de um ‘Arduino Mega. Prosseguindo, temos 0 Arduino Due. Essa placa de ‘Arduino tem 0 mesmo tamanho da placa do Ardui- no Mega, mas tem um processador muito mais po- tente, com 96 quilobytes de RAM e com 512 mega- bytes de meméria flash. Seu relégio funciona em 84 MHzem vez de em 16 MHz.como no Uno. SEE Eee Steet eo >> Alinguagem C Muitas linguagens so usadas para programar os microcontroladores, desde a linguagem Assembly, voltada ao hardware, até as linguagens oréficas de programacio, como Flowcode. 0 Arduino localiza-se ‘emalgum lugar entre esses dois extremos e usa alin- ‘guagem de programacao C. Entretanto, ele faz uma simplificago na linguagem C, ocultando parte de sua complexidade. Isso facilita comecar a programat. ‘Alinguagem C, em termos de computaco, é uma antiga e venerdvel linguagem. Ela é bem adequa- da a programacdo de microcontrolador porque fot inventada em uma época em que um computador 9, comparado com os monstros atuais, tinha poucos recursos. E facil aprender a linguagem C. Os programas cria- dos com ela podem ser compilados, obtendo-se um édigo de méquina eficiente que ocupa um espaco equeno na meméria limitada do nosso Arduino. >> Um exemplo ‘Agora vamos examinar o sketch do Projeto 1 mais, detalhadamente. A listagem desse sketch para fa- zer piscar um LED é mostrada a seguir. Vocé pode ignorar todas as linhas que comecam com // ou blocos de linhas que comecam com /* e terminam com */, porque sio linhas de comentario que ndo ‘tém efeito algum sobre o programa e esto no ske- tchsimplesmente para fomnecer informacbes sobre © programa. int ledpin = 13; /I LED conectado ao pino digital 23 void setup() { inode (LedPin, OUTPUT) ; ) void loop) { digitalWrite(ledPin, HIGH) ; If agar 0 LED delay (2000) ; 11 esperar un segundo digitalWrite (leavin, L0W); // éesligar 0 LED delay (1000) ; 11 esperar un segundo ‘Também é uma boa ideia incluir comentarios para descrever um trecho complicado de cédigo ou qualquer coisa que exija alguma explicacéo. Oambiente de desenvolvimento do Arduino utiliza algo denominado compilador, que converte 0 pro- rama escrito em C para 0 cédigo de maquina que sera executado no microcontrolador. ‘Na primeira linha de cédigo, temos int ledpin = 13; Essa linha de cédigo dé um nome 20 pino de saida digital que usaremos para conectar 0 LED. Se vocé examinar com cuidado a placa do Arduino, veré 0 pino de conexio 13 entre GND eo pino 12 na barra superior de pinos de conexao. A placa do Arduino tem um pequeno LED jé soldado e conectado a0. pino 13. Para fazer o LED piscar, ficaremos trocando a tensdo desse pino entre os valores OV e SV. Daremos um nome para o pino de modo que seja facil mudé-10 e renomeé-o, Vocé pode ver no ske- tch que nés nos referimos ao pino ledPin. € possi- vel que voce tenha preferido usar o pino 12e0 LED externo que foram utilizados com seu protoboard ‘no Capitulo 1. Mas, por enquanto, assumiremos que vocé esta utiizando 0 LED da placa conectado ao pino 13, Voce pode notar que nés nao escrevemos simples- ‘mente (com letras mintisculas) ded pin = 13; |sso é assim porque os compiladores sé muito exigentes e precisos sobre a forma como 0s pro- > Variaveis e tipos de dados Jé encontramos a varidvel ledPin e a declaramos como sendo do tipo int. A maioria das varidveis, que vocé usard em seus sketches serd provavel- mente do tipo int. Uma variavel int armazena um ntimero dentro do intervalo de -32.768 a +32.767. Cada ntimero armazenado com esse tipo utiliza apenas 2 bytes dos 1024 disponiveis para armazenamento em um Arduino. Se esse intervalo no for suficiente, voc8 poderé usar uma varidvel do tipo long (longa), que utiliza 4 bytes para cada numero. Uma varidvel long per- mite um intervalo de valores de -2.147.483.648, 242.147.483.647. Na maioria das vezes, uma varidvel int estabelece ‘um bom equilfbrio entre preciso e uso de meméria. Se vocé é iniciante em programacéo, sugirimos que vocé use int em quase tudo e que, gradativa- ‘mente, amplie 0 seu repertério de tipos de dados 8 ‘medida que sua experiéncia crescer. Outros tipos de dados disponiveis para vocé esto, resumidos na Tabela 2-1. ‘Algo a ser considerado é que, se 0s tipos de dados ultrapassarem as suas falxas de valores vilidos, coi ‘sas estranhas acontecerao. Ass variavel do tipo byte com o valor 255 e adicionar 1, © resultado sera 0. Mais surpreendente, se vocé ti- ver uma variével int com o valor 32.767 e adicionar 1,0 resultado serd o valor negativo ~32.768. Até voce conhecer bem esses diferentes tipos de dados, recomendamos que voce fique com o tipo int porque funciona com praticamente qualquer coisa. >> Aritmética Nao é comum, em um sketch, precisar fazer opera- Ges aritméticas complexas. Ocasionalmente, voce precisaré ajustar a faixa de leitura de, digamos, uma entrada analégica para converté-la em tem- Um passeio pelo Arduino capitulo2 » 30 projetos com Arduino Tabela 2-1 >» Tipos de dados em C Tipo Intervalo Observacées boolean 1 Verdadeito ou falso (0. ou 1) char 1 128 até +128 Usado para representar um cédigo de ca- ractere ASCII (por exemplo, A é represen- tado como 65). Normalmente, nesse caso, ‘05 ntimeros negativos nao séo usados. byte Oaté 255 int 2 32.768 até +32.767 unsigned int 2 0até65.536 Pode ser usado para ter uma preciso ‘extra quando nao ha necessidade de nd- meros negativos. Use com cautela, porque ‘as operagdes aritméticas com o: podem produzir resultados inesperados. long 4 ~2.147.483.648 até Necessério apenas para representar ni- 2.147.483.647 meros muito grandes. unsigned long 4 Date 4.294.967.295 Veja unsigned int. float 4 ~3,4028235E+38 até +3,40282356+38 double 4 Comofloat Normalmente, seriam 8 bytes com uma preciso mais elevada que float e um in- tervalo de representacdo maior. No Ardui- ‘no, entretanto, 60 mesmo que float. Fonte: do autor. peratura ou, mais comumente, acrescentar 1 auma variavel de contagem. Quando vocé realiza um célculo, vocé precisa atri- buir o resultado desse calculo a uma variavel. As linhas seguintes de cédigo contém duas atribui- ‘gées. A primeira atribui varidvel y 0 valor 50, ea segunda atribui a variével x o valor de y + 100. y= 50; xy +100; >> Strings Quando os programadores falam de strings, eles estéo se referindo a uma sequéncia de caracteres, ‘como a frase muito usada “Hello World” (Alé Mun- do). No mundo do Arduino, ha duas situagdes em que vocé pode querer usar strings: quando vocé esté escrevendo mensagens para exibir em um display LCD ou quando vocé esté enviando dados seriais de texto por meio da conexdo USB. si fe sintaxe: 195 S40 criadas usando a segt chart message = "Hello World" ‘A palavra char* indica que a variével message (mensagem) é um apontador de caractere. Por en- ‘quanto, nao precisamos entender bem como isso funciona, Esse assunto voltaré a ser tratado mais adiante neste liv, quando olharmos como fazer interface com displays LCD de texto, >> Comandos condicionais Os comandos condicionais sao um meio de tomar decis6es em um sketch. Por exemplo, 0 seu sketch poderé ligar 0 LED se o valor da varidvel tempera- tura cair abaixo de um certo limiar. O cédigo paraiso é: if (temperature < 15) { digitalWrite(ledrort, HIGH) ; } Alinha ou linhas de cédigo entre as chaves serao executadas apenas se a condicéo apés a palavra- -chave “if (se) for verdadeira, A condicao tem que estar contida dentro de pa- rénteses, e 6 0 que os programadores denor nam uma expressdo l6gica. Uma expressao légica € como uma expresso matematica que sempre deve ter um valor entre dois possiveis: verdadeiro, ou falso. A seguinte expressao sera verdadeira se o valor da variével temperatura for menor que 15: [temperature < 15) ‘como <, vocé ter @ >=. Para ver se dois ntimeros so iguais, vocé pode usar ==, e para ‘estar se no so iguais, vocé pode usar Desse modo, a expresso a seguir retornaria o va- lor verdadeito sea varidvel temperatura tivesse um valor que fosse qualquer coisa exceto 15: [temperature != 15) Vocé também pode construir condigées comple- 1xas usando os denominados operadores Idgicos. Os. principals operadores s80 88 (e) e || (ou). ‘Assim, um exemplo para ligar 0 LED se a tempera- tura for menor que 15 ou maior que 20 seré: AE ({temperature < 15) || (temperature > 20)) { digitalwrite (LedPort, IGE); } Frequentemente, quando usamos 0 comand if, podemos querer fazer uma coisa se a condicao for verdadeira e outra diferente se for falsa. Voce pode fazer isso usando a palavra-chave else" (se- ‘ndo) como mostrado no exemplo a seguit. Obser- ve 0 uso de parénteses aninhados para expressar claramente os argumentos que participam da operaco“ou'. Af ((temperature < 15) || (temperature > 20)) { GigitalWrite(ledPort, HIGH) ; } else { GigitalWrite(1edPort, LOM) ; } ee >> Resumo Neste capitulo, exploramos 0 hardware do Arduino € revisamos os nossos conhecimentos de eletréni- caclementar. Iniciamos também a nossa exploracao da lingua- gem C de programagéo. Nao se preocupe se voce achou um pouco dificil. Quando nao se conhece muito a eletrénica, hé muito para ser aprendido. ‘Mesmo que tenha sido explicado como tudo fun- clona, vocé deve ficar completamente a vontade para comecar de imediato a construgéo dos pro- jetos e deixar a teoria para depois quando vocé j estiver mais bem preparado. Um passeio pelo Arduino capitulo2 » 30 projetos com Arduino Sevocé quiser aprender mais sobre a programacao do Arduino em C, consulte o livro Programagao com Arduino: comecando com sketches (publicado pela Bookman Editora), deste autor. No Capitulo 3, iremos nos deparar com a progra- mago do nosso Arduino e embarcaremos em al- ‘guns projetos mais s

Você também pode gostar