fbpx

O que é Arduino – O guia definitivo

Ola! Você está curioso para entender o que é esse negócio de Arduino? Provavelmente já deve ter ouvido pessoas comentando sobre isso, ou viu alguns projetos de automação residencial ou de robótica altamente tecnológicos feito com Arduino? 😱

Ficou curioso e com vontade de desenvolver projetos interessantes, mas não sabe por onde começar?

Então fique tranqüilo, lendo todo este guia você vai entender tudo o que precisa saber para usar um Arduino mesmo nunca tendo tido nenhum contato com ele e com eletrônica.

Se você já é experiente ou se principalmente está começando aqui você vai encontrar todas as informações necessárias para usar a plataforma Arduino e realizar seus projetos.

Vale lembrar que este é um artigo completo, ao ler todo o artigo você já ira conhecer muito bem sobre o Arduino, portanto leia com calma (não se assuste com o tamanho do artigo), tenho certeza que você irá gostar.

Boa leitura e bom aprendizado! Lets get start!

Contents

O que é Arduino/história.

Arduino, o controlador que tem mais chamado a atenção e o interesse das pessoas que estão envolvidas nas áreas de tecnologia, e com isso, surpreendendo a sociedade com os seus novos feitos e facilitando suas vidas, deixando elas bem mais práticas!

A ideia da criação da placa Arduino, veio com o objetivo de oferecer e criar ferramentas acessíveis à todos os públicos, com  baixo custo e flexibilidade de utilização, podendo ser utilizado em qualquer lugar e por qualquer pessoa.

O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época. O sucesso foi sinalizado com o obtenção de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008.

Atualmente, o seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requisito formal e pode ser estendido se tanto ele quanto a ferramenta alternativa suportarem a linguagem Arduino e forem aceites pelo seu projeto. Considerando esta característica, muitos projetos paralelos inspiram-se em cópias modificadas com placas de expansões, e acabam recebendo os seus próprios nomes. Como exemplo nos dias de hoje temos o ESP-8266 e microcontroladores do fabricante STM que são programados utilizando a IDE (do inglês Integrated Development Environment ou Ambiente de Desenvolvimento Integrado) do Arduino.

Open source hardware – Oque é ?       

Open source hardware – Marca

Se você já fez algum projeto ou utilizou uma placa Arduino para fazer alguma coisa você já fez uso desta coisa chamada de open source hardware.  Mas o que seria exatamente isso? Muito bem o termo open source significa – fonte aberta ou o segredo do negocio está liberado, você pode copiar a vontade, pode modificar a vontade, e quem criou não ira te processar por direitos autorais. Estamos falando aqui sobre eletrônica e Arduino e afins, mas isso também se aplica a outras áreas como musica, softwares, construções etc. podemos citar como exemplo o Linux que é um sistema operacional open source e você pode muito bem instalar ele em seu computador e utilizar sem pagar um centavo se quer.

O universo do open source hardware é muito presente na maneira como aprendemos e buscamos conhecimento em eletrônica  através de revistas, sites, blogs como este. Quando reaproveitamos um projeto e modificamos uma parte ou melhoramos alguma coisa ou definimos um novo uso para tal projeto… imagine o seguinte: temos um sistema de regador de uma horta onde temos uma válvula solenoide que abre a passagem de água para a irrigação da horta, podemos aproveitar este circuito eletrônico de acionamento para acionar uma válvula pneumática em uma maquina, (é claro que o software não será aproveitado), mas o que estou querendo dizer é que evoluções são feitas reaproveitando ou fazendo pequenas melhorias em um sistema ou produto.

E no aprendizado é comum observarmos como trabalham os técnicos mais experientes que nós e copiarmos seus métodos e suas idéias (fazemos isso até sem perceber) quando, por exemplo, entendemos a forma como faz para resolver um problema. Hoje o conhecimento esta muito acessível e muito fácil de obter, com a ajuda da internet em uma pesquisa rápida você pode obter idéias e métodos de para se realizar algum projeto de eletrônica ou até já encontrá-lo pronto que alguém já o tenha criado e disponibilizou economizando seu tempo de estudo e desenvolvimento. Grupos de Facebook é outra grande fonte de informação sendo que existem participantes de diversos níveis que se orgulham em compartilhar projetos ou sanar duvidas de amigos. Antigamente era mais comum o uso de revistas tais como saber eletrônica,  eletrônica total  , mecatrônica, entre outras onde lá encontrávamos textos explicativos sobre componentes, tecnologias, projetos etc. No nosso blog temos como missão compartilhar conhecimentos e incentivar a pratica da eletrônica principalmente ao que possa tornar nossos dias aqui neste planeta melhor.

Mas o que o Arduino tem a ver com tudo isso?

