0% acharam este documento útil (0 voto)
18 visualizações11 páginas

Aula 5 - Programação Arduino

O documento aborda o curso de Programação de Microcontroladores com foco na linguagem Arduino, detalhando funções essenciais como entradas e saídas digitais e analógicas, interrupções e temporizadores. Exemplos práticos são fornecidos para acender LEDs, ler botões e utilizar PWM para controle de brilho. Além disso, são apresentados conceitos de conversão analógica/digital e como ler valores de um potenciômetro.

Enviado por

alexandre.dantas
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
18 visualizações11 páginas

Aula 5 - Programação Arduino

O documento aborda o curso de Programação de Microcontroladores com foco na linguagem Arduino, detalhando funções essenciais como entradas e saídas digitais e analógicas, interrupções e temporizadores. Exemplos práticos são fornecidos para acender LEDs, ler botões e utilizar PWM para controle de brilho. Além disso, são apresentados conceitos de conversão analógica/digital e como ler valores de um potenciômetro.

Enviado por

alexandre.dantas
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

Curso Técnico em

Automação industrial
Programando Microcontroladores 3

Facilitador:
Alexandre de Melo
Funções mais utilizadas

• Documentação de Referência da Linguagem Arduino


• Entradas e Saídas Digitais • Interrupções Externas
• digitalRead() • attachInterrupt()
• digitalWrite() • detachInterrupt()
• pinMode() • Comunicação
• Entradas e Saídas Analógicas • Serial()
• analogRead() • Constantes
• analogReference() • HIGH | LOW
• analogWrite() • INPUT | OUTPUT | INPUT_PULLUP
• Funções Temporizadoras • LED_BUILTIN
• delay() • true | false
• millis()
[Link]
Entradas e saídas digitais

• Saída digital – liga led e blink Sinal digital, 5v 40mA


• Muito utilizada em acionamentos on/off, liga/desliga.
5v 1
const int LED = 3; // Criamos a variável LED
void setup() { 0v 0
pinMode(LED, OUTPUT); // configura o pino digital como uma saída
}
void loop() {
digitalWrite(LED, HIGH); // Acende o led
delay(1000); // Espera um Segundo = 1000ms
digitalWrite(LED, LOW); // Desliga o led
delay(1000); // Espera um Segundo = 1000ms
}
Entradas e saídas digitais

• Entrada e saída digital – liga/desliga led por botão Pin ardu


const int LED = 3; // Criamos a variável LED
const int BOTAO = 4; //criamos a variável BOTAO
boolean ValorBotao = 0; //criamos uma variável boleana 0 ou 1

void setup() {
pinMode(LED, OUTPUT); // configura o pino digital como uma saída
pinMode(BOTAO, INPUT); // configura o pino digital como uma entrada
}
void loop() {
ValorBotao = digitalRead (BOTAO);
if (ValorBotao==HIGH){
digitalWrite(LED, HIGH); // Acende o led
}
else {
digitalWrite(LED, LOW); // Desliga o led
}
}
Entradas e saídas digitais

• Entrada e saída digital – led ligado/desligado constantemente


const int LED = 3; // Criamos a variável LED
const int BOTAO = 4; //criamos a variável BOTAO
boolean ValorBotao = 0; //criamos uma variável boleana 0 ou 1

void setup() {
pinMode(LED, OUTPUT); // configura o pino digital como uma saída
pinMode(BOTAO, INPUT); // configura o pino digital como uma entrada
}
void loop() { if (ValorBotao ==HIGH){
if(digitalRead (BOTAO)){ digitalWrite(LED, HIGH); // Acende o led
ValorBotao = !ValorBotao; }
while (digitalRead(BOTAO)) { else {
delay(100); digitalWrite(LED, LOW); // Desliga o led
} }
} }
Saídas analógicas

• PWM – conversor D/A


• As saídas analógicas são saídas PWM, ou modulação por largura
de pulso;
• No UNO os pinos (11,10, 9, 6, 5, 3) podem ser configurados como
saídas para controle de velocidade de motores, brilho de leds, etc.
Usamos a respectiva função: analogWrite(LED, 0-255);
Saídas analógicas

• O conversor D/A do Atmega 328p possui 8 bits


• Logo o conversor D/A do Arduino tem a seguinte resolução:
5𝑉 5𝑉
• 𝑅𝑒𝑠𝑜𝑙𝑢çã𝑜 = = = 0,0196𝑉 ≅ 20𝑚𝑉
28 −1 255

const int LED = 3; // Criamos a variável LED

void setup() {
pinMode(LED, OUTPUT); // configura o pino digital como uma saída
}
void loop() {
for(int i = 0; i <= 255; i++){
analogWrite(LED, i);
delay(5);
}
}
Saídas analógicas

• Aumentando e diminuindo o brilho do led com PWM


const int LED = 3; // Criamos a variável LED

void setup() {
pinMode(LED, OUTPUT); // configura o pino digital como uma saída
}
void loop() {
for(int i = 0; i <= 255; i++){
analogWrite(LED, i);
delay(5);
}

for(int i = 255; i > 0; i--){


analogWrite (LED, i);
delay(5);
}
}
Entradas analógicas

• O conversor A/D do Atmega 328p possui 10 bits


• Ou seja, ele mapeia tensões de 0-5V em valores inteiros de 0-1023;
• Logo o Arduino uno tem a seguinte resolução:
5𝑉 5𝑉
• 𝑅𝑒𝑠𝑜𝑙𝑢çã𝑜 = = = 0,00488𝑉 ≅ 4,9𝑚𝑉;
210 1024
• No UNO os pinos (A0, A1, A2, A3, A4, A5) são as entradas analógicas.
Entradas analógicas

int potenciometro = A0; // terminal do meio de um potenciômetro conectado ao pino analógico 3


int val = 0; // variável para guardar o valor lido

void setup() {
[Link](9600); // configura a porta serial
}
void loop() {
val = analogRead(potenciometro); // lê o pino de entrada
[Link](val); // imprime o valor na porta serial
delay(100);
}
Entradas analógicas

int potenciometro = A0; // terminal do meio de um potenciômetro conectado ao pino analógico 3


int val = 0; // variável para guardar o valor lido
float tensao = 0;
void setup() {
[Link](9600); // configura a porta serial
}
void loop() {
val = analogRead(potenciometro); // lê o pino de entrada
tensao = (val*5.0)/1023;
[Link](tensao); // imprime o valor na porta serial
delay(100);
}

Você também pode gostar