Linguagem de Programação C – Aula 06
Autor: Carlos Fernandes
E-mail para contato: carlos.fernandes@afogados.ifpe.edu.br
1. Introdução
Objetivo da Aula:
Esta aula introdutória tem como objetivo apresentar o Arduino, suas aplicações e revisar conceitos fundamentais de eletricidade. Os alunos aprenderão sobre os componentes eletrônicos básicos, como resistores e LEDs, além de escrever seu primeiro programa em C para o Arduino. A plataforma Tinkercad será utilizada para simulação dos circuitos.
2. O que é o Arduino? História e Aplicações
O que é o Arduino?
O Arduino é uma plataforma de desenvolvimento de hardware e software open-source baseada na arquitetura de microcontroladores, proporcionando um ambiente acessível e flexível para engenheiros, pesquisadores e estudantes. Ele permite a criação de sistemas embarcados que podem interagir com sensores, motores, atuadores e interfaces gráficas, tornando-se uma ferramenta essencial para projetos de automação e controle.
A principal vantagem do Arduino está na sua simplicidade de uso, tanto na programação quanto na montagem dos circuitos. A plataforma conta com uma IDE (Integrated Development Environment) baseada em C/C++, que facilita a escrita de códigos e a compilação para o microcontrolador. Seu ecossistema é amplamente suportado por uma comunidade ativa e por uma vasta documentação online.
Existem diferentes modelos de placas Arduino, como Arduino Uno, Mega, Nano e Leonardo, cada uma com características específicas para diferentes tipos de aplicações.
História do Arduino
O Arduino foi criado em 2005 por um grupo de pesquisadores italianos liderados por Massimo Banzi no Interaction Design Institute Ivrea. Seu objetivo inicial era fornecer uma solução acessível e flexível para estudantes e profissionais que desejavam desenvolver projetos eletrônicos sem a complexidade tradicional dos sistemas embarcados.
A principal inovação do Arduino foi a combinação de um microcontrolador fácil de programar, uma interface USB para comunicação com o computador e um ambiente de desenvolvimento intuitivo. Seu design open-source permitiu que uma grande comunidade de desenvolvedores criasse novas placas compatíveis, bibliotecas de software e expansões (shields), ampliando suas capacidades e popularidade.