O Arduino é uma plataforma de prototipagem rápida e isso significa que através das placas de Arduino e seus Shields e breakouts podemos reduzir o tempo de implementação de um protótipo ou seja podemos testar o resultado final de um produto sem gastar dinheiro e tempo na produção de um produto que não sabemos se terá aceitação das pessoas ou do mercado em geral. Outro porem que se revelou, é que se tornou divertido usar Arduino em projetos de robótica e automação residencial, internet das coisas, impressoras 3d (sem falar em projetos artísticos e musicais)etc. Tudo isso tem atraído e fascinado cada vez mais pessoas, fazendo até com que movimentos makers e DIY (do inglês do it yourself ou faça você mesmo) ganhassem força, comunidades em redes sociais criadas para discutir projetos, idéias etc.

Tipos de Arduino mais conhecidos.

Existem hoje no mercado vários tipos de Arduino, algumas características em cada um são marcantes e melhor se aplicam a cada caso. Por exemplo, o Arduino Mega é um tipo de Arduino dotado de varias portas de entrada e saída, seu Microcontrolador é o ATmega2560, ele é indicado para ser usado em aplicações maiores por possuir boa memória e pinos de entrada e saída. Outro exemplo é o Arduino Lilipad, este é baseado no Microcontrolador ATmega328P e indicado para aplicações werables (vestíveis), sua construção visa facilitar a interligação com sensores e outros dispositivos através de linha condutiva.

Arduino original VS Clone.

Como já dissemos o Arduino é uma plataforma open source hardware ou hardware livre, então é comum existir no mercado placas clone idênticas as originais. Portanto você não precisa se apegar muito na ideia de obter uma placa original. As placas clone possuem a mesma qualidade e com preços bem inferiores das originais. 😎

Na figura abaixo você pode verificar os tipos mais conhecidos no mercado.

Na nossa loja você pode comprar Arduino por excelentes preços não deixe de visitar a categoria clicando no link.

tipos de arduinos mais populares

Qual o melhor Arduino para iniciar? Arduino uno r3.

Pensando que o novo usuário da plataforma pode ser inexperiente com eletrônica e circuitos eletrônicos eu indico que se comece com o Arduino uno, pois seu hardware é mais robusto e este é dotado do microcontrolador ATmega328P PU em encapsulamento DIP (Dual in line package), o que permite em caso de queima de algum pino por mal uso ou erro que seja substituído somente o chip, além de o usuário ter a possibilidade de retirar o microcontrolador da placa e usar ele em um projeto final ou em uma protoboard.

Arduino uno e atmega 328p pinout arduino bootloader

É possível adquirir o chip ATmega328PPU no mercado com facilidade já com o bootloader do Arduino.

Se você quiser conhecer mais sobre o hardware do Arduino uno recomendo esse texto: Arduino uno do site Embarcados. Abaixo separei uma imagem que vai te auxiliar muito na identificação dos pinos do Arduino uno.

“Mapa geral” do Arduino uno R3 – Fonte Circuito.io

Shields sensores e acessórios.

Alguns exemplos de sensores e shields para Arduino

Um Arduino por si só não faz muita coisa (a não ser piscar o led na própria placa). Então para dar mais vida aos nossos projetos é necessário conectar acessórios que podem ser circuitos eletrônicos auxiliares (que vamos ver mais a frente) ou conectar sensores ou Shields.

Sensores.

Sensores são elementos que transformam uma variável física de interesse em uma grandeza passível de processamento. Em nosso caso, a variável é transformada em grandezas elétricas (denominadas sinais) de fácil processamento.

Tipos de sinais

Basicamente existem dois tipos de sinais que depende do sensor e da aplicação em si e que vamos falar a seguir:

Digital.

O sinal digital é um tipo de sinal cujo sua variação possui somente dois estados, ou dois valores diferentes. Por exemplo: Ligado ou desligado, verdadeiro ou falso, 1 ou 0, acionado ou não acionado. Vamos entender melhor com um exemplo abaixo:

Um sensor tem a função de detectar se uma porta está aberta ou fechada, então instalamos um sensor na posição que ela estiver aberta totalmente o sensor esteja acionado (enviando o sinal ao Arduino) e quando esta porta não estiver mais aberta o sensor não está acionado (não enviando o sinal ao Arduino). Percebem que neste caso só existem dois tipos de situações.

Sensor detectando a porta aberta.

Exemplo de sensores digitais: Sensor de proximidade indutivo ou capacitivo, sensor óptico, chaves fim de curso, sensor de presença etc.

Analógico.

O Sinal analógico se comporta de maneira diferente. Este tipo de sinal vai sofrer variações de valores no decorrer do tempo. Vamos usar o exemplo da porta citado no sensor digital, porem agora imagine que uma pessoa ao abrir a porta a deixou com 80% (mais aberta do que fechada) do seu curso total aberta, e em outro momento a mesma pessoa passou pela porta e deixou a porta com 10% do seu curso (mais fechada do que aberta). Perceba que agora a informação de que a porta está aberta ou fechada não tem relevância, mas sim a posição que ela se encontra.

Sensor detectando o “quanto” a porta esta aberta – hora 80% aberta e depois 10% aberta

