MULTILGICA
SHOP
ndice
ndice 2 Prefcio 5 A Multilgica-Shop 6 O Que Vou Aprender? 7 Objetivo 7 Fonte de Informao 8 Segurana e Cuidados 9 1 Conceitos Bsicos 10
1.1 Computao Fsica 11 1.2 Open Source Hardware 12 1.3 Software Livre 13 1.4 Arduino 14 1.5 Processing 15 1.6 Fritzing 16 1.7 Creative Commons 17 1.8 Licena da Obra 18
2 Eletrnica 20
2.1 Conceito de Eletrnica 21 2.2 Voltagem 22 2.3 Corrente Eltrica 22 2.4 Corrente Contnua 23 2.5 Corrente Alternada 23 2.6 Resistncia 24 2.7 Lei de Ohm 24 2.8 Sistemas Eletrnicos 25 2.9 Entradas 25 2.10 Sadas 25
multilogica-shop.com
2.11 Processamento de Sinal 26 2.12 Resumo dos Sistemas Eletrnicos 26 2.13 Sinais Eletrnicos 27 2.14 Varivel Digital 27 2.15 Varivel Analgica 28 2.16 Entrada/Sada Digital 29 2.17 Entrada/Sada Analgica 29 2.18 Divisor de Voltagem 30 2.19 Conversor Analgico-Digital 30 2.20 Modulao por Largura de Pulso PWM 31 2.21 Comunicao Serial 31
3 Componentes Eletrnicos 32
3.1 Microcontrolador 33 3.2 Protoboard 34 3.3 Resistor 35 3.4 Termistor 36 3.5 Diodo 36 3.6 Transistor 37 3.7 Capacitor 38 3.8 LED 39 3.9 LED RGB 39 3.10 Display de LCD 40 3.11 Boto 41 3.12 Reed Switch 41 3.13 Potencimetro 42 3.14 Fotoclula 42 3.15 Transdutor Piezoeltrico 43 3.16 Motor CC 43 3.17 Rel 44
4 Arduino 45
4.1 O Projeto Arduino 46 4.2 Arduino Uno R3 47
multilogica-shop.com
5 Instalao de Software 51
5.1 Arduino em Windows 52 5.2 Arduino em Mac OS X 57 5.3 Arduino em Linux 63
6 Programao 64
6.1 Conceito de Programao 65 6.2 Linguagem de Programao 66 6.3 Linguagem de Mquina 67 6.4 Linguagem Assembly 67 6.5 Linguagem de Alto Nvel 68 6.6 Algoritmo 68
7 Programao Arduino 69
7.1 Software Arduino 70 7.2 Programando o Arduino 75
multilogica-shop.com
Prefcio
A Multilgica-Shop, a partir do Guia del Arduino criado pela Tienda de Robtica da Colombia, traz este guia que aborda a aprendizagem sobre o conceito DIY (Do it yourself) ou em portugs Faa voc mesmo. A partir de um detalhado estudo elaboramos o Kit Arduino Iniciante, baseado na placa Arduino Uno R3, base para todo este material didtico. Neste guia abordaremos temas fundamentais como o hardware e software livre, revisando de maneira cuidadosa o projeto Arduino e usando como base o software Fritzing para realizar montagens claras e semelhantes realidade. No necessrio que voc saiba de eletrnica ou programao porque 5 multilogica-shop.com
com os prximos captulos repassaremos os conceitos fundamentais. Aps conhecer estes temas bsicos teremos um captulo dedicado a explicar componentes eletrnicos como um LED, um motor, um rel e muito mais. Tambm foi desenvolvido um captulo especial sobre Arduino e Fritzing que voc no pode perder. O Kit Arduino Iniciante e este guia so ideais para todo mbito de aprendizagem desde o colgio at a universidade, e se voc se dedica por hobby no pode deixar de ter este guia, j que um captulo completo est dedicado a mostrar todo o kit. Finalmente chegamos a uma parte mais que especial, ao captulo dos tutoriais,
onde passo a passo sero explicados alguns exemplos, durante os quais voc encontrar perguntas, dicas e exerccios.
A Multilgica-Shop
MULTILGICA
SHOP
A Multilgica foi fundada em 1990 com foco em tecnologia e desenvolvimento. Em 2009 iniciou uma nova etapa com a importao de produtos Open Source e marcas relacionadas de grande expressividade internacional. O Arduino sempre foi um dos principais objetivos e com ele centenas de produtos hoje fazem parte do catlogo virtual da loja. A qualidade no servio e a ateno ao cliente sempre estiveram entre nossos 6 multilogica-shop.com
principais objetivos, por conta disso possumos o catlogo mais completo do Brasil no setor e mantemos a meta de atender aos mais exigentes consumidores e desenvolvedores. Hoje, depois de milhares de cliente atendidos, apresentamos o Guia Iniciante do Arduino. Aproveitem a leitura!
Objetivo
Conhecer o funcionamento das coisas algo que estimula nossa curiosidade desde o incio dos tempos. Hoje em dia vemos uma realidade onde encontramos com facilidade a automao, a domtica (automao de casas e edifcios), a interao entre pessoas e mquinas, a eletrnica, a mecnica e a programao. Quase qualquer processo que podemos imaginar
tem uma porcentagem de dependncia destas mquinas. Por exemplo, seu despertador. Ele tocou s 6 horas da manh para que voc fosse para a escola ou o trabalho. Essa mquina trabalhou durante toda a noite para, ao final, avisar que era hora de despertar. O propsito deste guia abordar o conceito de computao fsica, que a capacidade de interao
e comunicao de uma mquina com os humanos, usando sensores e atuadores. As decises sero executadas pelo microcontrolador que o ncleo da placa Arduino, o corao deste material.
Muitas vezes pensamos que os temas tecnolgicos pedem uma grande habilidade tcnica e um grande conhecimento, mas isso no verdade. Nosso objetivo com este
guia fazer com que esses processos tecnolgicos sejam simples de entender, e demonstrar que aqueles mais complexos na verdade so a unio de vrios processos simples.
Com este guia voc vai aprender conceitos que poder aplicar em seus prprios projetos.
multilogica-shop.com
Fonte de Informao
A Wikipedia uma enciclopdia na nuvem onde voc pode encontrar grande variedade de informao em diferentes idiomas e de uso livre. Neste guia incorporamos contedo da Wikipedia (textos e imagens) com o objetivo de explicar os diversos conceitos que abordamos. O contedo da Wikipedia utilizado neste guia foi traduzido diretamente em alguns casos, e em outros os conceitos foram reeditados para explicar mais facilmente uma ideia. Wikipedia uma plataforma de contedo livre, de modo que todo o texto est disponvel sob a licena Creative
Commons (Atribuio Compartilhamento pela mesma Licena - by-sa). A maior parte do contedo tambm est disponvel sob a Licena de Documentao Livre GNU (GFDL). Isso significa que o contedo Wikipedia pode ser distribudo de acordo com o estabelecido nestas licenas.
multilogica-shop.com
Segurana e Cuidados
Sua rea de trabalho um espao muito importante para desenvolver seus projetos Arduino. Trabalhe sempre em um ambiente tranquilo e bem iluminado e mantenha sua bancada sempre limpa e seca. Cuidado ao trabalhar com qualquer tipo de circuito impresso como o prprio Arduino. As conexes destas placas so expostas, portanto, no apoie sua placa em suportes condutores e tenha cuidado com cabos desencapados nas proximidades. Embora estas situaes possam causar curtos circuitos elas no oferecem riscos fsicos devido s baixas voltagens e potncias envolvidas. Lembre-se, voc no vai se machucar, mas destruir uma placa sempre frustrante. Os produtos do site, bem como os kits destinados a iniciantes, so apenas bases para a compreenso dos princpios de funcionamento dos diversos elementos envolvidos. Sendo assim, a Multilgica-Shop no se responsabiliza por mal uso dos produtos, impercia ou falha prtica na execuo dos experimentos. No se responsabiliza pela aplicao em equipamentos de terceiros, pelo uso comercial de qualquer experimento ou informao contida, bem como insucesso ou lucros cessantes de qualquer natureza. No recomenda e no d anuncia em testes com animais, no corpo humano e em suporte de vida. No se responsabiliza por, e no recomenda o uso em transporte de cargas suspensas. No se responsabiliza por acidentes ou ferimentos que possam advir de experimentos com quaisquer de nossos produtos. E no recomenda e desencoraja o manuseio de tenses diretas da rede de distribuio eltrica.
multilogica-shop.com
1 Conceitos Bsicos
10
multilogica-shop.com
A computao fsica significa a construo de sistemas interativos fsicos mediante o uso de software e hardware que integrados podem sentir e responder ao mundo analgico. Embora esta definio seja ampla o suficiente para englobar aspectos como os sistemas inteligentes de controle de trfico de automveis ou os processos de automatizao em fbricas, em um sentido mais amplo a computao fsica uma estrutura criativa para a compreenso da relao entre os seres humanos e o mundo digital. Na prtica, frequentemente este termo descreve desenhos de projetos DIY ou objetos que utilizam sensores e microcontroladores para traduzir entradas analgicas a sistemas baseados em software, ou controlar dispositivos eletromecnicos como motores, servos, iluminao ou outro hardware. 11 multilogica-shop.com
Outras implementaes de computao fsica trabalham com o reconhecimento de voz, que captam e interpretam as ondas sonoras atravs de microfones ou outros dispositivos de deteco de ondas sonoras, tambm a viso por computador, que aplica algoritmos aos vdeos detectados por algum tipo de cmera. Interfaces tteis so tambm um exemplo de computao fsica.
O prototipado (criar montagens rpidas com ajuda de uma protoboard e componentes bsicos de eletrnica) tem um papel importante na computao fsica. Ferramentas como o Arduino e o Fritzing so teis para designers, artistas, estudantes e hobistas porque ajudam a elaborar prottipos rapidamente.
Open Source Hardware consiste em dispositivos fsicos de tecnologia concebidos e oferecidos pelo movimento de design aberto. Tanto o software livre como o open source hardware so criados sob o movimento de cultura open source e aplica este conceito a uma variedade de componentes. O termo normalmente significa que a informao sobre
o hardware facilmente reconhecida. O design no hardware (ou seja, desenhos mecnicos, esquemas, lista de materiais, dados de layout do PCB, cdigo fonte e dados de layout de circuitos integrados), alm do software livre que aciona o hardware, esto todos liberados com a abordagem livre e open source. Anualmente a Open Source Hardware Association organiza a conferncia Open-Hardware Summit, da qual a Multilgica-Shop patrocinadora, que a primeira conferncia abrangente do mundo sobre hardware aberto, um espao para discutir e chamar a ateno para este movimento em rpido crescimento.
12
multilogica-shop.com
Software livre o software que distribudo juntamente com o seu cdigo-fonte, e liberado sob os termos que garantem aos usurios a liberdade de estudar, adaptar/modificar e distribuir o software. O software livre muitas vezes desenvolvido em colaborao entre programadores voluntrios como parte de um projeto de desenvolvimento de software open source. A Free Software Foundation considera um software como livre quando atende aos quatro tipos de liberdade para os usurios: Liberdade 0: A liberdade para executar o programa, para qualquer propsito; Liberdade 1: A liberdade de estudar o software; Liberdade 2: A liberdade de redistribuir cpias do
programa de modo que voc possa ajudar ao seu prximo; Liberdade 3: A liberdade de modificar o programa e distribuir estas modificaes, de modo que toda a comunidade se beneficie. Os usurios deste tipo de software so livres porque no precisam pedir permisso e no esto vinculados a licenas proprietrias restritivas. A Open Source Initiative (OSI) - Iniciativa pelo Cdigo Aberto - uma organizao dedicada a promover o software de cdigo aberto ou software livre. Ela foi criada para incentivar uma aproximao de entidades comerciais com o software livre. Sua atuao principal a de certificar quais licenas se enquadram como licenas de software livre,
e promovem a divulgao do software livre e suas vantagens tecnolgicas e econmicas. A OSI, assim como muitos membros da comunidade, considera que o software , em primeiro lugar, uma ferramenta, e que o mrito dessa ferramenta deve ser julgado com base em critrios tcnicos. Para eles, o software livre no longo prazo economicamente mais eficiente e de melhor qualidade e, por isso, deve ser incentivado. Alm disso, a participao de empresas no ecossistema do software livre considerada fundamental, pois so as empresas que viabilizam o aumento no desenvolvimento, implantao e uso do software livre.
13
multilogica-shop.com
1.4 Arduino
Arduino uma plataforma de eletrnica aberta para a criao de prottipos baseada em software e hardware livres, flexveis e fceis de usar. Foi desenvolvida para artistas, designers, hobistas e qualquer pessoa interessada em criar objetos ou ambientes interativos. O Arduino pode adquirir informao do ambiente atravs de seus pinos de entrada, para isso uma completa gama de sensores pode ser usada. Por outro lado, o Arduino pode atuar no ambiente controlando luzes, motores ou outros atuadores. Os campos de atuao para o controle de sistemas so imensos, podendo ter aplicaes na rea de impresso 3D, robtica, 14 multilogica-shop.com
engenharia de transportes, engenharia agronmica, musical, moda e tantas outras. O microcontrolador da placa Arduino programado mediante a linguagem de programao Arduino, baseada em Wiring, e o ambiente de desenvolvimento (IDE) est baseado em Processing. Os projetos desenvolvidos com Arduino podem ser executados mesmo sem a necessidade de estar conectados a um computador, apesar de que tambm podem ser feitos comunicando-se com diferentes tipos de software (como Flash, Processing ou MaxMSP). As placas podem ser feitas a mo ou compradas montadas de fbrica. O
download do software pode ser feito de forma gratuita e os desenhos da placa esto disponveis sob uma licena aberta, assim voc tambm livre para adapt-lo s suas necessidades. www.arduino.cc
1.5 Processing
Processing uma linguagem de programao de cdigo aberto e ambiente de desenvolvimento integrado (IDE), construdo para as artes eletrnicas e comunidades de projetos visuais com o objetivo de ensinar noes bsicas de programao de computador em um contexto visual. O projeto foi iniciado em 2001 por Casey Reas e Ben Fry, ambos ex-membros do Grupo de Computao do MIT Media Lab. Um dos objetivos do Processing atuar como uma ferramenta para no-programadores iniciados com a programao, atravs da satisfao imediata com um retorno visual.
15
multilogica-shop.com
1.6 Fritzing
Fritzing um programa de automao de design eletrnico open source destinado a ajudar designers e artistas a passar dos prottipos (utilizando, por exemplo, placas de teste) para os produtos finais. Fritzing foi criado sob os princpios de Processing e Arduino e permite a designers, artistas, pesquisadores e amadores documentar seu prottipo baseado em Arduino e criar diagramas de circuitos impressos para mais tarde fabricar. Alm disso, tem um site complementar que ajuda a compartilhar e discutir projetos, experincias e reduzir os custos de fabricao.
16
multilogica-shop.com
A CC uma organizao no governamental sem fins lucrativos localizada na California, voltada a expandir a quantidade de obras criativas disponveis, atravs de suas licenas que permitem a cpia e compartilhamento com menos restries que o tradicional todos direitos reservados. As licenas Creative Commons foram idealizadas para permitir a padronizao de declaraes de vontade no tocante ao licenciamento e distribuio de contedos culturais em geral (textos, msicas, imagens, filmes e outros), de modo a facilitar seu compartilhamento e recombinao, sob a gide de uma filosofia copyleft. Creative Commons tem sido abraada por muitos 17 multilogica-shop.com
criadores de contedo, pois permite controle sobre a maneira como sua propriedade intelectual ser compartilhada.
Este guia est sob uma licena Creative Commons. Voc tem o direito de: Compartilhar - reproduzir, distribuir e transmitir este trabalho Adaptar este trabalho De acordo com as seguintes condies: Atribuio - Tem de fazer a atribuio do trabalho, da maneira estabelecida pelo autor ou licenciante (mas sem sugerir que este o apoia, ou que subscreve o seu uso do trabalho). No Comercial - No pode usar este trabalho para fins comerciais. Compartilha Igual - Se alterar ou transformar este trabalho, ou criar um trabalho baseado neste trabalho, s pode distribuir o trabalho resultante licenciando-o com a mesma licena ou com uma licena semelhante a esta. No entendimento de que:
18
multilogica-shop.com
Renncia - Qualquer uma das condies acima pode ser renunciada pelo titular do direito de autor ou pelo titular dos direitos conexos, se obtiver deste uma autorizao para usar o trabalho sem essa condio. Domnio Pblico - Quando a obra ou qualquer dos seus elementos se encontrar no domnio pblico, nos termos da lei aplicvel, esse estatuto no de nenhuma forma afetado pela licena. Outros Direitos - A licena no afeta, de nenhuma forma, qualquer dos seguintes direitos: Os seus direitos de uso legtimo (fair dealing ou fair use) concedidos por lei, ou outras excees e limitaes aplicveis ao direito de autor e aos direitos conexos; Os direitos morais do autor; Direitos de que outras pessoas possam ser titulares, quer sobre o trabalho em si, quer sobre a forma como este usado, tais como os direitos de publicidade ou direitos de privacidade. Aviso Em todas as reutilizaes ou distribuies, tem de deixar claro quais so os termos da licena deste trabalho. A melhor forma de faz-lo colocando um link para esta pgina.
19
multilogica-shop.com
2 Eletrnica
20
multilogica-shop.com
Numa definio mais abrangente, podemos dizer que a eletrnica o ramo da cincia que estuda o uso de circuitos formados por componentes eltricos e eletrnicos, com o objetivo principal de representar, armazenar, transmitir ou processar informaes alm do controle de processos e servo mecanismos. Sob esta tica, tambm se pode afirmar que os circuitos internos dos computadores, os sistemas de telecomunicaes, os diversos tipos de sensores e transdutores esto, todos, dentro da rea de interesse da eletrnica. Divide-se em analgica e em digital porque suas coordenadas de trabalho optam por obedecer
estas duas formas de apresentao dos sinais eltricos a serem tratados. Tambm considerada um ramo da eletricidade que, por sua vez, um ramo da Fsica onde se estudam os fenmenos das cargas
eltricas elementares, as propriedades e comportamento do eltron, ftons, partculas elementares, ondas eletromagnticas, etc.
21
multilogica-shop.com
2.2 Voltagem
Tenso eltrica, tambm conhecida como diferena de potencial (DDP) ou voltagem, a diferena de potencial eltrico entre dois pontos ou a diferena em energia eltrica potencial por unidade de carga eltrica entre dois pontos. Sua unidade de medida o volt, ou joules por coulomb. A diferena de potencial igual ao trabalho que deve ser feito por unidade de carga contra um campo eltrico para se movimentar uma carga qualquer. Um voltmetro pode ser utilizado para se medir a diferena de potencial entre dois pontos em um sistema, sendo que usualmente um ponto referencial comum o terra. A tenso eltrica pode ser causada por campos eltricos estticos, por uma corrente eltrica sob a ao de um campo magntico, por campo magntico variante ou uma combinao dos trs.
22
multilogica-shop.com
Corrente contnua, corrente direta, corrente galvnica ou ainda corrente constante (CC ou DC do ingls direct current) o fluxo ordenado de eltrons sempre numa direo. Esse tipo de corrente gerado por baterias de automveis ou de motos (6, 12 ou 24V), pequenas baterias (geralmente de 9V), pilhas (1,2V e 1,5V), dnamos, clulas solares e fontes de alimentao de vrias tecnologias, que retificam a corrente alternada para produzir corrente contnua. Normalmente utilizada
multilogica-shop.com
2.6 Resistncia
Resistncia eltrica a capacidade de um corpo qualquer se opor passagem de corrente eltrica mesmo quando existe uma diferena de potencial aplicada. medida em ohms (). Resistores so componentes que tm por finalidade oferecer uma oposio passagem de corrente eltrica, atravs de seu material. A essa oposio damos o nome de resistncia eltrica. Causam uma queda de tenso em alguma parte de um circuito eltrico, porm jamais causam quedas de corrente eltrica, apesar de limitar a corrente. Isso significa que a corrente eltrica que entra em um terminal do resistor ser exatamente a mesma que sai pelo outro terminal, porm h uma queda de tenso. Utilizando-se disso, possvel usar os resistores para controlar a tenso sobre os componentes desejados.
24
multilogica-shop.com
2.9 Entradas
As entradas, ou inputs, so sensores eletrnicos ou mecnicos que tomam os sinais (em forma de temperatura, presso, umidade, contato, luz, movimento, ph, etc.) do mundo fsico e converte em sinais de corrente ou voltagem. Exemplos de entradas so sensores de gs, temperatura, pulsadores, fotoclulas, potencimetros, sensores de movimento, e muitos mais.
2.10 Sadas
As sadas, ou outputs, so atuadores, ou outros dispositivos que convertem os sinais de corrente ou voltagem em sinais fisicamente teis como movimento, luz, som, fora ou rotao, entre outros. Exemplos de sadas so motores, LEDs ou sistemas de luzes que acendem automaticamente quando escurece ou um buzzer que gere diversos tons.
25
multilogica-shop.com
Como exemplo imaginamos um aparelho de TV. A entrada um sinal recebido por uma antena ou um cabo. Os circuitos integrados do interior do aparelho extraem a informao sobre brilho, cor e som deste sinal. Os dispositivos de sada so a tela LCD, que converte os sinais eletrnicos em imagens visveis, e as caixas de som, que emitem o som. Outro exemplo pode ser um circuito que controle a temperatura de um ambiente. Um sensor de temperatura e um circuito integrado so os responsveis por converter um sinal de entrada em um nvel de voltagem apropriado. Se a temperatura registrada do ambiente muito alta, este circuito enviar a informao a um motor para que este ligue um ventilador que resfriar o local. 26 multilogica-shop.com
Tambm chamadas de variveis discretas, se caracterizam por ter dois estados diferentes e portanto tambm podem ser chamadas de binrias (em lgica seria valores Verdadeiro (V) e Falso (F), ou poderiam ser 1 ou 0 respectivamente). Um exemplo de um sinal digital o interruptor da campainha da sua casa, porque ele tem somente dois estados, pulsado e sem pulsar.
Apagado 0 27 multilogica-shop.com
Aceso 1
So aquelas que podem tomar um nmero infinito de valores compreendidos entre dois limites. A maioria dos fenmenos da vida real so sinais deste tipo (som, temperatura, luminosidade, etc.). Um exemplo de sistema eletrnico analgico de um palestrante, que se preocupa em amplificar o som da sua voz para que seja escutado por uma grande audincia. As ondas de som que so analgicas na sua origem so capturadas por um microfone e convertidas em uma pequena variao analgica de tenso, denominada sinal de udio.
28
multilogica-shop.com
Entrada Boto
Sada LED
Entrada LDR
Sada Motor DC
Entrada Potencimetro
29
multilogica-shop.com
30
multilogica-shop.com
31
multilogica-shop.com
3 Componentes Eletrnicos
32
multilogica-shop.com
3.1 Microcontrolador
Um microcontrolador um circuito integrado programvel, capaz de executar as ordens gravadas em sua memria. Um microcontrolador possui em seu interior trs unidades funcionais principais: unidade central de processamento, memria e perifricos de entrada e sada. Os microcontroladores se diferenciam dos processadores pois, alm dos componentes lgicos e aritmticos usuais de um microprocessador de uso geral, o microcontrolador integra elementos adicionais em sua estrutura interna, como memria de leitura e escrita para armazenamento de dados, memria somente de leitura para armazenamento de programas, EEPROM para armazenamento permanente de dados, dispositivos perifricos como conversores analgico/ 33 multilogica-shop.com
digitais (ADC), conversores digitais/analgicos (DAC) em alguns casos; e, interfaces de entrada e sada de dados. So geralmente utilizados em automao e controle de produtos e perifricos, como sistemas de controle de motores automotivos, controles remotos, mquinas de escritrio e residenciais, brinquedos, sistemas de superviso, etc. Por reduzir o tamanho, custo e consumo de energia, e se comparados forma de utilizao de microprocessadores convencionais, aliados a facilidade de desenho de aplicaes, juntamente com o seu baixo custo, os microcontroladores so uma alternativa eficiente para controlar muitos processos e aplicaes.
3.2 Protoboard
uma placa reutilizvel usada para construir prottipos de circuitos eletrnicos sem solda. Uma protoboard feita por blocos de plstico perfurados e vrias lminas finas de uma liga metlica de cobre, estanho e fsforo.
Conexes internas.
34
multilogica-shop.com
3.3 Resistor
um componente formado por carbono e outros elementos resistentes usados para limitar a corrente eltrica em um circuito. Por seu tamanho muito reduzido, invivel imprimir nos resistores as suas respectivas resistncias. Optou-se ento pelo cdigo de cores, que consiste em faixas coloridas no corpo do resistor indicadas como a, b, c e % de tolerncia. As primeiras trs faixas servem para indicar o valor nominal de suas resistncia e a ltima faixa, a porcentagem na qual a resistncia pode variar seu valor nominal, conforme a seguinte equao: R = (10a + b) x 10c % da tolerncia Exemplo: Um resistor de 2.700.000 (2,7M), com uma tolerncia de 10% seria representado pela figura.
Smbolo
1 cifra: vermelho (2) 2 cifra: violeta (7) Multiplicador: verde (105) Tolerncia: prata (10%)
35
multilogica-shop.com
3.4 Termistor
Smbolo
O termistor NTC (do ingls Negative Temperature Coefficient) um componente eletrnico semicondutor sensvel temperatura, utilizado para controle, medio ou polarizao de circuitos eletrnicos. Possui um coeficiente de variao de resistncia que varia negativamente conforme a temperatura aumenta, ou seja, a sua resistncia eltrica diminui com o aumento da temperatura.
3.5 Diodo
Smbolo
o tipo mais simples de componente eletrnico semicondutor. um componente que permite que a corrente atravesse somente em um sentido.
36
multilogica-shop.com
Smbolo
3.6 Transistor
utilizado principalmente como amplificador, interruptor de sinais eltricos e como retificador eltrico em um circuito. O termo provm do ingls transfer resistor (resistor/ resistncia de transferncia), como era conhecido pelos seus inventores. O processo de transferncia de resistncia, no caso de um circuito analgico, significa que a impedncia caracterstica do componente varia para cima ou para baixo da polarizao prestabelecida. Graas a esta funo, a corrente eltrica que passa entre coletor (C), base (B) e emissor (E) do transistor varia dentro de determinados parmetros pr-estabelecidos e processa a amplificao de sinal. Entende-se por amplificar o procedimento de tornar 37 multilogica-shop.com
um sinal eltrico mais fraco num mais forte. Um sinal eltrico de baixa intensidade, como o sinal gerado por um microfone, injetado num circuito eletrnico (transistorizado por exemplo), cuja funo principal transformar este sinal fraco gerado pelo microfone em sinais eltricos com as mesmas
caractersticas. A este processo todo d-se o nome de ganho de sinal. Atualmente os transistores se encontram em todos os aparelhos de uso domstico e cotidiano: rdios, televises, gravadores, aparelhos de som, microondas, lavadoras, carros, calculadores, impressoras, celulares, etc.
3.7 Capacitor
Smbolo
O capacitor um dispositivo eltrico capaz de armazenar cargas eltricas. Em circuitos eletrnicos alguns componentes necessitam que haja alimentao em corrente contnua, enquanto a fonte est ligada em corrente alternada. A resoluo deste problema um dos exemplos da utilidade de um capacitor. Este elemento capaz de armazenar energia potencial eltrica durante um intervalo de tempo, e construdo utilizando um campo eltrico uniforme. Um capacitor composto por duas peas condutoras, chamadas armaduras e um material isolante com propriedades especficas chamado dieltrico.
38
multilogica-shop.com
3.8 LED
Smbolo O LED (Light Emitting Diode) um diodo que emite luz quando energizado. Os LEDs apresentam muitas vantagens sobre as fontes de luz incandescentes como um consumo menor de energia, maior tempo de vida, menor tamanho, grande durabilidade e confiabilidade. O LED tem uma polaridade, uma ordem de conexo. Ao conect-lo invertido no funcionar corretamente. Revise os desenhos para verificar a correspondncia do negativo e do positivo. So especialmente utilizados em produtos de microeletrnica como sinalizador de avisos. Tambm muito utilizado em painis, cortinas e pistas de led. Podem ser encontrados em tamanho maior, como em alguns modelos de semforos ou displays.
multilogica-shop.com
Um display de cristal lquido, ou LCD (liquid crystal display), um painel fino usado para exibir informaes por via eletrnica, como texto, imagens e vdeos. Um LCD consiste de um lquido polarizador da luz, eletricamente controlado, que se encontra comprimido dentro de celas entre duas lminas transparentes polarizadoras. Suas principais caractersticas so leveza e portabilidade. Seu baixo consumo de energia eltrica lhe permite ser utilizado em equipamentos portteis, alimentados por bateria eletrnica. Um display de LCD pode variar o nmero de linhas e caracteres por linha, a cor dos caracteres e a cor do fundo, assim como ter ou no backlight. Os modelos com backlight possuem melhor visualizao.
40
multilogica-shop.com
3.11 Boto
Um boto, ou pulsador, utilizado para ativar alguma funo. Os botes so em geral ativados ao serem pulsados. Um boto em um dispositivo eletrnico funciona geralmente como um interruptor eltrico. No seu interior h dois contatos, e se um dispositivo normalmente fechado ou normalmente aberto, ao pulsar o boto, se ativar a funo inversa que se est realizando no momento.
Smbolo
Smbolo 41 multilogica-shop.com
Um potencimetro uma resistncia cujo valor varivel. Desta maneira, indiretamente, pode-se controlar a intensidade de corrente que flui por um circuito se est conectado em paralelo, ou controlar a voltagem ao conect-lo em srie. So adequados para uso como elemento de controle em aparelhos eletrnicos. O usurio o aciona para variar os parmetros normais de funcionamento. Um exemplo o boto de volume de um rdio.
3.13 Potencimetro
Smbolo
3.14 Fotoclula
O LDR (Light Dependant Resistor) uma resistncia cujo valor em ohms varia de acordo com a luz incidente. Uma fotoclula apresenta um baixo valor de resistncia na presena de luz e um alto valor na sua ausncia. Pode ser encontrada em vrios artigos de consumo, como por exemplo em cmaras, medidores de luz, relgios com rdio, alarmes de segurana ou sistemas de iluminao pblica.
Smbolo 42 multilogica-shop.com
Smbolo
3.16 Motor CC
O motor de corrente contnua (CC) uma mquina que converte a energia eltrica em mecnica provocando um movimento rotatrio. Esta mquina de corrente contnua uma das mais versteis. Seu fcil controle de posio, pausa e velocidade a convertem em uma das melhores opes em aplicaes de controle e automao de processos. Por exemplo, pode-se encontrar na trao de carros de brinquedo a pilhas ou nas rodas de um rob.
Smbolo
43
multilogica-shop.com
3.17 Rel
um interruptor eletromecnico usado para ligar ou desligar dispositivos. Quando uma corrente circula pela bobina interna, esta cria um campo magntico que atrai um ou uma srie de contatos fechando ou abrindo circuitos. Ao cessar a corrente da bobina o campo magntico tambm cessa, fazendo com que os contatos voltem para a posio original.
Smbolo
44
multilogica-shop.com
4 Arduino
45
multilogica-shop.com
O projeto Arduino comeou no ano de 2005 com o objetivo de criar um dispositivo para estudantes que oferecesse controle integrado de projetos de design e interao, e que fosse mais econmico que os sistemas de criao de prottipos disponveis at o momento. O que chamamos hoje de Arduino (o microcontrolador) nasceu na cidade italiana de Ivrea. Nesta mesma cidade nos sculos X e XI houve um outro Arduino (um nobre) que se auto proclamou rei de toda a Itlia, obviamente a coisa no funcionou e, como era comum na poca, ele foi morto pelos rivais. O fato que em sua cidade natal ele ainda muito lembrado, a avenida principal da cidade se chama Via Arduino bem como muitos comrcios locais. Enquanto viviam l, os integrantes do time que criou o Arduino (o microcontrolador), depois do expediente iam tomar uma cerveja. Onde? No Bar Arduino. Assim o nome do Arduino (o microcontrolador) uma homenagem ao Arduino (o bar) que por sua vez era uma homenagem ao outro Arduino (o nobre). O projeto Arduino foi desenvolvido por Massimo Banzi, David Cuartielles, Tom Igoe, Gianluca Martino e David Mellis. Est baseado em uma plataforma de cdigo aberta chamada Wiring, criada pelo artista colombiano Hernando Barragn durante uma tese de um master no Interaction Design Institute Ivrea. Por outro lado, Wiring est baseado em Processing e seu entorno de desenvolvimento integrado foi criado por Casey Reas e Ben Fry.
No acredito que o Arduino existiria sem Wiring, e no acredito que Wiring existiria sem Processing. E que Processing sem dvida no existiria sem Design by Numbers e John Maeda. Entrevista a Casey Reas e Ben Fry, Shiffman Daniel (Set/2009)
46
multilogica-shop.com
1 - Conector USB para o cabo tipo AB 2 - Boto de reset 3 - Pinos de entrada e sada digital e PWM 4 - LED verde de placa ligada 5 - LED laranja conectado ao pin13 6 - ATmega encarregado da comunicao com o computador 7 - LED TX (transmissor) e RX (receptor) da comunicao serial 8 - Porta ICSP para programao serial 9 - Microcontrolador ATmega 328, crebro do Arduino 10 - Cristal de quartzo 16Mhz 11 - Regulador de voltagem 12 - Conector fmea 2,1mm com centro positivo 13 - Pinos de voltagem e terra 14 - Entradas analgicas
47
multilogica-shop.com
Arduino Esplora
Arduino Pro
Arduino FIO V3
Arduino LilyPad
Arduino Mini 05
Arduino Micro
48
multilogica-shop.com
Arduino ProtoShield R3
Shield GPS
Shield WiFly
Wireless SD Shield
49
multilogica-shop.com
4.5 Livros
Vrias edies em portugus e em ingls esto disponveis, tanto para voc comear seus estudos com a plataforma Arduino, como para ampliar seus conhecimentos.
50
multilogica-shop.com
5 Instalao de Software
51
multilogica-shop.com
1 - Placa Arduino e um cabo USB AB Este tutorial serve para instalao das placas Arduino Uno, Arduino Duemilanove, Nano, Arduino Mega 2560 ou Diecimila. Para outras placas da linha Arduino deve-se buscar o tutorial correspondente. Voc tambm vai precisar de um cabo USB AB.
2 - Download do software do Arduino Faa download da ltima verso do software do Arduino. Ao terminar, descompacte o arquivo e mantenha a estrutura de pastas e sub-pastas. Se quiser guarde esta pasta no drive C: do seu computador. Dentro desta pasta existe um arquivo chamado arduino.exe que o ponto de entrada do programa do Arduino, a IDE (Integrated Development Environment).
52
multilogica-shop.com
3 - Conectando o Arduino O Arduino Uno isolado usa a energia do computador atravs da conexo USB, no sendo necessria energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB. O LED verde de energia (PWR) deve acender.
4 - Instalando os drivers Drivers para Arduino Uno ou Arduino Mega 2560 com Windows 7, Vista ou XP: . Conecte a placa ao computador e aguarde o Windows iniciar o processo de instalao do driver. Depois de alguns momentos o processo vai falhar. Clique em concluir e dispense a ajuda do assistente. . Clique no Menu Principal e abra o Painel de Controle. . Dentro do Painel de Controle, navegue at Sistema e Segurana. Na sequncia clique em Sistema, selecione Hardware e depois clique em Gerenciador de Dispositivos. . Procure por Portas (COM & LPT), onde voc deve ver uma opo Arduino UNO (COMxx). . Clique com o boto da direita em Arduino UNO (COMxx) e escolha a opo Atualizar Driver. . Depois escolha a opo Instalar de uma lista ou local especfico (Avanado), e clique em avanar. . Finalmente navegue e escolha o driver arduino.inf localizado na pasta Drivers do software do Arduino que voc baixou. . O Windows vai finalizar a instalao do driver a partir deste ponto.
53
multilogica-shop.com
5 - Abrindo o programa Arduino Clique duas vezes na aplicao do Arduino, o arquivo arduino.exe. Caso o programa carregue com o idioma que no da sua preferncia voc pode alterar na sesso de preferncias do programa.
6 - Exemplo Piscar Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
54
multilogica-shop.com
7 - Selecione sua placa Voc deve selecionar qual a sua placa Arduino: Ferramentas > Placa > Arduino Uno.
8 - Selecione a porta Selecione agora a porta serial que conectar o Arduino: Ferramentas > Porta Serial. Voc deve selecionar a mesma porta que utilizou para confirgurar o sistema no passo 4.
55
multilogica-shop.com
9 - Carregue o programa Agora simplesmente clique no boto Carregar da janela do programa. Espere alguns segundos. Voc deve ver os LEDs RX e TX da placa piscarem. Se o processo foi executado normalmente voc ver uma mensagem de Transferncia concluda. Depois de alguns segundos voc ver o LED do pin 13 piscar em laranja. Neste caso, parabns! Seu Arduino est pronto e instalado. Se voc tiver problemas na instalao pode acessar a pgina oficial do Arduino com algumas solues.
56
multilogica-shop.com
1 - Placa Arduino e um cabo USB AB Este tutorial serve para instalao das placas Arduino Uno, Arduino Duemilanove, Nano, Arduino Mega 2560 ou Diecimila. Para outras placas da linha Arduino deve-se buscar o tutorial correspondente. Voc tambm vai precisar de um cabo USB AB.
2 - Download do software do Arduino Faa download da ltima verso do software do Arduino. Ao terminar o download clique duas vezes no arquivo .zip para abrir a aplicao Arduino.
57
multilogica-shop.com
3 - Instale o Software Se voc est usando uma placa Arduino Uno ou Mega 2560 no necessrio instalar nenhum software. Caso voc esteja usando outra placa Arduino ou um modelo mais antigo talvez seja necessrio instalar mais algum driver.
4 - Conectando o Arduino O Arduino Uno isolado usa a energia do computador atravs da conexo USB, no sendo necessria energia externa. Conecte a placa Arduino ao computador usando o cabo USB AB. O LED verde de energia (PWR) deve acender. Se voc est usando uma placa Arduino Uno ou Mega 2560 uma janela deve aparecer informando que uma nova interface foi detectada. Clique em Preferncias de Sistema e clique em aplicar. O Uno e o Mega 2560 vo aparecer como no configurados, mas estaro funcionando corretamente. Feche as preferncias do sistema.
5 - Abrindo o programa Arduino Clique duas vezes na aplicao do Arduino. Caso o programa carregue com o idioma que no da sua preferncia voc pode alterar na sesso de preferncias do programa.
58
multilogica-shop.com
6 - Exemplo Piscar Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
59
multilogica-shop.com
7 - Selecione sua placa Voc deve selecionar qual a sua placa Arduino: Ferramentas > Placa > Arduino Uno.
60
multilogica-shop.com
8 - Selecione a porta Selecione agora a porta serial que conectar o Arduino: Ferramentas > Porta Serial. Em um Mac, esta porta deve ser algo como /dev/tty.usbmodem (para Uno ou Mega 2560) ou /dev/tty.usbserial (para placas mais antigas).
61
multilogica-shop.com
9 - Carregue o programa Agora simplesmente clique no boto Carregar da janela do programa. Espere alguns segundos. Voc deve ver os LEDs RX e TX da placa piscarem. Se o processo foi executado normalmente voc ver uma mensagem de Transferncia concluda. Depois de alguns segundos voc ver o LED do pin 13 piscar em laranja. Neste caso, parabns! Seu Arduino est pronto e instalado. Se voc tiver problemas na instalao pode acessar a pgina oficial do Arduino com algumas solues.
62
multilogica-shop.com
Ser necessrio instalar alguns programas para usar Arduino em Linux. A forma do procedimento depende da distribuio. Primeiro faa download da ltima verso do Arduino para Linux na pgina oficial. Para mais detalhes selecione sua distribuio: ArchLinux Debian Fedora Gentoo MEPIS Mint openSUSE Puppy Pussy Slackware Ubuntu Xandros (Debian derivative) on Asus Eee PC CentOS 6
63
multilogica-shop.com
6 Programao
A programao um grande recurso que nos permite criar diversas sequncias de passos lgicos com o objetivo de cumprir nossas necessidades e de nossos sistemas. Programar uma arte que requer uma grande habilidade lgica e concentrao por parte do programador.
64
multilogica-shop.com
o processo de projetar, escrever, provar, depurar e manter o cdigo fonte de programas de computador. O cdigo fonte escrito em uma linguagem de programao. O propsito da programao criar programas que executem um comportamento desejado. O processo de escrever um cdigo requer frequentemente conhecimentos em vrias reas distintas, alm do domnio da linguagem a utilizar, algoritmos especializados e lgica formal. Programar engloba reas como a anlise e o projeto da aplicao. Para criar um programa que o computador interprete e execute as instrues escritas, devese usar uma linguagem de programao. No incio, os computadores interpretavam somente instrues em uma linguagem especfica, uma linguagem de programao de baixo nvel conhecida como cdigo mquina, excessivamente complicada para programar. Consiste somente em cadeias de nmeros 1 e 0 (sistema binrio). Para facilitar o trabalho de programao os primeiros cientistas que trabalhavam na rea decidiram substituir as instrues, sequncias de um e zero, por palavras ou letras do ingls, codificando e criando assim uma linguagem de maior nvel conhecida como Assembly. Por exemplo, para somar se usa a letra A, do ingls add. Realmente escrever em linguagem assembly basicamente o mesmo que com a linguagem mquina, mas as letras e as palavras so mais fceis de lembrar e entender que sequncias de nmeros binrios. medida que a complexidade das tarefas que realizavam os computadores aumentava, foi necessrio desenvolver um mtodo mais simples de programao. Ento foram criadas as linguagens de alto nvel. Enquanto que uma tarefa to simples como multiplicar dois nmeros necessita um conjunto de instrues em linguagem assembly, em uma linguagem de alto nvel basta com uma.
65
multilogica-shop.com
Uma linguagem de programao um idioma artificial desenvolvido para expressar operaes que podem ser executadas por mquinas como os computadores. Podem ser usadas para criar programas que controlam o comportamento fsico e lgico de uma mquina, para expressar algoritmos com preciso, ou como modo de comunicao entre as pessoas. Est formada por um conjunto de smbolos e regras sintticas e semnticas que definem sua estrutura e o significado de seus elementos e expresses. O processo pela qual se escreve, prova, depura, compila e se mantm o cdigo fonte de um programa informtico se chama programao.
66
multilogica-shop.com
Sistema de cdigos diretamente interpretvel por um circuito microprogramvel, como o microprocessador de um computador ou um microcontrolador. Um programa em cdigo de mquina consiste em uma sequncia de nmeros que significam uma sequncia de instrues a serem executadas. A linguagem mquina trabalha com dois nveis de voltagem. Tais nveis, por abstrao, se simbolizam com o zero (0) e o um (1), por isso a linguagem de mquina s utiliza estes signos. Os programas de computador raramente so criados em linguagem de mquina, mas devem ser traduzidos (por compiladores) para serem executados diretamente pelo computador. Existe a opo, em voga atualmente, de no execut-los diretamente, mas sim por meio de um interpretador, esse sim rodando diretamente em cdigo de mquina e previamente compilado.
uma linguagem de programao de baixo nvel para computadores, microcontroladores e outros circuitos integrados programveis. A linguagem de mquina, que um mero padro de bits, torna-se legvel pela substituio dos valores em bruto por smbolos chamados mnemnicos. Estes smbolos so geralmente definidos pelo fabricante do hardware e est baseada em cdigos que simbolizam os passos do processamento (as instrues). Uma linguagem assembly portanto especfica de cada arquitetura de computador, podendo ser usada somente por um microprocessador especfico. Isso contrasta com a maioria das linguagens de programao de alto nvel que idealmente so portteis, o que significa que um programa pode ser executado em uma variedade de computadores.
67
multilogica-shop.com
Linguagem de programao de alto nvel como se chama, na Cincia da Computao de linguagens de programao, uma linguagem com um nvel de abstrao relativamente elevado, longe do cdigo de mquina e mais prximo linguagem humana. Desse modo, as linguagens de alto nvel no esto diretamente relacionadas arquitetura do computador. O programador de uma linguagem de alto nvel no precisa conhecer caractersticas do processador, como instrues e registradores. Essas caractersticas so abstradas na linguagem de alto nvel. Para estas linguagens necessrio certo conhecimento de programao para realizar sequncias de instrues lgicas. As linguagens de alto nvel foram criadas para que o usurio comum pudesse solucionar um problema de processamento de dados de uma maneira mais fcil e rpida.
6.6 Algoritmo
Um algoritmo uma sequncia finita de instrues bem definidas e no ambguas, cada uma das quais pode ser executada mecanicamente num perodo de tempo finito e com uma quantidade de esforo finita. O conceito de algoritmo frequentemente ilustrado pelo exemplo de uma receita culinria, embora muitos algoritmos sejam mais complexos. Eles podem repetir passos (fazer iteraes) ou necessitar de decises (tais como comparaes ou lgica) at que a tarefa seja completada. Um algoritmo no representa, necessariamente, um programa de computador, e sim os passos necessrios para realizar uma tarefa. Sua implementao pode ser feita por um computador, por outro tipo de autmato ou mesmo por um ser humano.
68
multilogica-shop.com
7 Programao Arduino
69
multilogica-shop.com
Para executar o programa entramos na pasta do Arduino guardada no computador e procuramos o cone. Clique duas vezes para abrir o programa. O programa do Arduino tambm conhecido como IDE Arduino (Integrated Development Environment) pois alm do entorno de programao consiste tambm em um editor de cdigo, um compilador e um depurador.
Arduino
70
multilogica-shop.com
Espao de trabalho:
71
multilogica-shop.com
Sketches Softwares escritos usando Arduino so chamados de Sketches. Estes Sketches so escritos no editor de texto da IDE do Arduino e so salvos com a extenso de arquivo .ino. Este editor tem caractersticas de cortar/colar e para buscar/substituir texto. A rea de mensagem d feedback ao salvar e exportar arquivos e tambm exibe informaes de erros ao compilar Sketches. O canto direito inferior da janela exibe a placa atual e a porta serial. Os botes da barra de ferramentas permitem que voc verifique, carregue, crie, abra e salve Sketches ou abra o monitor serial. Nota: Nas verses do IDE antes de 1.0 os Sketches so salvos com a extenso .pde. possvel abrir esses arquivos com a verso 1.0, mas voc ser solicitado a salvar o Sketch com a extenso .ino. Verificar Verifica se seu cdigo tem erros. Carregar Compila seu cdigo e carrega para a placa Arduino. Novo Cria um novo Sketch. Abrir Apresenta um menu de todos os sketches j existentes. Salvar Salva seu Sketch. Monitor Serial Abre o monitor serial.
72
multilogica-shop.com
Monitor Serial Exibe dados seriais sendo enviados da placa Arduino para o computador. Para enviar dados para a placa, digite o texto e clique no boto "enviar" ou pressione enter. A comunicao entre a placa Arduino e seu computador pode acontecer em vrias velocidades padro pr-definidas. Para que isso ocorra importante que seja definida a mesma velocidade tanto na Sketch quanto no Monitor Serial. Na Sketch esta escolha feita atravs da funo Serial.begin. E no Monitor Serial atravs do menu drop down do canto inferior direito. Note que no Mac ou Linux a placa Arduino ir resetar (executar novamente o seu Sketch desde o incio), quando voc abrir o monitor serial.
A comunicao serial com a placa Arduino tambm pode ser feita atravs de outras linguagens de programao como Processing, Flash, Python, MaxMSP e muitas outras.
73
multilogica-shop.com
Biblioteca Arduino O ambiente Arduino pode ser estendido atravs da utilizao de bibliotecas, assim como a maioria das plataformas de programao. Bibliotecas fornecem funcionalidades extras para uso em sketches. Por exemplo, para trabalhar com hardware ou manipulao de dados. Algumas bibliotecas j vm instaladas com a IDE Arduino, mas voc tambm pode fazer download ou criar a sua prpria. Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino: Sketch> Importar Biblioteca. Dentro da programao voc inclui as funcionalidades de uma biblioteca j existente a partir do comando:
#include <LiquidCrystal.h>
74
multilogica-shop.com
Arduino se programa em uma linguagem de alto nvel semelhante a C/C++ e geralmente tem os seguintes componentes para elaborar o algoritmo: Estruturas Variveis Operadores booleanos, de comparao e aritmticos Estrutura de controle Funes digitais e analgicas
Para mais detalhes visite a Referncia da linguagem de programao Arduino, em portugus. Veja a referncia extendida para caractersticas mais avanadas da linguagem Arduino e a pgina das bibliotecas para interao com tipos especficos de hardware, no site oficial do Arduino.
CC www.arduino.cc
75
multilogica-shop.com
Estruturas So duas funes principais que deve ter todo programa em Arduino. A funo setup() chamada quando um programa comea a rodar. Use esta funo para inicializar as sua variveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta funo ser executada apenas uma vez aps a placa Arduino ser ligada ou ressetada.
setup(){ }
Aps criar uma funo setup() que declara os valores iniciais, a funo loop() faz exatamente o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de cdigo), permitindo ao seu programa fazer mudanas e responder. Use esta funo para controlar ativamente a placa Arduino.
loop(){ }
76
multilogica-shop.com
Variveis Variveis so expresses que voc pode usar em programas para armazenar valores como a leitura de um sensor em um pino analgico. Aqui destacamos algumas: - Variveis Booleanas Variveis boolenas, assim chamadas em homenagem a George Boole, podem ter apenas dois valores: verdadeiro (true) e falso (false).
boolean running = false;
- Int Inteiro o principal tipo de dado para armazenamento numrico capaz de guardar nmeros de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mnimo de -2^15 e valor mximo de (2^15) -1).
int ledPin = 13;
- Char Um tipo de dado que ocupa 1 byte de memria e armazena o valor de um caractere ASCII. Caracteres literais so escritos entre aspas.
char myChar = A;
77
multilogica-shop.com
Operadores booleanos Estes operadores podem ser usados dentro da condio em uma sentena if. - && (e lgico) Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja, a primeira condio e a segunda forem verdadeiras. Exemplo:
if (digitalRead(2) == 1 } // ... && digitalRead(3) == 1) { // ler dois interruptores
verdadeiro apenas se os dois interruptores estiverem fechados. - || (ou lgico) Verdadeiro se algum dos operandos for verdadeiro, ou seja, se a primeira ou a segunda condio for verdadeira. Exemplo:
if (x > 0 || y > 0) { } // ...
verdadeiro apenas se x ou y forem maiores que 0. - ! (negao) Verdadeiro apenas se o operando for falso. Exemplo:
if (!x) { } // ...
78
multilogica-shop.com
Operadores de comparao if, que usado juntamente com um operador de comparao, verifica quando uma condio satisfeita, como por exemplo um input acima de um determinado valor. O formato para uma verificao if :
if (algumaVariavel > 50) { } // faa alguma coisa
O programa checa se algumaVariavel (colocar acentos em nomes de variveis no uma boa idia) maior que 50. Se for, o programa realiza uma ao especfica. Colocado de outra maneira, se a sentena que est dentro dos parntesis verdadeira o cdigo que est dentro das chaves roda; caso contrrio o programa salta este bloco de cdigo. As chaves podem ser omitidas aps uma sentena if se s houver uma nica linha de cdigo (definida pelo ponto e vrgula) que ser executado de modo condicional:
if (x > 120) if (x > 120) digitalWrite(LEDpin, HIGH);
A sentena que est sendo verificada necessita o uso de pelo menos um dos operadores de comparao: x x x x x x == y (x igual a y) != y (x no igual a y) < y (x menor que y) > y (x maior que y) <= y (x menor ou igual a y) >= y (x maior ou igual a y)
79
multilogica-shop.com
Operadores aritmticos Se aplicam no uso de variveis. = (igualdade) + (adio) - (subtrao) * (multiplicao) / (diviso) % (resto da diviso)
80
multilogica-shop.com
Estruturas de controle So instrues que permitem decidir e realizar diversas repeties de acordo com alguns parmetros. Entre os mais importantes podemos destacar: - Switch/case Do mesmo modo que as sentenas if, as switch/case controlam o fluxo dos programas. Switch/case permite ao programador construir uma lista de casos dentro de um bloco delimitado por chaves. O programa checa cada caso com a varivel de teste e executa o cdigo se encontrar um valor idntico.
switch (var) { case 1: case 2: //faa alguma coisa quando var == 1 //faa alguma coisa quando var == 2 // se nenhum valor for idntico, faa o default // default opcional
default:
- While While far com que o bloco de cdigo entre chaves se repita contnua e indefinidamente at que a expresso entre parentesis () se torne falsa. Algo tem que provocar uma mudana no valor da varivel que est sendo verificada ou o cdigo vai sempre ficar dando voltas dentro do while. Isto poderia ser o incremento de uma varivel ou uma condio externa, como o teste de um sensor.
var = 0; while(var < 200){ var++;
81
multilogica-shop.com
- For A sentena for utilizada para repetir um bloco de cdigo delimitado por chaves. Um contador com incremento normalmente usado para controlar e finalizar o loop. A sentena for til para qualquer operao repetitiva, e frequentemente usada com arrays para operar em conjuntos de dados ou de pinos.
// Aumentar o brilho de um LED usando um pino PWM int PWMpin = 13; // um LED void setup() { } { // nenhum setup necessrio void loop() for (int i=0; i <= 255; i++){ analogWrite(PWMpin, i); delay(10); no pino 13
82
multilogica-shop.com
Funes digitais Orientadas a revisar o estado e a configurao das entradas e sadas digitais. - pinMode() Configura o pino especificado para que se comporte ou como uma entrada (input) ou uma sada (output). Sintaxe:
pinMode(pin, mode) pinMode(9, OUTPUT); // determina o pino digital 9 como uma sada.
83
multilogica-shop.com
Funes analgicas Ideais para a leitura ou escrita de valores analgicos. - analogRead() L o valor de um pino analgico especificado. A placa Arduino contm um conversor analgico-digital de 10 bits com 6 canais. Com isto ele pode mapear voltagens de entrada entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isto permite uma resoluo entre leituras de 5 volts / 1024 unidades ou 0,0049 volts (4.9 mV) por unidade. Sintaxe:
analogRead(pin) int a = analogRead (A0); // L o valor do pino analgico A0 e armazena //este valor na varivel "a".
- analogWrite() Escreve um valor analgico (onda PWM) em um pino. Pode ser usado para acender um LED variando o brilho ou girar um motor a velocidade varivel. Sintaxe:
analogWrite(pin, valor) analogWrite (9,134); // Envia o valor analgico 134 para o pino 9.
84
multilogica-shop.com
O Kit Arduino Uno R3 - Iniciante desenvolvido pela Multilgica-Shop o mais completo do Brasil. Possui tudo o que voc precisa para realizar todos os tutoriais deste guia e para comear a desenvolver seus prprios projetos com a plataforma Arduino, sem necessidade de realizar soldas.
85
multilogica-shop.com
1 - 1 Caixa organizadora Multilgica-shop 2 - 1 Arduino Uno R3 3 - 1 Protoboard 4 - 15 jumpers de tamanhos variados 5 - 1 potencimetro 10k 6 - 2 chaves momentneas (boto) 7 - 1 Sensor de temperatura (termistor ntc 1k) 8 - 15 resistores 330 9 - 5 resistores 1k 10 - 5 resistores 10k 11 - 1 resistor de 15 12 - 1 sensor/atuador piezoeltrico 13 - 1 Sensor de luminosidade (LDR 5mm) 14 - 1 Cabo USB - Para conectar o Arduino ao seu computador. 15 - 1 Rel de uso geral, bobina de 5V, 40 mA / Dois contatos reversveis de 1A 16 - 5 LEDs vermelhos (1,2 Vdc 20mA) 17 - 5 LEDs amarelos (1,2 Vdc 20mA) 18 - 5 LEDs verdes (1,2 Vdc 20mA) 19 - 1 LED de alto brilho branco 20 - 1 Motor CC 6V com jumpers soldados 21 - 1 Display LCD 2x16 com conector soldado (com Backlight)
86
multilogica-shop.com
9 Tutoriais
Tutoriais desenvolvidos para utilizar todos os componentes de seu Kit Arduino Uno R3 - Iniciante Multilgica-Shop. Em cada tutorial voc identifica os materiais necessrios para sua execuo, os conhecimentos prvios necessrios e o que voc vai aprender, o diagrama de montagem, o cdigo de programao, dicas e exerccios extras.
87
multilogica-shop.com
Este exemplo mostra a experincia mais simples que voc pode fazer com um Arduino para verificar uma sada fsica: piscar um LED. Quando voc est aprendendo a programar, na maioria das linguagens de programao, o primeiro cdigo que voc escreve diz Hello World na tela do computador. Como a placa Arduino no tem uma tela substituiremos esta funo fazendo piscar um LED.
O Que Vou Aprender? Ativar uma sada digital Acender um LED em ON/OFF Temporizar um sinal de sada Sintaxe de um programa Arduino
Conhecimentos Prvios Sinal digital Funo digitalWrite() Polaridade de um LED (pgina 39) Conexo da placa Arduino com o computador
88
multilogica-shop.com
Diagrama
89
multilogica-shop.com
Este cdigo j vem junto com a IDE do Arduino. Voc pode acessar em: Arquivo > Exemplos > 01.Basics > Blink Ns apenas reproduzimos aqui com explicaes e os comentrios em portugus. No programa a seguir, o primeiro comando o de inicializar o pino 13 como sada atravs da linha
pinMode(13, OUTPUT);
No loop principal do cdigo, voc liga o LED com esta linha de comando:
digitalWrite(13, HIGH);
Este comando direciona 5 volts ao pino 13 e o acende. Voc desliga o LED com o seguinte comando:
digitalWrite(13, LOW);
Este comando retira os 5 volts do pino 13, voltando para 0 e desligando o LED. Entre desligar e ligar voc precisa de tempo suficiente para que uma pessoa veja a diferena, ento o comando delay() informa o Arduino no fazer nada durante 1000 milissegundos, ou um segundo. Quando voc usa o comando delay(), nada mais acontece neste perodo de tempo. Uma vez entendido os exemplos bsicos, verifique tambm o exemplo Piscar sem delay para aprender como criar um delay enquanto faz outras funes.
90
multilogica-shop.com
Cdigo Fonte
/*
Acende um LED por um segundo, e depois apaga pelo mesmo tempo, repetidamente. */
Piscar
// Se executa cada vez que o Arduino inicia: void setup() { // Inicializa o pino digital como sada. pinMode(led, OUTPUT);
// A funcao loop() continua executando enquanto o Arduino estiver alimentado, // ou ate que o botao reset seja acionado. void loop() {
delay(1000); delay(1000);
digitalWrite(led, HIGH);
digitalWrite(led, LOW); }
// Aguarda um segundo (1s = 1000ms) // Aguarda um segundo (1s = 1000ms) // Apaga o LED
// Acende o LED
91
multilogica-shop.com
Dicas 1 - Na linguagem Arduino // se utiliza para acrescentar comentrios na linha de cdigo, sendo muito til para explicar uma sintaxe ou deixar um lembrete. Um exemplo de seu uso:
digitalWrite(13,LOW); //Apaga o LED
2 - Os sinais digitais (Aceso e Apagado) esto presentes em muitos sensores. Conhea alguns deles:
92
multilogica-shop.com
Exerccio 1 A partir do cdigo fonte apresentado neste tutorial, faa as modificaes necessrias para que o LED fique: - 3 segundos aceso e 3 segundos apagado - 200 milissegundos aceso e 500 milissegundos apagado
Exerccio 2 A partir do mesmo cdigo fonte faa uma nova montagem deste tutorial e faa as modificaes necessrias no cdigo fonte para que o LED seja colocado no Pino 5, e fique 2 segundos aceso e 1 segundo apagado.
Note que para qualquer pino que no seja o 13 necessrio colocar um resistor em srie com o LED. Neste caso um resistor de 330 suficiente.
93
multilogica-shop.com
9.2 Boto
O boto um componente que conecta dois pontos do circuito quando est pressionado. Neste exemplo quando o boto est pressionado o LED se acende.
O Que Vou Aprender? Cabear um circuito Condicional if/else Estado de um boto Ler uma entrada digital e escrever uma sada digital
Conhecimentos Prvios Sinal digital Funo digitalWrite() e digitalRead() Divisor de voltagem Condicional, operadores booleanos e de comparao
94
multilogica-shop.com
Materiais Necessrios 1 Arduino Uno 1 Boto 1 LED 1 Resistor 10k 1 Cabo USB AB
Jumpers Diagrama
1 Protoboard
95
multilogica-shop.com
Cdigo Fonte
/*
Botao
Liga e desliga um LED conectado ao pino digital 13 quando pressionado um botao conectado ao pino 2. O Circuito:
* LED conectado ao pino 13 e ao terra * botao conectado ao pino 2 desde 5V */ * resistor de 10K conectado ao pino 2 desde o terra
// constantes nao sao alteradas. const int buttonPin = 2; const int ledPin = 13;
// inicializa o pino do LED como saida: pinMode(ledPin, OUTPUT); // inicializa o pino do botao como entrada: pinMode(buttonPin, INPUT);
void loop(){
buttonState = digitalRead(buttonPin);
96
multilogica-shop.com
digitalWrite(ledPin, HIGH);
else {
// desliga o LED:
digitalWrite(ledPin, LOW);
97
multilogica-shop.com
Dicas
1 - Quando voc est programando com o software do Arduino, muitas das palavras que voc escreve so reservadas para a linguagem. Estas palavras se colocam com uma cor diferente, e uma dica para verificar se esto escritas corretamente. Como no exemplo:
void loop() { delay(1000); delay(1000); }
digitalWrite(13,HIGH); digitalWrite(13,LOW);
2 - Em um projeto com uso de vrios botes com funcionalidades diferentes, pode ser til trabalhar com peas como estas: Conjunto de botes tcteis coloridos
98
multilogica-shop.com
Exerccio 1 Para evitar acidentes no ambiente de trabalho, uma regra de segurana em vrios equipamentos industriais obrigar que um usurio aperte dois botes, um com cada mo, para acionar uma mquina. o caso da mquina de corte usada em fbricas de papel. Com a seguinte montagem podemos simular esta situao. O LED somente acende se os dois botes do circuito estiverem pressionados:
Exerccio 2 Faa mais uma modificao no cdigo fonte do exerccio 1 para que voc possa acender o LED do pino 13 pressionando ou o boto 1 ou o boto 2. Ao deixar de pressionar, o LED se apaga.
99
multilogica-shop.com
Este exemplo mostra como monitorar o estado de um interruptor estabelecendo a comunicao serial entre seu Arduino e o computador atravs da USB.
O Que Vou Aprender? Controlar uma entrada digital Ver dados pelo computador Monitor Serial Ler uma entrada digital
Conhecimentos Prvios - Sinal digital - Funo digitalRead() e Serial.print - Funo digitalWrite() e Operadores de comparao
100
multilogica-shop.com
Materiais Necessrios 1 Arduino Uno 1 Boto 1 LED 1 Resistor 10k 1 Cabo USB AB
Jumpers Diagrama
1 Protoboard
101
multilogica-shop.com
Cdigo Fonte
Neste programa a primeira coisa que voc vai fazer na funo de configurao comear a comunicao serial a 9600 bits de dados por segundo entre o Arduino e seu computador: Serial.begin (9600); Lembre-se de colocar o valor 9600 tambm no Monitor Serial como explicado na pgina 73. Em seguida, inicializar o pino digital 2, o pino que vai fazer a leitura do boto como uma entrada digital: int pushButton = 2; Quando o boto for pressionado, 5 volts fluiro livremente atravs de seu circuito, e quando no for pressionado o pino de entrada ser ligado ao terra. Esta uma entrada digital, o que significa que a chave s pode ter um estado (visto pelo seu Arduino como "1", ou HIGH) ou um estado off (visto pelo seu Arduino como um "0", ou LOW), sem nada no meio. Agora quando voc abrir o seu Monitor Serial no ambiente Arduino voc ver um fluxo de "0" se a sua chave estiver aberta, ou "1" se a sua chave estiver fechada.
102
multilogica-shop.com
/*
DigitalReadSerial
Le a entrada digital no pino 2 e imprime o resultado no monitor serial. */ Este exemplo e de dominio publico.
// define o botao como uma entrada. //define o LED como uma sada.
void loop() {
// imprime o estado do botao: Serial.println(buttonState); } delay(1); // delay entre leituras (em milissegundos)
103
multilogica-shop.com
Dicas
1 - O sistema binrio um sistema de numerao posicional em que todas as quantidades se representam com base em dois nmeros, ou seja, zero e um (0 e 1). Os computadores trabalham internamente com dois nveis de tenso, pelo que o seu sistema de numerao natural o sistema binrio (aceso, apagado). O sistema binrio base para a lgebra booleana que permite fazer operaes lgicas e aritmticas usando-se apenas dois dgitos ou dois estados (sim e no, falso e verdadeiro, tudo ou nada, 1 ou 0, ligado e desligado). Toda a eletrnica digital e computao est baseada nesse sistema binrio e na lgica de Boole, que permite representar por circuitos eletrnicos digitais (portas lgicas) os nmeros, caracteres, realizar operaes lgicas e aritmticas. Os programas de computadores so codificados sob forma binria e armazenados nas mdias (memrias, discos, etc) sob esse formato.
2 - Para lembrar: - Para ler um sinal digital use: digitalRead(numeroPin). - Para escrever um sinal digital use: digitalWrite(numeroPin, valor). - Uma sada ou entrada digital sempre HIGH ou LOW.
104
multilogica-shop.com
Exerccio 1 Aqui faremos mais um exerccio usando a mesma montagem deste Tutorial. Uma vez que voc tenha o boto funcionando, muitas vezes voc quer fazer alguma ao com base no nmero de vezes que o boto for pressionado. Para isso, voc precisa saber quando o boto muda de estado de desligado para ligado, e contar quantas vezes essa mudana de estado acontece. Isso chamado de deteco de mudana de estado. Cada 4 pulsaes o LED ser ligado.
/*
*/
// constantes nao sao alteradas: const int buttonPin = 2; const int ledPin = 13;
// variaveis que devem mudar: int buttonPushCounter = 0; int buttonState = 0; int lastButtonState = 0; void setup() {
// contador para o numero de impressoes do botao // atual estado do botao // anterior estado do botao
// inicializa o pino do botao como entrada // inicializa a comunicacao serial // inicializa o pino digital como saida
void loop() {
buttonState = digitalRead(buttonPin);
105
multilogica-shop.com
// compara o estado atual do botao com seu estado anterior if (buttonState != lastButtonState) { if (buttonState == HIGH) { buttonPushCounter++; // se o estado do botao foi alterado, incrementar o contador
Serial.print("numero de pulsos:
Serial.println(buttonPushCounter);
");
lastButtonState = buttonState; // Liga o LED cada 4 pulsacoes checando o modulo de contador de botao if (buttonPushCounter % 4 == 0) { digitalWrite(ledPin, HIGH); }else { } digitalWrite(ledPin, LOW);
// proximo loop
106
multilogica-shop.com
Este exemplo mostra como ler um pino de uma entrada analgica, mapear o resultado para um intervalo de 0 a 255, e usar esse resultado para definir a modulao PWM de um pino de sada para acender e apagar um LED como um dmer.
O Que Vou Aprender? Controlar uma entrada analgica Ver dados pelo computador Mltiplos estados de um potencimetro Ler uma entrada analgica
107
multilogica-shop.com
Materiais Necessrios 1 Arduino Uno 1 LED 1 Resistor 330 1 Potencimetro 1 Cabo USB AB
Jumpers Diagrama
1 Protoboard
108
multilogica-shop.com
Cdigo Fonte
/*
Le o pino de entrada analogica, mapeia o resultado para um intervalo entre 0 e 255 e usa o resultado para estabelecer o pulso PWM do pino de saida. Tambem e possivel acompanhar o resultado atraves do Monitor Serial. O circuito:
- O pino central do Potenciometro conectado ao pino analogico 0. Os pinos lateriais do potenciometro conectados no terra e 5V. - LED conectado no pino digital 9 e no terra.
Criado em 29/12/2008, Modificado em 09/04/2012 por Tom Igoe Este exemplo e de dominio publico. */
// constantes nao sao alteradas: const int analogInPin = A0; const int analogOutPin = 9; int sensorValue = 0; int outputValue = 0; void setup() {
void loop() {
sensorValue = analogRead(analogInPin);
109
multilogica-shop.com
// mapeia o resultado da entrada analogica dentro do intervalo de 0 a 255: outputValue = map(sensorValue, 0, 1023, 0, 255); // muda o valor da saida analogica:
Serial.println(outputValue);
110
multilogica-shop.com
Dicas
1 - Note que as entradas analgicas do Arduino tm uma resoluo de 10 bits (valores de 0 a 1023), mas as sadas analgicas por PWM tm uma resoluo de 8 bits (valores de 0 a 255). por isso que necessria a funo 'map', para "mapear" os valores de modo que se mantenham proporcionais.
111
multilogica-shop.com
Atravs deste tutorial voc vai controlar o acionamento de um rel e de um LED desde o Monitor Serial de seu computador.
O Que Vou Aprender? - Executar um comando atravs da Comunicao Serial - Controlar o acionamento de um rel e de um LED atravs do computador - Varivel char
112
multilogica-shop.com
Materiais Necessrios 1 Arduino Uno 2 LEDs 1 Resistor 330 1 Rel 1 Cabo USB AB
Jumpers Diagrama
1 Protoboard
113
multilogica-shop.com
Cdigo Fonte
//************************************************************************** //* Codigo para teste de Arduino acionando rele do kit Multilogica, //* ligado na saida digital 2 e GND, monitorado pelo Led 13 //* este codigo tem dominio publico
//************************************************************************** //inicializa uma variavel do tipo char que utiliza 1 byte para armazenar //1 caracter int rele=2; int led=13; char input= 0;
pinMode(rele,OUTPUT); pinMode(led,OUTPUT); Serial.begin(9600); Serial.println(); Serial.print("**Codigo para acionar rele conectado ao pino 2 do Arduino "); Serial.println("atraves do monitor serial**"); Serial.println("");
Serial.println("Pressione 1 e depois ENTER para inverter o estado do rele novamente"); } Serial.println("Aguardando comando :");
void loop() {
114
multilogica-shop.com
if (input =='1'){
else {
} }
else { }
Serial.println("Comando invalido");
115
multilogica-shop.com
9.6 Fade
Este exemplo demonstra o uso da funo analogWrite() para apagar um LED em fade (variao gradual). AnalogWrite usa um pulso PWM, alternando o pino digital on e off rapidamente, criando o efeito de fade.
O Que Vou Aprender? - Acender e apagar um LED em fade - Intensificar o conceito de PWM
Conhecimentos Prvios PWM Funo AnalogWrite() Polaridade de um LED Incrementar e manipular variveis
116
multilogica-shop.com
Jumpers Diagrama
1 Protoboard
117
multilogica-shop.com
Cdigo Fonte
Conecte a perna mais longa do LED no pino digital 9 de seu Arduino atravs de um resistor de 330. Conecte a perna mais curta do LED diretamente ao terra. Aps definir que o pino 9 ser seu ledPin, nada mais dever ser feito na funo setup() do cdigo. A funo analogWrite() que voc vai usar no loop principal do cdigo requer dois argumentos: um deles informando funo qual pino deve acionar e outra indicando qual valor PWM utilizar. Para executar o fade no LED, gradualmente aumente o valor PWM de 0 (totalmente desligado) a 255 (totalmente ligado) e depois diminua novamente a 0 para completar o ciclo. No cdigo abaixo, o valor PWM definido usando uma varivel chamada brightness. Cada vez que o loop roda ele aumenta o valor da varivel de acordo com o fadeAmount. Se brightness definida entre os valores extremos (0 ou 255), ento fadeAmount muda para seu negativo. Por exemplo, se fadeAmount 5, em seguida ele definido como -5. Se -5, ento seria definido 5. A prxima vez que rodar o loop, esta mudana causa que o incremento de brightness mude tambm de direo. analogWrite() pode mudar o valor PWM muito rapidamente, ento o delay no final do cdigo controla a velocidade do fade. Tente modificar o valor do delay e veja como isso muda o programa.
118
multilogica-shop.com
/*
Fade
Este exemplo mostra como executar um fade em um LED no pino 9 usando a funcao analogWrite(). Este exemplo e de dominio publico */
int led = 9;
// pino do LED
analogWrite(led, brightness); // muda o brilho para o proximo loop: brightness = brightness + fadeAmount; // inverte a direcao do fade ao final do mesmo: if (brightness == 0 || brightness == 255) { } fadeAmount = -fadeAmount ;
119
multilogica-shop.com
Dicas Outros elementos tambm utilizam sinais PWM e tm diferentes funes: Micromotor metlico Variar a velocidade do giro do motor.
120
multilogica-shop.com
9.7 Loop
Muitas vezes voc deseja repetir uma ao sobre uma srie de pinos e fazer alguma coisa diferente para cada um. Neste caso o exemplo faz piscar 6 LEDs usando a funo for() loop para fazer circular ida e volta entre os pinos 2 e 7. Os LEDs acendem e apagam em sequncia, usando ambos as funes digitalWrite() e delay(). Podemos chamar este exemplo de "Super Mquina" lembrando a srie de televiso dos anos 80 em que o famoso ator David Hasselhoff dirigia seu Pontiac com inteligncia artificial. O carro foi turbinado com vrios LEDs de vrios tamanhos possveis para reproduzir efeitos brilhantes. Consideramos que seria interessante usar esta metfora da "Super Mquina" com o objetivo de aprender mais sobre programao sequencial e boas tcnicas de programao para as informaes de E/S da placa.
121
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
6 LEDs
1 Protoboard
6 Resistores 330
1 Cabo USB AB
Jumpers
122
multilogica-shop.com
Diagrama
123
multilogica-shop.com
Cdigo Fonte
O cdigo abaixo comea utilizando a funo for() loop para designar os pinos digitais 2 a 7 como sadas dos 6 LEDs usados. No loop principal do cdigo, dois for() loops so usados para incrementar o lao, percorrendo os LEDs, um por um, a partir de pino 2 ao pino 7. Uma vez que o pino 7 est aceso, o processo inverte, percorrendo de volta atravs de cada LED. Para mais informaes da funo for() veja pgina 82.
/*
Loop
Modificado em 30 de Agosto de 2011 por Tom Igoe Este codigo e de dominio publico. */
http://www.arduino.cc/en/Tutorial/ForLoop
// Use for loop para inicializar cada pino como saida: for (int thisPin = 2; thisPin < 8; thisPin++) } pinMode(thisPin, OUTPUT); {
124
multilogica-shop.com
void loop() {
// loop desde o pino mais baixo ate o mais alto: for (int thisPin = 2; thisPin < 8; thisPin++) { // liga este pino: delay(timer); digitalWrite(thisPin, HIGH); // desliga este pino: }
digitalWrite(thisPin, LOW);
// loop desde o pino mais alto ate o mais baixo: for (int thisPin = 7; thisPin >= 2; thisPin--) { // liga este pino: delay(timer); digitalWrite(thisPin, HIGH); // desliga este pino: }
digitalWrite(thisPin, LOW);
125
multilogica-shop.com
Neste tutorial vamos usar um LDR (Light Dependent Resistor) para simular uma compensao de luz de 5 nveis, ou seja, dependendo se h mais ou menos luz incidindo no sensor o sistema liga ou desliga uma srie de LEDs. Este programa poderia ser usado em um sistema de iluminao com cinco linhas de luz que vo acendendo conforme o sol se pe, compensando progressivamente a deficincia de luz. Alm disso, um potencimetro ajusta o nvel crtico mnimo de luz, a partir do qual se ativar o circuito.
O Que Vou Aprender? - Leitura serial de um sensor analgico - Utilizao de uma leitura analgica - pino AREF do Arduino
126
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 LDR
5 LEDs
1 Cabo USB AB
1 Potencimetro
5 Resistores 330
Jumpers
1 Protoboard
127
multilogica-shop.com
Diagrama
128
multilogica-shop.com
Cdigo Fonte
/*
Conectar um LDR a uma entrada analogica para controlar cinco saidas em funcao da luz ambiente. Este codigo e de dominio publico. Criado em 27/11/2011 por Arduteka. */
Sensor LDR
//Definir os pinos de entrada dos LEDs: int pinLed1 = 12; int pinLed2 = 11; int pinLed3 = 10; int pinLed4 = 9; int pinLed5 = 8; //Definir pino de entrada do sensor LDR int pinLDR = 0; void setup() { Serial.begin(9600);
pinMode(pinLed3, OUTPUT);
129
multilogica-shop.com
pinMode(pinLed4, OUTPUT);
} {
void loop() //Guardar o valor da leitura de uma variavel: valorLDR = analogRead(pinLDR); Serial.println(valorLDR);
digitalWrite(pinLed1, LOW); digitalWrite(pinLed2, LOW); digitalWrite(pinLed3, LOW); digitalWrite(pinLed4, LOW); digitalWrite(pinLed5, LOW);
} {
else if((valorLDR >= 823) & (valorLDR < 1023)) digitalWrite(pinLed1, HIGH); digitalWrite(pinLed2, LOW); digitalWrite(pinLed3, LOW); digitalWrite(pinLed4, LOW); } digitalWrite(pinLed5, LOW);
else if((valorLDR >= 623) & (valorLDR < 823)) { digitalWrite(pinLed1, HIGH); digitalWrite(pinLed2, HIGH); digitalWrite(pinLed3, LOW);
130
multilogica-shop.com
else if((valorLDR >= 423) & (valorLDR < 623)) digitalWrite(pinLed1, HIGH); digitalWrite(pinLed2, HIGH); digitalWrite(pinLed3, HIGH); digitalWrite(pinLed4, LOW); } { digitalWrite(pinLed5, LOW);
else if((valorLDR >= 223) & (valorLDR < 423)) digitalWrite(pinLed1, HIGH); digitalWrite(pinLed2, HIGH); digitalWrite(pinLed3, HIGH); digitalWrite(pinLed4, HIGH); } { digitalWrite(pinLed5, LOW);
else digitalWrite(pinLed1, HIGH); digitalWrite(pinLed2, HIGH); digitalWrite(pinLed3, HIGH); digitalWrite(pinLed4, HIGH); } digitalWrite(pinLed5, HIGH);
131
multilogica-shop.com
Dica
Quando o Arduino recebe um sinal analgico ele o converte para digital em 1024 partes. Esta operao padro j que o Arduino pensa que o sinal que vai receber varia entre 0v e 5v o que nos d um valor para cada parte de aproximadamente 4,88 mV. Mas podemos dizer que no, que realmente o sistema vai funcionar entre 0v e 3v, obtendo assim 1024 partes distribudas entre 0v e 3v, o que nos d um valor para cada parte de 2,9 mV, ou seja, uma resoluo muito maior. A distribuio destes valores vamos dividir igualmente em nosso programa para fazer uma ativao progressiva das linhas de iluminao. Se colocarmos a referncia muito baixa, os LEDs comeam a funcionar com menos luz ambiente que se colocarmos um sinal mais alto, lembre-se: Mais luz = menor resistncia = Vout maior Menos luz = maior resistncia = Vout menor Este controle ser feito via potencimetro, onde poderemos calibrar o sistema atravs da luz ambiente.
pinMode(EXTERNAL);
Com esta instruo estamos dizendo a nosso Arduino que no use a tenso de referncia (+5V), mas sim a que vamos aplicar atravs do pino AREF.
132
multilogica-shop.com
9.9 Termistor
Neste tutorial vamos usar um Termistor (Temperature Dependent Resistor) para fazer uma leitura da temperatura. O resultado, em graus Celsius, veremos atravs do Monitor Serial da IDE do Arduino.
O Que Vou Aprender? - Leitura serial de um sensor analgico (Termistor) - Utilizao de uma leitura analgica - Varivel float
133
multilogica-shop.com
Jumpers Diagrama
1 Protoboard
134
multilogica-shop.com
Cdigo Fonte
/* Codigo para leitura aproximada de temperatura utilizando termistor de 1K do kit Multilogica aproximado baseado em dados empiricos. Note que nao e um termometro preciso, apenas um exemplo Ligar resistor 1k de A0 para terra e termistor de +5V para A0 */ #define pino_termistor A0 void setup(void) { } Serial.begin(9600);
leitura = analogRead(pino_termistor); Serial.print("Leitura pino A0 = "); Serial.println(leitura); leitura1 = (leitura*0.2027)-82; Serial.println(leitura1); Serial.println(""); } delay(2500);
135
multilogica-shop.com
Dica Existem basicamente dois tipos de termistores: - NTC (Negative Temperature Coefficient) - termistores cujo coeficiente de variao de resistncia com a temperatura negativo: a resistncia diminui com o aumento da temperatura. - PTC (Positive Temperature Coefficient) - termistores cujo coeficiente de variao de resistncia com a temperatura positivo: a resistncia aumenta com o aumento da temperatura conforme a curva/tabela caracterstica do termistor, o seu valor de resistncia pode diminuir ou aumentar em maior ou menor grau em uma determinada faixa de temperatura. Assim alguns podem servir de proteo contra sobreaquecimento, limitando a corrente eltrica quando determinada temperatura ultrapassada. Outra aplicao a medio de temperatura (em motores por exemplo), pois podemos com o termistor obter uma variao de resistncia eltrica em funo da variao de temperatura. O termistor includo no kit Multilgica do tipo NTC e obedece esta tabela, cujos dados podem ser utilizados para clculos e aplicaes.
136
multilogica-shop.com
9.10 Motor CC
Neste tutorial vamos controlar um motor de corrente contnua atravs do Arduino. O acionamento do boto vai ligar nosso motor.
O Que Vou Aprender? - Leitura digital de um boto - Controlar um motor de corrente contnua com Arduino
137
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 Motor CC
1 Cabo USB AB
1 Boto
Jumpers
1 Protoboard
138
multilogica-shop.com
Diagrama
139
multilogica-shop.com
Cdigo Fonte
// Ligar motor no pino 2 em serie com um resistor de 15 ohms
// para limitar a corrente em 40mA para nao sobrecarregar o Arduino //Este codigo e de dominio publico.
//Criado em 2014 por Multilogica-Shop. const int motorPin = 2; int buttonState = 0; void setup() {
pinMode(buttonPin, INPUT);
pinMode(motorPin, OUTPUT);
void loop() {
else { }
digitalWrite(motorPin, LOW);
Dica 1 - Sentido do Giro Podemos modificar o sentido do giro de um motor de corrente contnua simplesmente invertendo o sentido da corrente. Com a mesma montagem deste tutorial, teste inverter as conexes do motor e verifique que o mesmo passar a girar no sentido contrrio. 140 multilogica-shop.com
O display de LCD uma pea importante em projetos em que voc precisa visualizar a leitura de um sensor ou mesmo para transmitir uma informao para o usurio. Neste exerccio voc aprender a conectar o Display LCD 2x16 do seu Kit, que j vem com os pinos soldados.
O Que Vou Aprender? Conectar seu display LCD ao Arduino Uno Programar frases para aparecer no visor do LCD Ajustar o brilho do display com um potencimetro Conhecer as funes da biblioteca LiquidCrystal.h Usar as funes: lcd.print lcd.setCursor scrollDisplayLeft() scrollDisplayRight()
141
multilogica-shop.com
Materiais Necessrios
1 Arduino Uno
1 Display LCD
1 Potencimetro
1 Cabo USB AB
Jumpers
1 Protoboard
142
multilogica-shop.com
Diagrama
143
multilogica-shop.com
Cdigo Fonte
/*
Demonstra o uso do display de 16x2 caracteres driver Hitachi HD44780. Este codigo escreve : Multilogica shop (cc) 2014
Circuito :
* LCD pino Enable no pino digital 11 * LCD pino D4 pin no pino digital 5 * LCD pino D5 pin no pino digital 4 * LCD pino D6 pin no pino digital 3 * LCD pino D7 pin no pino digital 2 * LCD pino R/W no terra * Trimpot de 10K : * +5V no +5V * Terra no terra
* wiper to LCD VO pin (pin 3) Codigo de dominio publico baseado no tutorial original : */ http://www.arduino.cc/en/Tutorial/LiquidCrystal
144
multilogica-shop.com
// Inicializa a biblioteca e define os pinos utilizados LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() {
// define o numero de colunas e linhas do Display : lcd.begin(16, 2); // Envia a mensagem para o display.
lcd.setCursor(0, 1); //Posiciona o cursor na primeira coluna(0) e na segunda linha(1) do Display } lcd.print(" (cc) 2014 ");
lcd.print("Multilogica shop");
void loop() { }
145
multilogica-shop.com
Dicas
Se o seu projeto necessita mais espao para visualizar informaes ou um display de LCD diferenciado, conhea estas outras opes:
146
multilogica-shop.com
Exerccio 1 O site do Arduino oferece vrios outros projetos com a Biblioteca LiquidCrystal.h. Aqui faremos mais um exerccio usando a mesma montagem deste Tutorial. Neste exerccio voc poder tambm modificar o texto original e controlar o tempo que seu texto fica fixo e a durao do scroll para a direita ou para a esquerda.
/*
* LCD pino Enable no pino digital 11 * LCD pino D4 pin no pino digital 5 * LCD pino D5 pin no pino digital 4 * LCD pino D6 pin no pino digital 3 * LCD pino D7 pin no pino digital 2 * LCD pino R/W no terra * Trimpot de 10K : * +5V no +5V * Terra no terra
147
multilogica-shop.com
Library originally added 18 Apr 2008 by David A. Mellis example added 9 Jul 2009 by Tom Igoe modified 22 Nov 2010 by Tom Igoe
// Inicializa a biblioteca e define os pinos utilizados LiquidCrystal lcd(12, 11, 5, 4, 3, 2); void setup() {
// define o numero de colunas e linhas: lcd.begin(16, 2); // Envia a mensagem para o display. lcd.print("Multilogica Shop"); delay(2000);
void loop() {
// caminha 16 posicoes para o texto sair do display a esquerda: // caminha uma posicao para a esquerda: lcd.scrollDisplayLeft(); // Aguarda um instante: delay(250);
// caminha 32 posicoes para o texto sair do display a direita: // caminha uma posicao para a direita: lcd.scrollDisplayRight();
148
multilogica-shop.com
for (int positionCounter = 0; positionCounter < 16; positionCounter++) { // caminha uma posicao para a esquerda: lcd.scrollDisplayLeft(); // Aguarda um instante: delay(250);
149
multilogica-shop.com
MULTILGICA
SHOP