Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante   Click to listen highlighted text! Seja Bem-Vindo. Este site tem recursos de leitura de texto, basta marcar o texto e clicar no ícone do alto-falante

Introdução à Linguagem de Programação – Aula 06

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.

O que é Arduino (e para que serve) - Arduino e Cia

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.

historia do Arduíno :: Honimec
Criadores do Arduino

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:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

  5. 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.

Aplicações de Engenharia Mecânica | Oerlikon Balzers

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.

A Lei de OHM e as Baterias - STA Eletrônica

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).

Figura do link em 26/02/2025

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.

Código de cores.
Tabela de código de cores para 3 faixas, mais exemplo de um resistor.

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.

LEDs
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:

Linguagem de Programação C – Aula 06 – Resistores – Simulação A

Circuito montado e ligado:

Linguagem de Programação C – Aula 06 – Resistores – Simulação A

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.

Linguagem de Programação C – Aula 06 – Resistores – Simulação A

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:

Linguagem de Programação C – Aula 06 – Resistores – Simulação B

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.

Como montar o Arduino na protoboard - Arduino e Cia

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.

O que é Arduino IDE? Como baixar e instalar a nova versão - MakerHero

Passo a Passo para Instalação

  1. 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.
  2. 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).
  3. 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.
  4. 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.

Tinkercad: Um Simulador Online para Arduino | ricardoteix.com

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

  1. Criar uma Conta

  2. 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.
  3. 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.
  4. 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

Click to listen highlighted text!