Exemplos de sensores analógicos: Sensor de temperatura, sensor de luminosidade, sensor de umidade, sensores de pressão etc.

Basicamente são esses os tipos de sensores mais comuns porem é possível encontrar sensores que os sinais enviados fujam um pouco deste conceito, como rede ou impulsos elétricos. Como o caso do sensor de distancia HSR4.

Shields.

Os Shields para Arduino são acessórios muito úteis, eles ajudam a dar vida aos nossos projetos assim como os sensores. Estes dispositivos são construídos de forma a facilitar nossa vida na hora de realizar as montagens dos nossos protótipos.  Veja alguns exemplos abaixo:

Modulo 8 relés para automação com arduino

Veja este modulo de 8 relés da foto acima, ele é um shield  capaz de interligar dispositivos (lâmpadas, eletrodomésticos etc.) ao seu Arduino.

Módulo-Bluetooth-Rs232-Hc-05 – Ideal para controlar dispositivos em curta distância.

Circuitos elétricos.

Definição.

Definimos como circuito elétrico a interligação de elementos básicos da eletricidade como: fonte de alimentação, condutores e carga e por nestes elementos haja a circulação de corrente elétrica. Nos circuitos elétricos encontramos as três principais grandezas elétricas: Tensão, Corrente, e resistência ou impedância.

Tensão

Fonte de alimentação

Para que um circuito funcione é preciso que exista uma fonte de alimentação, esta será responsável por fornecer a energia necessária para que o circuito elétrico funcione.

Tipos de fonte de alimentação

As fontes de alimentação que irão alimentar nossos circuitos podem ser pilhas, baterias, geradores ou fontes que convertem energia da rede elétrica CA para CC. Quando trabalhamos com Arduino e outros microcontroladores utilizamos sempre fontes de corrente continua (CC) com tensão de 5V.

É possível você mesmo construir a sua própria fonte de alimentação e não precisar utilizar mais pilhas. No nosso blog temos o projeto de uma fonte de alimentação variável, o projeto está dividido em duas partes, acesse a parte 1 aqui e a parte 2 aqui.

Corrente

Corrente continua (CC)

Denominamos corrente continua onde a fonte se mantém a um valor fixo e não se altera com o decorrer do tempo. As fontes de corrente continua são pilhas, baterias, fontes cc etc. A corrente continua está muito presente na eletrônica principalmente na alimentação de microcontroladores.

Corrente alternada (CA)

Denominamos corrente alternada onde os níveis de tensão se alternam no decorrer do tempo. No decorrer do tempo ela ira assumir um valor de pico Maximo positivo e um valor de pico Maximo negativo. Chamamos de ciclo a alternância completa que varia do zero ao pico Maximo positivo, que passa pelo zero vai até o pico Maximo negativo e retorna ao zero.  Na corrente alternada encontramos mais uma variável que é a freqüência que é quantidade de ciclos dentro de um segundo, e a unidade de medida de freqüência é o Hz (hertz). No Brasil a nossa freqüência da rede elétrica é de 60Hz ou 60 ciclos por minuto. As fontes de corrente alternada geralmente são geradores, é possível obter se também através de circuito conversores.

A figura abaixo fica demonstrada a diferença da forma de onda entre CC e CA.

Formas de onda ac e dc

Condutores e dispositivo de interligação.

Para que os circuitos funcionarem é necessário que os dispositivos sejam interligados, para isso necessitamos de elementos que conduzam a corrente elétrica. No caso das nossas montagens vamos precisar de cabos para interligação e protoboard, acesse este artigo para conhecer mais sobre a protoboard.

Protoboard

Chaves e dispositivos comutadores (ligar / desligar).

Para que possamos controlar um circuito elétrico (quando ele ira permanecer ligado ou desligado) utilizamos chaves e botões que são componentes que através de um sistema mecânico fecham ou abrem contatos dando passagem ou interrompendo a circulação da corrente elétrica no circuito. Mais a frente neste post vamos falar sobre relés, os relés também são capazes de ligar ou desligar circuitos elétricos porem estes podem estar interligados a microcontroladores e Arduino trazendo grandes possibilidades de automações.

Carga.

Podemos definir como carga os elementos do circuito elétrico que irá converter a energia elétrica em outro tipo de energia, como exemplo um motor que converte a energia elétrica em movimento, ou energia mecânica. Um tipo típico de carga são as resistências, que convertem energia elétrica em energia térmica dissipando seu calor.

Eletrônica.

Dentro dos nossos estudos com microcontroladores e Arduino é muito importante o conhecimento em eletrônica. O avanço da eletrônica nas ultimas décadas nos tem possibilitado presenciar cada vez mais produtos e tecnologias incríveis que estão revolucionando o mundo.

A seguir vamos conhecer um pouco sobre os principais componentes para o uso em nossos projetos com o Arduino.

Resistores.

resistor-componente-e-simbologia

O resistor ou resistência elétrica é um componente que converte energia elétrica em energia térmica. Os resistores são amplamente utilizados na eletrônica e é considerado um dos componentes mais básicos.

