Arduino: Entradas e Saidas

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar

Minicurso: Arduíno e eletrônica

Este minicurso tem como objetivos realizar uma introdução ao microcontrolador Arduíno e a eletrônica a partir de atividades teóricas e práticas.

O minicurso está organizados em módulos, cada um deles trabalhando conceitos específicos sobre o microcontrolador Arduíno e os correspondentes conceitos de eletricidade e eletrônica envolvidos.

Características do microcontrolador Arduíno

Arduíno

Saídas digitais

O Arduíno UNO possui 14 Entradas/Saídas Digitais
  • As entradas/saídas digitais estão localizadas nos pinos 0 a 13.
  • Estas entradas/saídas operam com valores digitais LOW e HIGH, os quais correspondem aos valores de tensão 0 V e 5 V, respectivamente..
  • Cada pino fornece corrente de até 20 mA, sendo que qualquer corrente solicitada acima de 40mA pode danificar o Arduíno.
pinMode
Comando da linguagem de programação do Arduíno que configura o pino digital como entrada (INPUT) ou saída (OUTPUT).
Exemplo:
pinMode(13, OUTPUT);
digitalWrite
Comando para escrever na saída digital.
digitalWrite(pino, HIGH/LOW)

Laboratório 1: Saída digital

Blink
  • Carregar no Arduíno o programa exemplo para piscar o led do pino 13, mantendo acesso por 1 seg e em seguida apagada por 1 seg. O led do pino 13 é um led instalado na própria placa do Arduíno.
  • Modificar o tempo (delay) e verificar a mudança na frequência do piscar do led.

Leds

Para entender o funcionamento dos leds, alguns conceitos são necessários:

Eletricidade Básica
Conceito e relação entre tensão, corrente e resistência elétrica - Lei de Ohm.
Resistores
Código de cores para resistores
Diodos e Leds
Cálculo do resistor de proteção de um circuito com led.

Laboratório 2: Semáforo automatizado com leds

Blink
  • Montar hardware para acionamento de 3 leds (vermelho, verde e amarelo), comandados por 3 saídas digitais independentes do Arduíno, utilizando resistores de proteção adequados.
  • Modificar programa blink para acionar os leds como um semáforo, com temporização adequada para cada cor.

Frequência e período de um sinal periódico

A frequência é uma grandeza física que indica o número de ocorrências de um evento (ciclo ou oscilações) em um determinado intervalo de tempo. Esse tempo recebe o nome de período (T).

A unidade de medida de frequência é o Hertz (Hz):

 1  Hz =    1 ciclo/segundo
60  Hz =   60 ciclos/segundo (p. ex. frequência da tensão alternada senoidal da rede elétrica)
 1 KHz = 1000 ciclos/segundo

Relação entre frequência (f) e período (T):

f = 1 / T 

Sinais periódicos digitais geralmente são ondas quadradas, com os níveis lógicos LOW (0 V) e HIGH (5 V). A transição LOW para HIGH é chamada transição positiva (borda de subida) e a transição de HIGH para LOW é chamada transição negativa (borda de descida).


Entradas digitais

Um pino digital do Arduíno pose ser definido como entrada (INPUT).

pinMode(2, INPUT)
digitalRead
Comando para ler o estado de uma entrada digital.
estadoPino = digitalRead(pino)

Neste caso o Arduíno vai ler se o estado do pino é LOW (0 V) ou HIGH (5 V).

Chave digital

Uma chave digital fornecerá 0 V (LOW) ou 5 V (HIGH) caso estiver aberta ou fechada.

  • Caso a chave estiver aberta, não haverá sobre o resistor e a tensão entregue ao pino do Arduíno será 0 V.
  • Caso a chave estiver fechada, haverá corrente no resistor e a tensão entregue ao pino do Arduíno será 5 V.
    • Corrente no resistor:
I = V / R
5 (V) / 10k (Ω) = 0,5 mA

Laboratório 3: Chave digital

Button
  • Montar hardware com chave (push botton), utilizando resistores de proteção de 10 KΩ.
  • Carregar programa exemplo Button para ligar ou desligar led em função de pressão em chave digital.

Laboratório 4: Coreografia com leds

Implementar uma coreografia de luzes com 6 leds e 2 chaves digitais, de forma que, a cada combinação de chaves acionadas uma coreografia de luzes seja executada.

Entradas Analógicas

O Arduíno UNO possui 6 entradas analógicas
  • As entradas analógicas são nomeadas de A0 até A5.
  • Cada entrada analógica recebe valores analógicos entre 0 V e 5 V, os quais são convertidos para valores digitais com 10 bits de resolução (valores entre 0 e 1023).
analogRead
Comando para ler entrada analógica.
valorPino = analogRead(pinoAnalogico)

Divisor de Tensão

Quando uma tensão é aplicada sobre resistores em série, a tensão total sobre os dois resistores é igual a somas das quedas de tensão sobre cada resistor.

V = V1 + V2
V = I.R1 + I.R2

ou

V1 = R1/(R1 + R2) . V
V2 = R2/(R1 + R2) . V
Potenciômetros
São resistências variáveis através de um cursor.
Na figura, através de um potenciômetro é possível implementar um divisor de tensão com uma tensão variável Vx obtida a partir do terminal central do potenciômetro.

Laboratório 5: Leitura de entrada analógica

AnalogReadSerial
  • Montar hardware com utilizando o ponto central de um potenciômetro conectado a entrada analógica A0 (com os demais terminais conectados ao GND e 5V, respectivamente).
  • Carregar programa exemplo Basic/AnalogReadSerial e verificar o valor da entrada analógica no monitor serial.

Aplicação do Divisor de Tensão

Sensores baseados em resistência variável para Arduíno
Sensores de luminosidade (LDR) e sensores de temperatura possuem um resistor variável em função da grandeza que estão medindo.

Laboratório 6: Entrada analógica

AnalogInput
  • Montar hardware com utilizando o ponto central de um potenciômetro conectado a entrada analógica A0 (com os demais terminais conectados ao GND e 5V, respectivamente).
  • Carregar programa exemplo Analog/AnalogInput e verificar o valor da frequência do pulsar do led em função do valor do potenciômetro.
Sensor de luminosidade LDR
  • Montar hardware com o sensor LDR, conforme mostrado no link do exemplo Analog/AnalogInput, e verificar o valor da frequência do pulsar do led em função do valor da luminosidade.

Laboratório 7: Sensor de luminosidade LDR

LDR
  • Montar hardware com sensor LDR e três leds (vermelho, amarelo e verde), utilizando divisor de tensão para o sensor e resistores de proteção adequados para os leds.
  • Construir programa para acender led verde com alta luminosidade, led amarelo com média luminosidade e led vermelho com baixa luminosidade.

Saídas Analógicas

O Arduíno emula saídas analógicas através de modulação PWM (Pulse Width Modulation). O sinal PWM é uma onda quadrada, com frequência constante, mas a fração de tempo em que o sinal é HIGH (5V) (duty cycle) pode variar entre 0 e 100%, fornencedo uma média de tensão variável na saída [1].

As 6 Saídas PWM são identificadas pelo sinal ~ e fornecem saídas analógicas através de pulsos PWM de 8 bits, possibilitando, portanto, 256 valores diferentes de tensão analógica entre 0V e 5V, com passos de 0 a 255.



Referências


--Evandro.cantu (discussão) 16h33min de 12 de setembro de 2016 (BRT)