Com o tempo, o Arduino passou a ser amplamente utilizado em áreas como automação residencial, robótica, Internet das Coisas (IoT) e educação, consolidando-se como uma ferramenta essencial no ensino de eletrônica e programação.
Aplicações na Engenharia Mecânica
Na engenharia mecânica, o Arduino se destaca como uma plataforma versátil para desenvolver sistemas de controle e monitoramento de processos mecânicos. A seguir, algumas aplicações relevantes:
-
Monitoramento de temperatura em motores: Sensores de temperatura como o DHT11 ou LM35 podem ser usados para medir a temperatura de motores e equipamentos mecânicos, acionando sistemas de resfriamento ou alarmes caso a temperatura ultrapasse um limite seguro.
-
Controle de velocidade de motores DC: Utilizando técnicas de modulação por largura de pulso (PWM), é possível controlar a velocidade de motores de corrente contínua, aplicáveis a bombas hidráulicas, ventoinhas e sistemas de transmissão mecânica.
-
Sensores de pressão e vibração para diagnóstico de falhas: A implementação de sensores como o MPX5700AP (sensor de pressão) ou ADXL345 (acelerômetro) permite a análise de padrões de vibração em máquinas, auxiliando na detecção precoce de falhas mecânicas.
-
Controle automatizado de sistemas hidráulicos e pneumáticos: O Arduino pode ser usado para acionar válvulas solenoides em sistemas hidráulicos e pneumáticos, controlando a pressão e fluxo de fluidos com base em sensores de pressão.
-
Integração com sistemas CAD/CAM para automação industrial: O Arduino pode atuar como interface entre sensores, motores de passo e softwares CAD/CAM, permitindo a automação de processos de usinagem e manufatura.
Referências e Recursos de Aprendizado
Livros
-
“Aprenda Arduino – Uma abordagem prática” – Capítulos 1 e 2.
-
“Programando com Arduino” – Introdução ao Arduino.
-
“Exploring Arduino” – Jeremy Blum.
Cursos Online Gratuitos
Vídeos Recomendados
3. Revisão de Conceitos de Eletricidade
Tensão, Corrente e Resistência (Lei de Ohm)
A eletricidade é um dos pilares fundamentais para o funcionamento do Arduino, especialmente quando aplicada em projetos de engenharia mecânica. Antes de iniciar a programação, é essencial compreender os conceitos de tensão, corrente e resistência, que regem o comportamento dos circuitos elétricos.
-
Tensão (V): A tensão elétrica, medida em volts (V), representa a diferença de potencial entre dois pontos de um circuito. Ela impulsiona os elétrons através de um condutor. No Arduino, a tensão padrão de operação é de 5V (para modelos como o Arduino Uno) ou 3.3V (para modelos como o Arduino Due).
-
Corrente (I): Medida em amperes (A), a corrente elétrica representa o fluxo de elétrons que percorre um circuito. No contexto do Arduino, o microcontrolador pode fornecer correntes limitadas por pino, geralmente entre 20mA e 40mA. Exceder esse limite pode danificar o microcontrolador.
-
Resistência (R): Medida em ohms (Ω), a resistência define a oposição ao fluxo de corrente elétrica. O conceito de resistência é fundamental na proteção dos componentes do circuito. Por exemplo, ao conectar um LED ao Arduino, um resistor deve ser utilizado em série para limitar a corrente e evitar danos ao LED.
-
Lei de Ohm: A relação entre tensão, corrente e resistência é definida pela Lei de Ohm:
V=I×R
Essa equação é essencial para dimensionar resistores e outros componentes elétricos corretamente em projetos com Arduino.
Componentes Básicos
1. Resistores
Os resistores são dispositivos passivos que limitam a quantidade de corrente que passa por um circuito. Eles são identificados por seu código de cores e seguem a Lei de Ohm. No Arduino, resistores são frequentemente usados para proteger LEDs, botões e sensores.
Exemplo prático: Uso de um resistor de 150Ω para proteger um LED.
const int led = 2;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
digitalWrite(led, HIGH);
delay(1000);
digitalWrite(led, LOW);
delay(1000);
}
Revisão dos conhecimentos necessários
Em alguns exemplos faremos uma explicação detalhada de todo o conhecimento necessário para entender o experimento. Caso você ache desnecessário, pode pular essa parte.
Um resistor pode ser usado para diminuir a tensão e a corrente elétrica em um circuito elétrico. No entanto, o seu uso é limitado a situações em que a corrente é estável. Os resistores tem a sua resistência expressa em Ohms.
A fórmula para calcular o resistor adequado para um LED:
R = (Valimentação – Vled) / I
Onde:
- R é a resistência em ohms do resistor adequado para o LED, isso é o que você quer descobrir.
- Valimentação é a tensão em volts da fonte de alimentação que você vai usar no LED.
- Vled é a tensão em volts do LED.
- I é a corrente do LED em amperes.
Veja abaixo o um problema resolvido:
Imagine que você que acender um LED vermelho, de tensão igual a 2 v e corrente igual a 20 mA em uma alimentação de 3 v, usando 2 pilhas (conforme figura abaixo).

Aplicando os valores na fórmula ficaria assim:
Convertendo os 20 mA (miliamperes) do LED para amperes dariam 0,02 A (amperes).
R = (3 - 2) / 0,02 R = 1 / 0,02 R = 50 ohms
Como dificilmente você vai encontrar um resistor de 50 ohms, você pode usar um 68 ohms ou de 100 ohms, ou ainda ligar 5 resistores de 10 ohms em série.
Escolher um resistor é uma tarefa a parte, como o TINKERCAD permite digitar o valor que desejarmos para o resistor, não iremos nos aprofundar nisso. Mas para ajudar veja abaixo a tabela de leitura de resistores que os técnicos de eletrônica usam.