Os resistores têm por finalidade se opor a passagem de corrente elétrica e com isso limitar a corrente elétrica a valores adequados para se alimentar outros componentes como é no caso dos Leds (é necessário que exista um resistor em serie com um led para limitar a corrente a um valor que não ofereça risco de queima do led), também aplicamos resistores como divisores de tensão para obter se outros níveis de tensão necessários para alimentação de outros componentes ou circuitos.

Cada resistor possui um valor de resistência e a unidade de medida de resistência é o Ohm (Ω). É possível reconhecer o valor de um resistor através de uma tabela de código de cores.

Tabela de código de cores para resistores

A tabela funciona da seguinte forma: a 1°, 2°, 3° faixa são os valores a 4° faixa é um fator multiplicativo que irá multiplicar a sequência encontrada na 1°, 2° e 3° faixa.  Na ausência da 3° faixa se leem somente as duas primeiras, no caso um resistor de 4 faixas a 3° faixa será o fator multiplicador e em um resistor de 5 faixas será a 4° faixa. A ultima faixa sempre vai dizer respeito a tolerância do valor da resistência.

Na imagem acima temos um exemplo envolvendo um resistor que vamos analisa-lo abaixo:

1° faixa cor marrom = 1

2° faixa cor preto = 0

3° faixa cor vermelha = 2

4° faixa cor dourado = +-0,5% (tolerância)

Logo temos 10×100 que é igual a 1000 que é igual a 1K, isso significa que temos um resistor de 1K com uma tolerância de +-5%.

Associação de resistores

Os resistores podem estar associados uns aos outros, desta forma alterando a resistência equivalente, que pode ser: serie paralela ou mista. Abaixo segue uma imagem para exemplificar melhor como é cada tipo de associação.

Associação-de-resistores-serie-e-paralelo

Capacitores

Capacitor-componente-e-simbologia

Os capacitores também são componentes básicos na eletrônica. O capacitor é um componente capaz de armazenar energia em forma de campo elétrico. A unidade de medida de capacitância é o Farad (F) a maioria dos capacitores tem seus valores expressos em uF. São constituídos por duas placas chamadas de armadura e um material isolante interno chamado dielétrico.  Existem capacitores de corrente alternada e corrente continua, os capacitores de corrente continua não podem ser alimentados por circuitos de corrente alternada causando riscos de explosão do mesmo. As tensões de alimentação dos capacitores devem ser respeitadas, caso seja ultrapassada podem resultar em explosões do mesmo. Umas das aplicações clássicas dos capacitores são em circuitos retificadores atuando como filtro.

Diodos.

Diodo-componente-e-simbologia

Os diodos são componentes eletrônicos semicondutores que tem como característica principal a circulação de corrente em um único sentido, essa característica se torna interessante ao uso em fontes ou circuitos conversores uma vês que alimentado em corrente alternada ele permite a passagem somente do semiciclo positivo. Os terminais do diodo são chamados de anodo e catodo (conforme a figura abaixo). Para que haja circulação de corrente é necessário que o diodo esteja polarizado diretamente (positivo da fonte ligado no anodo e negativo ligado no catodo). Para que não haja circulação de corrente o diodo deverá estar polarizado reversamente (positivo da fonte ligado no catodo e negativo ligado no anodo).

Como o circuito se comporta com o diodo polarizado diretamente e reversamente.

Leds.

Led – componente e simbologia.

O Led (Light Emitting Diode) em português Diodo emissor de luz,é um tipo de diodo que emite luminosidade quando por ele circula uma corrente elétrica. O led é um componente muito utilizado em diversas aplicações com o intuito de sinalizar algo ao usuário final de um dispositivo, por exemplo, indicar que o equipamento esta ligado, indicar uma situação como um alerta ou um alarme. Para ligar um led é necessário a ligação de um resistor em serie que terá a função de limitar a corrente a um valor que o led não se queime. Veja como calcular um resistor limitador para um led. 

Circuito com led e resistor limitador de corrente.

Transistores.

Os transistores são componentes semicondutores que podem trabalhar como chave ou amplificador. O seu surgimento revolucionou a eletrônica e a tecnologia na forma como conhecemos hoje. Os transistores são compostos por 3 terminais : base, coletor e emissor. Quando polarizado corretamente controlamos a corrente que circula nos terminais coletor e emissor, através da corrente de base. Os transistores podem ser tipo NPN e PNP, na prática muda a forma de polarização do transistor e como a corrente circula pelos terminais. Outra característica importante sobre o transistor é o Hfe que significa o ganho ou fator de amplificação do componente (este dado sempre estará contido no datasheet do componente).

Ex.:  Hfe = 500

Corrente de base = 0,01ma

Corrente de coletor = 500×0,01 = 5ma

transistor – componente e simbologia npn e pnp

Chaves / botões.

