Tutorial Arduino

O que é o Arduino?

O Arduino é um módulo eletrônico contendo um microcontrolador da Atmel que vem com um bootloader gravado, porta USB para conexão com PC, conectores que dão acesso as portas de entrada/saída, dispostas de forma a aceitar módulos periféricos denominados Shields e uma IDE para a transferência do seu programa compilado (sketch) ao Arduino de forma a evitar toda a complexidade no desenvolvimento e uso, permitindo aos iniciantes implementarem projetos simples com sucesso de forma rápida.

O projeto Arduino é de código e hardware aberto permitindo que vários fabricantes ofereçam o produto legalmente e funcionando exatamente da mesma forma sendo que os componentes e montagem podem ter diferentes níveis de qualidade.

A IDE que foi desenvolvida de JAVA roda em várias plataformas e sua instalação é realmente fácil e também conta com um monitor serial, muito útil para debug do programa.

Portanto, o Arduino é um ou vários projetos de código aberto que surgiu para facilitar o aprendizado e uso de microcontroladores, que antes eram utilizados somente por um número restrito de desenvolvedores e empresas por ser dispendioso e necessitar de muito conhecimento. Estes microcontroladores são utilizados em automação industrial, automação comercial robótica e alguns dispositivos "inteligentes" em uma escala cada vez maior, se estendendo aos dispositivos e coisas inteligentes ligadas a Internet (IoT).

O conhecimento que citamos ser necessário antes do Arduino, é sobre eletrônica, arquitetura de microprocessadores, linguagem de máquina, programação e lógica, protocolos de comunicação, rádio-frequência, etc para poder desenvolver até mesmo os circuitos mais simples. Agora com o Arduino, tudo ficou surpreendentemente mais fácil. É óbvio que ajuda muito estudar porém é possível uma pessoa com muita vontade de aprender consiga implementar um projeto simplesmente pesquisando na internet e assistindo alguns vídeos tutoriais.

Glossário:

Microcontrolador:

Microprocessador contendo, adicionalmente, Portas de entrada/saída, memória de trabalho e memória de programa, muito utilizado em automação, robótica e a nova onda da Internet das coisas

Os microcontroladores se caracterizam pela arquitetura (8 bits, 16 bits, 32 bits e até 64 bits), pela frequência do clock (que vai de mais de 10 MHz até alguns GHz), pela quantidade de portas de entrada/saída, pelos seus módulos internos tais como UART, conversores A/D, PWM, comunicação SPI I2C e outros.

Bootloader:

Programa fixo que já vem gravado na memória do microcontrolador que dá suporte ao seu programa e aos componentes do Arduino tais como a porta USB. Graças a ele, as complexidades do desenvolvimento são pré resolvidas e tratadas internamente tornando o trabalho do programador muito mais fácil. O Bootloader também dá suporte para realizar a transferência do sketch compilado e reboot. O uso de temporizadores, interrupções, EEPROM, portas seriais, FUSE, etc ficam invisíveis ou facilitados eliminando a complexidade.

Portas de entrada:

São conjuntos de pinos do microcontrolador com função de medir ou detectar sinais elétricos ou até receber informação vindos de sensores ou conexões de comunicação de outros módulos ou dispositivos

Portas de saída:

São conjuntos de pinos do microcontrolador com a função de enviar sinais ou acionar circuitos externos ou comunicação com outros dispositivos ou equipamentos

No Arduino, as portas de entrada e portas de saída compartilham os mesmos pinos porém cada pino somente poderá ser somente de entrada ou de saída, definido pelo código no início do sketch.

Na figura, vemos um exemplo de portas de um microcontrolador em cores diferentes

Comunicação:

A forma com que é feita a troca de informação do Arduino com outros dispositivos e sistemas pode ser através de portas seriais de vários padrões (RS232, RS485, I2C, SPI) além de poder ser estendida com o uso de shields como por exemplo: Ethernet e WiFi

IDE:

Ambiente de programação inteligente para rodar no PC que além de ser um ótimo editor de código capaz de indicar erros básicos automaticamente, também compila o sketch e transfere o pacote binário para o Arduino e então reinicia o Arduino, tudo isso em apenas 1 clique.

Sketch:

Código fonte de programa próprio do Arduino que iremos desenvolver na linguagem C/C++

Compilar:

Converter o sketch que está escrito em C/C++ para o código binário do processador utilizado no Arduíno. Note que o código binário só serve para um microcontrolador específico.

Binário:

São zeros e uns que só o microprocessador entende. A palavra binária é por ser informação constituída por apenas 2 estados ou caractere (0 e 1 ou Low e HIGH ou baixo e alto ou apagado e aceso ou desligado e ligado)

Monitor serial:

O monitor serial se conecta com o Arduino pela porta serial e é muito útil para enviar informações do Arduino para o PC, principalmente para confirmar o funcionamento correto do seu código que está rodando no Arduino. Além disso, permite enviar dados para o Arduino.

Shields:

São módulos acopláveis ao Arduino por possuirem conectores com o mesmo padrão do Arduino facilitando a montagem mecanica.

Site do Arduino:

O site oficial do Arduino é http://arduino.cc/. Este site já contém a maioria das informações necessárias para se desenvolver um bom projeto.

Porém, o maior problema de quem está começando é o Inglês. Não se preocupe, há muita informação já traduzida para a nossa língua e aqui estamos para contribuir também.

Página de referencia

Consulte nossa página de referencia em português:

Modelos do Arduino:

Os principais Arduinos são:

Arduino UNO - Arduino básico com CPU de 8 bits ATmega328P e clock de 16 MHz 14 portas digitais (6 PWM) e 6 portas analógicas

Arduino Mega 2560 - Arduíno avançado com CPU de 8 bits ATmega2560 e clock de 16 MHz 54 portas digitais (15 PWM) e 16 portas analógicas

Arduino Nano - Versão menor do UNO com o mesmo processador de 8 bits ATmega328P

Arduino Pro Micro - Versão ainda menor do UNO, com o mesmo processador ATmega328P sem interface USB.

Desenvolvimento para o Arduino

Para desenvolver o programa, existe o editor apropriado (IDE) que facilita a edição do seu sketch (código do seu programa para o Arduino) contendo recursos necessários para criar, manter, compilar e transferir o seu programa para o seu Arduino. Veja mais detalhes no Tutorial da IDE oficial do Arduino.

Outra IDE que merece destaque é o Sloeber, IDE para Arduino com base no Eclipse CDT.

Problemas de instalação do Arduino:

Alguns Arduinos alternativos vem com chip conversor de USB/Serial diferente e portanto não funcionam com o driver oficial.

Driver Oficial - Baixe a IDE do Arduino e o instalador do Driver será uma das opções de instalação.

Driver CH340 - http://driverzone.com/%7B795007d3-9d0a-4882-a977-28179c5dabb4%7D


Caso já saiba como instalar a IDE, basta seguir para o repositório de software do site oficial do Arduino.

Como instalar e desinstalar as bibliotecas do Arduino?

Artigos sobre o Arduino:

Sugerimos fortemente que os iniciantes experimentem projetos simples para ir evoluindo gradativamente conforme a complexidade dos projetos facilitando o aprendizado e principalmente evitando frustrações.

Iniciante no Arduino

Canal no Youtube Robotec

Como expandir portas de saída do Arduino?

Como expandir portas de entrada do Arduino?

Como medir sinais analógicos?

Como ligar um display LCD?

Como adicionar um relogio em tempo real?

Como gravar informação para recuperar mesmo depois de desligar o Arduino?

Como utilizar módulos Ethernet?

Como utilizar módulos de rádio?

Como utilizar módulos Bluetooth?

Como utilizar módulos RFID?

Como utilizar módulos GSM?

Como implementar controle remoto Infra Vermelho?

Sensores de Humidade, Temperatura e Pressão?

Comunicação serial RS232, RS485, ModBus e HART

GPS, Acelerômetro, Magnetômetro e Giroscópio?

Sensores ultrassom e laser?

Multitarefa - Como executar várias funções ao mesmo tempo?

Problemas e erros de compilação mais frequentes

Isolação, ruído, mau contato e o pior de todos: "montei tudo certo"

Projetos interessantes

https://malduino.com/ - MalDuino is an arduino-powered USB device which has keyboard injection capabilities. Once plugged in, MalDuino acts as a keyboard, typing commands at superhuman speeds. What's the point? You could gain a reverse shell, change the desktop wallpaper, anything is possible. For penetration testers, hobbyists and pranksters, MalDuino will serve you well!