Para saber mais, acesso o link.
LED
O LED (Light Emitting Diode) é um dispositivo semicondutor que emite luz quando uma corrente elétrica passa por ele. Ele possui dois terminais: o ânodo (polo positivo) e o cátodo (polo negativo). O ânodo é a perna mais longa do LED e deve ser conectado ao potencial positivo do circuito, enquanto o cátodo, a perna mais curta, é conectado ao negativo (ou ao GND). O funcionamento do LED baseia-se no princípio da eletroluminescência, onde elétrons se recombinam com lacunas na junção semicondutora, liberando energia na forma de fótons (luz). Para operar corretamente e evitar danos, o LED deve ser utilizado com um resistor limitador de corrente, pois seu consumo é baixo, mas sensível a sobrecorrente.

No TINKERCAD.
O Tinkercad Circuits é uma plataforma online gratuita que permite a criação, simulação e prototipagem virtual de circuitos eletrônicos de forma intuitiva. Desenvolvido pela Autodesk, ele oferece um ambiente interativo onde usuários podem montar circuitos utilizando componentes como resistores, LEDs, sensores, microcontroladores (como o Arduino), motores e displays. Além da montagem física virtual, o Tinkercad permite a programação de microcontroladores em blocos visuais ou em linguagem C/C++ (usando Arduino IDE), possibilitando a simulação do comportamento real do circuito sem a necessidade de hardware físico. Essa ferramenta é amplamente utilizada no ensino de eletrônica e programação, facilitando a aprendizagem e experimentação sem riscos ou custos com componentes.
As explicações de funcionamento da interface serão dadas em sala pelo instrutor/professor.
Circuito montado e desligado:

Circuito montado e ligado:

O que aconteceu?
Com o mouse parado sobre o LED o proprio TINKERCAD diz qual foi o problema. Corrente muita alta. Vamos usar nossos conhecimentos adquiridos e calcular o valor do resistor necessário:
R = (5 - 2) / 0,02 R = 3 / 0,02 R = 150 Ohms
Na figura abaixo temos um multimetro com a função regulada para medir corrente e ligado em série, além de um resistor de 150 Ohms como calculamos.

Mas até agora o Arduino só fez o papel de fornecedor de corrente contínua. Vamos programar para o LED piscar. Veja abaixo o esquema para funcionar o código deste tópico:

2. LEDs (Diodos Emissores de Luz)
Os LEDs emitem luz quando uma corrente elétrica passa por eles. No Arduino, são amplamente usados como indicadores visuais.
Exemplo prático: Acionar um LED com um botão.
const int botao = 2;
const int led = 13;
void setup() {
pinMode(botao, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
if (digitalRead(botao) == HIGH) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
3. Capacitores
Os capacitores armazenam carga elétrica e são usados para estabilizar a tensão em circuitos eletrônicos. Em projetos de engenharia mecânica, são empregados para evitar ruídos elétricos e proteger circuitos de variações bruscas de corrente.
4. Transistores
Os transistores atuam como amplificadores ou chaves eletrônicas, permitindo o controle de cargas maiores com sinais de baixa potência. No Arduino, podem ser usados para acionar motores, relés e atuadores.
Exemplo prático: Uso de um transistor para controlar um motor DC.
const int motor = 9;
void setup() {
pinMode(motor, OUTPUT);
}
void loop() {
analogWrite(motor, 128); // Controle da velocidade do motor
delay(2000);
analogWrite(motor, 0);
delay(2000);
}
5. Protoboard
A protoboard é uma ferramenta essencial para testes e prototipagem, permitindo a conexão de componentes sem necessidade de soldagem.
Referências e Recursos de Aprendizado
Livros
- “Aprenda Arduino – Uma abordagem prática” – Capítulos 3 e 4.
- “Fundamentals of Electric Circuits” – Charles K. Alexander e Matthew N.O. Sadiku.
Cursos Online Gratuitos
Vídeos Recomendados
4. Instalação da IDE do Arduino
A Arduino IDE (Integrated Development Environment) é o ambiente de desenvolvimento onde serão escritos, compilados e enviados os programas para a placa Arduino. Esta etapa é essencial para que os alunos possam iniciar a programação e execução de códigos em linguagem C no Arduino.
Passo a Passo para Instalação
-
Baixar a IDE do Arduino
- Acesse o site oficial do Arduino: https://www.arduino.cc/en/software
- Escolha a versão adequada ao seu sistema operacional (Windows, macOS ou Linux).
- Para Windows, escolha entre a versão instalável ou a versão “portable”.
- No Linux, pode ser necessário conceder permissões adicionais para uso da porta USB.
-
Instalar os Drivers Necessários
- No Windows, a instalação da IDE Arduino geralmente já inclui os drivers necessários.
- Para placas clonadas, pode ser necessário instalar drivers específicos, como o CH340G para alguns modelos de Arduino Uno.
- No macOS e Linux, pode ser necessário configurar permissões da porta serial (por exemplo, usando
sudo chmod 666 /dev/ttyUSB0
).
-
Conectar o Arduino via USB e Selecionar a Placa Correta
- Conecte a placa Arduino ao computador via cabo USB.
- Abra a Arduino IDE e vá até Ferramentas > Placa e selecione o modelo correto (por exemplo, “Arduino Uno”).
- Em Ferramentas > Porta, selecione a porta onde o Arduino está conectado (exemplo: COM3 no Windows ou
/dev/ttyUSB0
no Linux). - Se houver problemas de conexão, verifique os drivers instalados e tente reiniciar a IDE.
-
Testar um Programa Básico (Blink)
- Abra a IDE do Arduino.
- Copie e cole o seguinte código na interface:
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
- Clique no botão Verificar/Compilar para garantir que o código não apresenta erros.
- Clique em Carregar para enviar o programa para a placa.
- Se tudo estiver correto, o LED embutido da placa (pino 13) piscará em intervalos de 1 segundo.
Tinkercad: Simulação de Circuitos Arduino
O Tinkercad é uma plataforma online gratuita da Autodesk que permite a simulação de circuitos e programação Arduino sem a necessidade de hardware físico. Ele é uma ferramenta valiosa para estudantes de engenharia mecânica que desejam praticar e testar seus códigos antes da implementação em um protótipo real.
Benefícios do Tinkercad para Engenharia Mecânica
- Permite simular sistemas de automação para controle de motores e sensores.
- Possibilita testar circuitos e códigos sem risco de danos a componentes reais.
- Auxilia na compreensão de integração entre eletrônica e mecânica.
- Facilidade de compartilhamento de projetos entre equipes.
Como Utilizar o Tinkercad para Simulação com Arduino
-
Criar uma Conta
- Acesse: https://www.tinkercad.com
- Cadastre-se gratuitamente ou faça login com uma conta Google.
-
Criar um Novo Circuito
- Clique em Criar um Novo Circuito.
- Arraste um Arduino Uno para a área de trabalho.
- Adicione componentes como LEDs, resistores e sensores.
-
Programar em C no Tinkercad
- Clique em “Código” e selecione “Texto” para programar diretamente em C.
- Digite um código semelhante ao Blink e clique em Iniciar Simulação.
-
Exemplo de Programa no Tinkercad: Acionamento de Motor DC
const int motor = 9;
void setup() {
pinMode(motor, OUTPUT);
}
void loop() {
analogWrite(motor, 128); // Motor em meia velocidade
delay(2000);
analogWrite(motor, 0); // Motor desligado
delay(2000);
}
Recursos de Aprendizado sobre Tinkercad e Arduino
Cursos Online Gratuitos
Livros
- “Aprenda Arduino – Uma abordagem prática” – Capítulos 5 e 6.
- “Programming Arduino: Getting Started with Sketches” – Simon Monk.
Vídeos Recomendados
5. Primeiros Passos na Programação em C no Arduino
A programação para Arduino utiliza a linguagem C e segue uma estrutura bem definida, composta por funções essenciais para o funcionamento do microcontrolador. O código é interpretado sequencialmente e se baseia em entradas, saídas e controle de fluxo para interagir com o mundo físico.
Estrutura Básica de um Programa em Arduino
Cada programa em Arduino, chamado de sketch, contém pelo menos duas funções obrigatórias: setup()
e loop()
. O exemplo abaixo demonstra um programa simples que faz um LED piscar no pino 13 da placa Arduino:
void setup() {
pinMode(13, OUTPUT); // Define o pino 13 como saída
}
void loop() {
digitalWrite(13, HIGH); // Liga o LED
delay(1000); // Aguarda 1 segundo
digitalWrite(13, LOW); // Desliga o LED
delay(1000); // Aguarda 1 segundo
}
Explicação Detalhada do Código
-
setup()
: Esta função é executada apenas uma vez na inicialização do Arduino. Aqui, configuramos o pino 13 como uma saída para acionar o LED. -
loop()
: Esta função é executada repetidamente em um ciclo infinito. Dentro dela, controlamos o LED, ligando-o e desligando-o com um intervalo de 1 segundo. -
pinMode(pino, modo)
: Define o modo de operação de um pino. O modo pode ser:OUTPUT
para saídas (LEDs, motores, relés);INPUT
para leituras de sensores e botões;INPUT_PULLUP
para ativar resistores internos de pull-up em entradas digitais.
-
digitalWrite(pino, valor)
: Define o estado de um pino digital. O valor pode ser:HIGH
(5V) para ligar o dispositivo conectado;LOW
(0V) para desligá-lo.
-
delay(tempo)
: Pausa a execução do programa pelo tempo especificado em milissegundos.
Exemplos Aplicados na Engenharia Mecânica
1. Controle de LED Indicador para Sistema de Resfriamento
const int sensorTemp = A0;
const int led = 13;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int temperatura = analogRead(sensorTemp);
if (temperatura > 500) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
delay(1000);
}
Este código aciona um LED quando a temperatura ultrapassa um valor predefinido, alertando sobre superaquecimento de um motor.
2. Acionamento de Motor DC
const int motor = 9;
void setup() {
pinMode(motor, OUTPUT);
}
void loop() {
analogWrite(motor, 128); // Motor em 50% da velocidade
delay(3000);
analogWrite(motor, 0); // Motor desligado
delay(2000);
}
Aqui, controlamos a velocidade de um motor DC, simulando um sistema de ventilação para resfriamento de componentes mecânicos.
3. Sensor de Pressão com Alarme Sonoro
const int sensorPressao = A1;
const int buzzer = 3;
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
int pressao = analogRead(sensorPressao);
if (pressao > 700) {
digitalWrite(buzzer, HIGH);
} else {
digitalWrite(buzzer, LOW);
}
}
Esse exemplo simula um sistema de monitoramento de pressão em tubulações industriais, acionando um alarme sonoro caso a pressão ultrapasse um limite seguro.
Recursos de Aprendizado Adicionais
Livros
- “Aprenda Arduino – Uma abordagem prática” – Capítulos 7 e 8.
- “Exploring Arduino” – Jeremy Blum.
Cursos Online Gratuitos
Vídeos Recomendados
6. Prática no Tinkercad
Acesse o site: https://www.tinkercad.com e crie uma conta para simular seus circuitos Arduino.
Exemplo 1: LED Piscando
Simulação do código Blink no Tinkercad.
Exemplo 2: Botão Liga/Desliga LED
const int botao = 2;
const int led = 13;
void setup() {
pinMode(botao, INPUT);
pinMode(led, OUTPUT);
}
void loop() {
if (digitalRead(botao) == HIGH) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
Exemplo 3: Controle de Brilho do LED com Potenciômetro
const int potenciometro = A0;
const int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int valor = analogRead(potenciometro);
int brilho = map(valor, 0, 1023, 0, 255);
analogWrite(led, brilho);
}
Exemplo 4: Uso do Buzzer para Emitir Sons
const int buzzer = 3;
void setup() {
pinMode(buzzer, OUTPUT);
}
void loop() {
tone(buzzer, 1000);
delay(1000);
noTone(buzzer);
delay(1000);
}
Exemplo 5: Sensor de Luz com LDR
const int ldr = A0;
const int led = 9;
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
int luz = analogRead(ldr);
if (luz < 500) {
digitalWrite(led, HIGH);
} else {
digitalWrite(led, LOW);
}
}
7. Referências
Livros
- “Aprenda Arduino – Uma abordagem prática” – Capítulos 1 e 2.
- “Programando com Arduino” – Introdução ao Arduino.
Cursos Online Gratuitos
Vídeos Recomendados
Fim da aula 06