São dispositivos usados para interação humana, usamos esses componentes quando queremos que algo aconteça, por exemplo, ligar ou desligar alguma coisa, reconhecer um alarme, aumentar ou diminuir um valor etc. As chaves possuem uma retenção ou seja ao acionarmos ela ira permanecer na posição acionada, já os botões são de ação momentânea ou seja ao pressionarmos ele se mantém acionado ao soltarmos ele volta ao seu estado original desligado.

botão e chave – componente e simbologia

Outro detalhe importante é que existem dois tipos de contato o Na (normal aberto) e o Nf (normal fechado). O normal aberto o contato fica aberto não permitindo a passagem da corrente elétrica até ser acionado e neste momento se fecha permitindo a passagem da corrente elétrica. Já o normal fechado se mantém fechado permitindo a passagem da corrente elétrica e quando acionado o contato abre bloqueando a passagem da corrente elétrica.

Contatos normal aberto e normal fechado

Relés / interfaces

relé – componente e simbologia

Os relés são componentes essenciais em qualquer automação. É através dos relés que acionamos cargas de maior potencia. Um relé ou relê (os dois termos são corretos, apesar de relê ser menos freqüente) é um interruptor eletromecânico, ou seja, possui partes elétricas e partes mecânicas móveis. É utilizado como dispositivo de manobra, para ligar ou desligar circuitos ou equipamentos elétricos.

Basicamente o relé é formado por uma bobina e seus contatos elétricos. A bobina quando percorrida por uma corrente elétrica, dá origem a um campo magnético que atrai os contatos do relé, fazendo com que eles mudem de posição, desta forma abrindo ou fechando o circuito elétrico conectado a eles. E através dos contatos que ligamos dispositivos de maior potencia como: ventiladores, lâmpadas, eletrodomésticos etc.

Um arduino através de interfaceamento é capaz de ligar lampadas e outros dispositivos

Se quiser saber mais sobre relés temos um post aqui no nosso blog só falando sobre isso: Arduino e Módulo Relé Para Acionamento de Cargas Elétricas

Displays.

display lcd 16×2

Um display é uma interface de comunicação e visualização de informações, o termo LCD significa (Display de Cristal Líquido – Liquid Crystal Display). As aplicações para este tipo de display são inúmeras, desde relógios de pulso, televisores, monitores de computador, painéis de instrumentos e tantas outras.

Displays de LCD possuem características como: numero de caráteres por linha, numero de linhas, cor dos caracteres e a opção de ter ou não backlight (luz de fundo). Para conhecer um pouco mais sobre display de LCD você pode acessar este artigo em nosso blog: Utilizando o Display LCD 16×2 com Arduino e Sensor Ultrassônico.

Motores.

Motores são maquinas elétricas capazes de converter a energia elétrica em energia mecânica, girando um eixo que por sua vês estará acoplado a uma parte móvel. Ex.: Motor de um carro robótico, motor que controla um eixo de uma maquina CNC, impressora 3D, motor de ventiladores e etc. Existem vários tipos de motores e para aplicações junto com Arduino, é mais comum o uso de motores AC, DC e de passo.

motor dc – componente e simbolo

Dispositivos de entrada e saída e comunicação.

Todos os sistemas eletrônicos computadorizados têm a necessidade de coletar dados para que esses sejam processados e devolvidos adequadamente ao usuário do sistema. Podemos usar como analogia uma calculadora onde nós digitamos o algarismo a operação aritmética que queremos que ela faça e novamente outro algarismo, essas ações foram realizadas por um dispositivo de entrada que é o teclado da calculadora e ao apertarmos o sinal de igual a calculadora irá processar as informações que digitamos e irá responder com o resultado da conta no display que é um dispositivo de saída. Outro exemplo seria um sensor de temperatura conectado ao Arduino como dispositivo de entrada e caso esta temperatura venha a aumentar muito um alarme soará através de um buzzer (que é um dispositivo de saída) nos informando que a temperatura está alta demais. Abaixo temos mais alguns exemplos de dispositivos de entrada e saída.

Entrada.

Dispositivos de entrada são responsáveis por levar informações do mundo externo ao Arduino. Exemplo: sensores, botões, teclados etc.

Saída.

Ao contrario dos dispositivos de entrada, os de saída enviam informações ao mundo externo. Exemplo: Displays, relés, buzzers, led etc.

Comunicação.

São dispositivos mais sofisticados como Shields. Esses tanto enviam como recebem informações, normalmente utilizam a comunicação serial. Exemplo: Ethernet shield, Bluetooth shield etc.

Conexões com arduino – entrada saida e comunicação com o mundo

Programando um Arduino.

Baixando e instalando a IDE do Arduino.

Para programar o Arduino é necessário baixar e instalar a IDE do Arduino no seu computador. IDE significa (Integrated Development Environment ou Ambiente de Desenvolvimento Integrado). Você pode baixar gratuitamente diretamente no site do Arduino clicando aqui. Você vai escolher a versão de acordo com o seu sistema operacional. Caso seu sistema operacional seja o Windows 8.1 ou 10 você será redirecionado a Microsoft store. É possível obter a IDE para Linux e Mac também.

