![]() |
Arduino Uno Rev3 Fonte: https://store.arduino.cc/ |
Introdução
Segundo o site oficial do projeto (https://www.arduino.cc/), Arduino é uma plataforma eletrônica de código aberto baseado em hardware e software. Essa definição genérica tenta explicar que o projeto tem dois componentes básicos:
- O hardware, que é uma placa que leva o nome de Arduino
- E o Software que é um Ambiente de Desenvolvimento chamado de Arduino IDE.
A Placa Arduino
Como placa, o Arduino é um termo genérico que engloba diferentes modelos de placas de prototipagem que em comum, tem a utilização de um microprocessador da família ATmega para controlar portas analógicas e digitais que permitem a entrada e saída de dados de sensores e atuadores.
A título de exemplo, temos o Arduino UNO Rev 3 (imagem acima) que utiliza o microprocessador ATmega328P, opera em 5V, dispõe de 14 pinos para entrada/saída digital, dos quais 6 podem ser utilizados como pwm, mais 6 pinos para entrada analógica.
Por essas características é muito utilizada para fins educacionais e profissionais, em automação e robótica. As placas originais podem ser adquiridas no site oficial do projeto, mas por questões de custo, na maioria da vezes adquire-se um clone de fabricantes diversos, uma vez que o projeto é open source.
A Arduino IDE
Seja uma placa original ou um clone, para programá-la a maioria dos estudantes conecta a placa em um computador através de um cabo USB Tipo B e usa a plataforma Arduino IDE para escrever programas que chamamos de sketchs, compilar o código e fazer o upload do sketch para a placa.
A linguagem utilizada é o C++ porem em um framework adaptado às necessidades específicas de sistemas embarcados. Por exemplo, não teremos um cout ou um printf() para saída de dados padrão em tela, porque a saída de dados será de outra forma.
Também não teremos a estrutura de programa padrão com um main() iniciando o código. Ao invés disso encontraremos um modelo pré-definido apresentando a seguinte estrutura:
void setup() {}void loop() {}
Por apresentar esse modelo dizemos que a linguagem do Arduino é um framework em C++ e não uma linguagem de programação propriamente dita.
Quanto a Arduino IDE ela pode ser baixada de https://www.arduino.cc/en/software, sendo disponibilizada tanto para Windows, Linux ou Mac. No entanto, para o nosso microcurso, utilizaremos simuladores online que dispensam a instalação da IDE e a aquisição de placas ou componentes.
Utilizando o Wokwi
Wokwi é uma plataforma online que permite simular o funcionamento de placas Arduino Uno, com a inclusão de sensores e componentes básicos. Utilizaremos ele para os nossos exemplos. É recomendável que o estudantes faça seu login com um conta Google para salvar seus projetos.
Para abrir o Wokwi com um novo projeto inicial de Arduino Uno utilize esse link: https://wokwi.com/projects/new/arduino-uno. Com ele você abrirá uma tela com a estrutura básica de um Sketch:
![]() |
Tela inicial do Wokwi para projeto com Arduino Uno |
Entendendo a estrutura do framework
Ao iniciar um novo Sketch seja na Arduino IDE ou no Wokwi com link que recomendámos, encontraremos duas funções: setup() e loop().
Na função setup() geralmente configuramos dispositivos que serão utilizados pelo programa, como leds, sensores e a saída padrão chamada de monitor serial. Já a função loop é onde colocaremos a instruções do programa propriamente dito, que serão executadas em looping pelo sistema.
Fora dessas funções, devemos utilizar a região inicial do Sketch para importar bibliotecas, quando necessárias, definir constantes que forem utilizadas e iniciar variáveis. Sendo assim, de forma simplificada e genérica temos a seguinte estrutura prática no framework:
// importação de bibliotecas
// definição de constantes
// inicialização variáveis
void setup() {// inicilização de dispositivos}void loop() {// código principal que rodará em looping}
A título de exemplo faremos um "Olá Mundo!" para ser copiado e colado Wokwi, do lado esquerdo da tela conforme a figura abaixo:
- #define mensagem "Ola mundo!"
- void setup() {
- Serial.begin(9600);
- Serial.print(mensagem);
- }
- void loop() {
- }
![]() |
Região da tela do Wokwi onde se cola o sketch |
Nesse exemplo estamos definindo a constante mensagem para ser a string "Ola mundo!". Se você tentou colocar acento no olá viu que não foi possível. Por enquanto esqueça acentos e caracteres latinos como ç nas suas mensagens no Arduino.
Mais abaixo, na linha 3 do setup() estamos inicializando e configuramos a saída padrão que é o monitor serial com a instrução Serial.begin(9600); Veja que esse monitor não estará no Arduino. Estará no seu computador. Por isso é necessário configurar a taxa de transmissão de dados entre eles. No caso estamos ajustando para 9600 bits por segundo.
Na linha de baixo estamos apenas imprimindo no monitor serial a constante mensagem com a função print() que usa como parâmetro a constante. Para executar o seu Sketch, no lado direito da tela temos um botão verde para "start simulation". Após executar e visualizar o resultado na parte inferior do lado direito, use o botão stop para interromper.
![]() |
Botão Start e Stop para iniciar e parar a simulação |
![]() |
Tela do monitor serial. Em destaque o botão lixeira para limpar as mensagens |
Repare que não coloquei nada na função loop(), pois ela executaria um looping infinito que só seria interrompido com o botão stop ou por código. A título de exemplo substitua o seu Sketch pelo código abaixo e dê um start na simulação. Para interromper utilize o botão stop.
- #define mensagem "Ola mundo!"
- int contador=1;
- void setup() {
- Serial.begin(9600);
- }
- void loop() {
- Serial.print(mensagem);
- Serial.println(contador);
- contador++;
- }
Nesse exemplo incluímos na linha 2 uma variável inteiro chamada contador e inicializamos ela com 1 e na linha 10 estamos imprimindo seu valor no monitor serial, sendo que mais abaixo estamos incrementado o seu valor em uma unidade (linha 11).
Repare que desta vez, ao invés da função print() eu estou usando println() que faz com que a próxima impressão no monitor seja na linha debaixo.
No entanto as mensagens estão sendo executadas na função loop(), por isso ficam em um looping infinito só sendo interrompidas pelo stop. A razão de uma função em looping é porque, geralmente, um sistema embarcado ficará executando uma operação ininterruptamente até ser desligado.
Para finalizar, estando logado com uma conta Google, clique no botão SAVE e guarde o seu projeto com um nome. Ele ficará armazenado online, podendo ser acessado através do menu no canto superior direito da tela, na opção MY PROJECTS.
![]() |
Tela de salvamento no Wokwi |
![]() |
Opções do menu no canto superior direito da tela |
Tome cuidado para não salvar projetos com dados sensíveis, pois eles ficam públicos para todos os usuários. Na próxima aula iniciaremos o uso de componentes.
Link para o projeto no Wokwi: https://wokwi.com/projects/411673169364218881
Referências
ARDUINO DOCS. Arduino Documentation. Disponível em: <https://docs.arduino.cc/> Acesso em 05 ago. 2024.
OLIVEIRA, Cláudio Luis Vieira et al. Aprenda Arduino: Uma abordagem prática. Duque de Caixas: Katzen Editora, 2018. 181p. Disponível em: <https://www.fatecjd.edu.br/fatecino/material/ebook-aprenda-arduino.pdf> Acesso em 05 ago. 2024.
OLIVEIRA, Cláudio Luis Vieira. Arduino Descomplicado - Como Elaborar Projetos de Eletrônica. São Paulo: Editora Érica, 2015. 287p.
TINKERCAD. Centro de Aprendizagem. Disponível em: <https://www.tinkercad.com/learn> Acesso em 05 ago. 2024.
WOKWI. Referência do wokwi-arduino-uno. Disponível em: <https://docs.arduino.cc/> Acesso em 05 ago. 2024.