pagina de download IDE arduino – site oficial do Arduino

Uma novidade é o Arduino web creator, onde você pode fazer toda a programação pelo próprio site do Arduino, é necessário fazer um cadastro no site. Eu ainda não testei, mas parece ser uma idéia interessante.

Conhecendo a IDE do Arduino

Após baixar e instalar a IDE do Arduino, ao abrir vamos a ver assim:

visão geral IDE arduino

Na figura abaixo está um resumo da IDE do Arduino, indicando as principais funções da mesma. Depois vamos ver o que significa cada uma delas.

descrição da IDE arduino com detalhes dos menus e botões                                      

Barra de menus é onde se localizam algumas funções mais especificas que não são usadas freqüentemente durante o uso da IDE como: imprimir, bibliotecas, configurações de pagina, preferências etc.

Botão Verificar é usado para checar se existem erros no sketch (no Arduino também chamamos os programas que desenvolvemos para ele de Sketch).

Botão carregar é usado para enviar o sketch para o Arduino. Esta ação faz a verificação antes de enviar o sketch para o Arduino.

Botão Abrir: Abre um novo sketch que já esta salvo em seu computador.

Botão Salvar: da à opção de salvar o sketch que você fez.

Botão monitor serial: Abre a tela de monitor serial, vamos falar mais dela daqui a pouco.

Área de setup e Área de código: Nesta parte é onde escrevemos o nosso sketch, também vamos falar o que deve conter em cada uma destas áreas daqui a pouco.

Na Barra de informações a IDE do Arduino irá nos dar informações básicas sobre tamanho do sketch, erros de compilação, ou sem erros de compilação etc.

E em baixo no rodapé temos informações sobre Modelo da placa e numero da porta USB conectada.

Essa foi uma visão geral da IDE do Arduino, agora que já esta familiarizado com os itens básicos dela vamos entender como são feitos os programas do Arduino.

Monitor Serial.

Mas antes de partirmos para programação em si vale a pena conhecer primeiro o monitor serial. O monitor serial é um recurso interessante e bastante útil e se trata de uma tela onde é possível receber e enviar informações pela serial do Arduino. O Arduino possui em seu chip Atmega328ppu os pinos de comunicação serial Rx (pino 0) e Tx (pino1). É através destes pinos que o Arduino se comunica com outros dispositivos como o nosso computador. É possível enviar frases, números, textos, resultados de contas, valores de entrada analógica, variáveis etc. Um recurso interessante que obtemos através do monitor serial é o de Debug, por exemplo, quando queremos ter a certeza de que o valor de temperatura lido pelo Arduino é correspondente ao real, programamos o Arduino para que ele envie este valor pela serial e checamos se tal é verdadeiro ou não.

Monitor serial Arduino

Linguagem de programação do Arduino.

A linguagem de programação do Arduino é uma linguagem de alto nível, ou seja, uma linguagem que se aproxima da linguagem humana. A linguagem de programação do Arduino é baseada em C++.

Bibliotecas.

As bibliotecas são extensões de funções dentro da linguagem, tem como objetivo facilitar e simplificar o desenvolvimento de códigos. Existem as bibliotecas padrão do Arduino, que já estão incluídas com a instalação da IDE ex.: Ethernet, LiquidCrystal,Servo e bibliotecas criadas por terceiros, ou por você mesmo se quiser criar uma. As bibliotecas devem ser declaradas no inicio do código (antes do setup). Existe a forma correta de se declarar uma biblioteca, é preciso incluir o seguinte termo: #include <nome da biblioteca.h>.

Ex:

Estruturas de um programa de Arduino.

Um programa de Arduino está dividido em duas partes Void setup e void loop. A função setup é lida pelo microcontrolador somente uma vês na inicialização do mesmo e a função loop é lida infinitamente até a placa ser desligada.

Void setup

Está função como já disse acima é lida somente uma única vês quando a placa do Arduino é ligada. Essa parte é usada para declaração de variáveis, modo dos pinos, bibliotecas etc. Abaixo temos um exemplo de aplicação do setup.

Void loop

Após rodar a função setup o Arduino entra na função loop e fica até ser desligado ou pressionado o botão de reset. O código escrito aqui será responsável por todo o funcionamento do seu sistema. Todo o programa deve ser escrito pensando no usuário final, como seu sistema vai funcionar, o que ele vai fazer e o que ele não irá e não vai poder fazer, ou seja, toda a parte lógica do seu sistema deve ser muito bem pensada para se obter uma boa performance do funcionamento. Um bom programador conhece muito bem o processo e o usuário final do seu sistema se prevenindo contra os famosos bugs que nada mais são do que erros de funcionamento do sistema. E também (ou melhor, ainda bem) existe a parte do debug que é o processo de identificação e correção destes erros.

Mas fique tranqüilo por enquanto vamos focar no mais básico afinal a ideia é que você de os primeiros passos e saiba como dar os próximos. 😃

O exemplo abaixo é mais simples de todos e também o melhor para compreender a função loop que é o blink, que faz com que um led conectado na saída do Arduino fique piscando direto enquanto o Arduino permanecer ligado.

Perceba que a saída onde está o led está sendo manipulada passo a passo para que ao olharmos o led vamos vê-lo piscando a cada um segundo.

Entenda o seguinte:

Abaixo na imagem tem um exemplo de um programa de Arduino. Perceba que expressão if (botão liga ==1) estamos monitorando uma situação, ou seja estamos monitorando a hora que esse botão será pressionado. A partir disso definimos uma ação para este evento, que é a ligação do motor que resultará no seguinte: {digitalWrite motor =1}.

programação de arduino – if e digitalwrite

Sempre então vamos verificar se um evento é verdadeiro ou falso e baseado nisto definimos uma ação posterior.

Sintaxe básica.  ();{},

É muito importante em qualquer linguagem de programação que você de total atenção a sintaxe da linguagem como os parênteses, as vírgulas, ponto e vírgulas etc. Qualquer erro de digitação irá impossibilitar a compilação do programa.

Variáveis.

Boolean

As variáveis boolean ou booleanas são variáveis que assumem somente 2 estados verdadeiro (true) e falso (false). Como exemplo de situação podemos citar o das portas: Porta aberta e porta fechada. Ex:

Int.

Uma variável do tipo int é capaz de armazenar dados de um numero inteiro.  Isso pode variar entre -32,768 a 32,767 em um Arduino uno. Em outros modelos de placa isso pode ser diferente.

Char.

Esta variável é capaz de armazenar 1 caractere (letra). Este tipo de dado ocupa 1 byte na memória. Os caracteres são escritos entre aspas.

Float.

Este tipo de variável é usado para representar números com ponto flutuante (virgulas). Floats são armazenados em 32 bits (4 bytes) de memória.

Operadores Boleanos.

Esses operadores também são conhecidos como portas lógicas na eletrônica digital, dizem respeitos as operações básicas da álgebra de bole, são largamente utilizados em praticamente todos os tipos de programações. São eles : E, OU e NEGAÇÃO.

&& E lógico

O E lógico resulta em verdadeiro, apenas se ambos os operandos são verdadeiros. Vale lembrar que condições verdadeiras e falsas na linguagem Arduino são representadas por true e false respectivamente. Uma forma melhor de entender isso é com o exemplo de acionamento por bi-manual. Se o botão 1 e o botão 2 (botões representados pelas entradas digital 1 e digital 2) estiverem ligados o resultado é verdadeiro.

|| OU lógico

O OU lógico resulta em verdadeiro se pelo menos um dos operandos é verdadeiro.

Ainda utilizando o exemplo dos botões agora se um botão somente for pressionado a expressão se tornará verdadeira.

! NÃO lógico

O NÃO lógico resulta em verdadeiro se o operando é falso, e vice-versa.

Comparações. 

A atividade de comparar é uma coisa bastante comum até no dia a dia das pessoas. Sempre estamos comparando uma coisa com a outra, seja uma variável ex: ”hoje está mais frio que ontem”. Ou se tratando de objetos ex: “este carro possui 20.000 km rodados, enquanto aquele possui 15.000 km”. O uso de comparações na automação é atividade intensa, para controlar variáveis estamos sempre comparando valores reais com um valor de set point. Um exemplo comum é o controle de temperatura de uma geladeira: queremos que ela mantenha uma temperatura de 10°C e ajustamos o controle para que ela mantenha refrigerando em 10°C, aí toda vês que a temperatura subir acima de 10°C ela irá acionar seu sistema de refrigeração fazendo com a temperatura volte ao 10°C novamente.

Neste exemplo o if foi usado para comparar, mas outras estruturas de controle também podem ser usadas para realizar essa tarefa.

Abaixo as situações possíveis em que usamos os operadores de Comparação

!= (diferente de)

< (menor que)

<= (menor que ou igual a)

== (igual a)

> (maior que)

>= (maior que ou igual a)

Operações aritméticas.

É possível realizar cálculos matemáticos utilizando o Arduino.

% (resto)

* (multiplicação)

+ (adição)

– (subtração)

/ (divisão)

= (operador de atribuição)

Ex:

Estruturas de controle.

Através da estrutura de controle definimos o fluxo do programa, abaixo vou citar as principais.

if…else

O comando if checa uma condição e executas o comando a seguir ou um bloco de comandos delimitados por chaves, se a condição é verdadeira (‘true’).

Sintaxe:

Exemplo:

while

Um loop while irá se repetir continuamente, e infinitamente, até a expressão dentro dos parênteses (), se torne falsa. Algo deve mudar a variável testada, ou o loop while nunca irá encerrar. Isso pode ser no seu código, por exemplo, uma variável incrementada, ou uma condição externa, como a leitura de um sensor.

Sintaxe:

Exemplo:

For

O comando for é usado para repetir um bloco de código envolvido por chaves. Um contador de incremento é geralmente utilizado para terminar o loop. O comando for é útil para qualquer operação repetitiva, e é usado freqüentemente com vetores para operar em coleções de dados ou pinos.

Sintaxe:

Exemplo de código:

switch…case

Um comando switch compara o valor de uma variável aos valores especificados nos comandos case. Quando um comando case é encontrado cujo valor é igual ao da variável, o código para esse comando case é executado.

Funções digitais

Usamos as funções digitais para manipular variáveis booleanas. Elas estarão descritas a seguir.

digitalRead()

Lê o valor de um pino digital especificado, que pode ser HIGH ou LOW. Função utlilizada para realizar leitura de botões, chaves, fins de curso e outros sensores cujos sinais são booleanos.

Sintaxe

Retorna

HIGH ou LOW

Exemplo de código:

digitalWrite()

Aciona um valor HIGH ou LOW em um pino digital ou seja liga ou desliga um pino do Arduino.

Se o pino for configurado como saída (OUTPUT) no setup com a função pinMode(), sua tensão será acionada para o valor correspondente: 5V (ou 3.3V em placas alimentadas com 3.3V como o DUE) para o valor HIGH, 0V (ou ground) para LOW.

Se o pino for configurado como entrada (INPUT) no setup, a função digitalWrite() irá ativar (HIGH) ou desativar (LOW) o resistor interno de pull-up no pino de entrada. É recomendado configurar pinMode() com INPUT_PULLUP para ativar o resistor interno de pull-up. Veja o tutorial sobre pinos digitais para mais informações.

Sintaxe:

Exemplo:

pinMode()

Configura o pino especificado para funcionar como uma entrada ou saída.É possível ativar os resistores internos de pull-up como o modo INPUT_PULLUP

Sintaxe:

Exemplo:

Funções analógicas.

analogRead()

Lê o valor de um pino analógico especificado. Isso significa que este irá mapear tensões entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isso permite uma resolução entre leituras de: 5 volts / 1024 unidades, ou .0049 volts (4.9 mV) por unidade

Sintaxe:

Exemplo:

analogWrite()

Aciona uma onda PWM (saiba mais sobre PWM clicando aqui). Pode ser usada para variar o brilho de um LED ou acionar um motor a diversas velocidades. Após a função analogWrite() ser chamada, no pino haverá uma onda quadrada com o duty cycle (ciclo de trabalho) especificado até a próxima chamada de analogWrite() (ou uma chamada de digitalRead() ou digitalWrite() no mesmo pino). A freqüência do sinal PWM na maioria dos pinos é aproximadamente 490 Hz. No Uno e placas similares, pinos 5 e 6 usam uma freqüência de aproximadamente 980 Hz.

Sintaxe:

Exemplo:

Muito mais sobre programação do Arduino.

Tudo o que mencionei aqui nesta parte Programando um Arduino é a parte que eu julgo ser a principal para você já sair programando. Mas você pode obter mais informações acessando esta pagina no site oficial do Arduino:

Documentação de Referência da Linguagem Arduino 

Alguns projetos de Arduino para você praticar.

Chega de teoria vamos por a mão na massa agora. Separei alguns exemplos práticos para você praticar e entender melhor tudo que nós aprendemos até agora.

Blink.

O blink é um dos projetos mais básicos que você pode fazer utilizando o Arduino, e através do blink com certeza você irá conseguir entender como funciona a execução de um programa no Arduino. A montagem é bem simples e acaba sendo um opcional pois na própria placa do Arduino já existe um led conectado ao pino 13.

Montagem:

Ligação blink com arduino usando led na protoboard

Código:

Assista a este vídeo de como ficou o funcionamento:

Analog read serial (Leitura da tensão da entrada analógica).

Neste exemplo vamos Ler através do monitor serial o valor da tensão no pino 0 do Arduino, para isso vamos utilizar um potenciômetro como no esquema abaixo:

Ligação do potenciômetro com arduino

Código:

Assista o vídeo desta pratica.

Mais projetos com Arduino em nosso blog.

Aqui vai alguns exemplos de projetos envolvendo outros dispositivos que citamos no texto que já estão publicados no nosso blog. Vale a pena conferir…

Sensor de luminosidade com ldr.

Termômetro Com Arduino e LM35

Acendendo Lâmpada com Sensor de movimento e presença PIR

Controle de Acesso com Módulo RFID e Arduino

Conclusão:

As informações que trouxemos a você através deste artigo têm o objetivo de ensinar o mais essencial para que você possa iniciar com o Arduino. Certamente em varias ocasiões você irá precisar de mais informações e é possível encontrar muita informação na internet em blogs como este, em grupos etc.

Se você gostou deste artigo compartilhe com seus amigos. Deixe sua opinião nos comentários, gostamos muito de ouvir você 😉

Se você gosta do tema e quer ir além veja mais detalhes deste treinamento completo sobre Arduino neste post:

Curso de Arduíno – do zero ao avançado – o melhor curso de Arduíno do Brasil.

Você também pode gostar

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *