AULA 5 - Microcontroladores - Técnico: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
 
(3 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 39: Linha 39:


Para ler os valores diretamente em Volts:
Para ler os valores diretamente em Volts:
void setup()
{
  Serial.begin(9600);
}
void loop()
{
    float valt;
    int val = analogRead(0);
 
    valt = (val*5.0)/1023;
    Serial.println(valt);
  }


===EXEMPLO 2: lendo dados do potenciômetro para temporizar acionamento de led===
===EXEMPLO 2: lendo dados do potenciômetro para temporizar acionamento de led===
Linha 47: Linha 63:


[[image:analog4.jpg|center]]
[[image:analog4.jpg|center]]
Outro projeto:
[https://www.electronicshub.org/arduino-based-digital-thermometer/ Termômetro com arduino - usando LM35]


----
----
Linha 55: Linha 76:
! style="background: #cdc5bf;" | [[AULA 4 - Microcontroladores - Técnico| Uso da comunicação serial ]]  
! style="background: #cdc5bf;" | [[AULA 4 - Microcontroladores - Técnico| Uso da comunicação serial ]]  
! style="background: #cdc5bf;" | AULA 5 -  Leitura e escrita nas portas analógicas
! style="background: #cdc5bf;" | AULA 5 -  Leitura e escrita nas portas analógicas
! style="background: #cdc5bf;" | [[AULA 7 - Microcontroladores - Técnico| Programação C >> ]]
! style="background: #cdc5bf;" | [[AULA 6 - Microcontroladores - Técnico| PWM e acionamento motores >> ]]
|}
|}

Edição atual tal como às 11h41min de 25 de julho de 2018

<< Página do curso


Portas Analógicas

É possível ler grandezas analógicas com o Arduino, além de valores digitais.

Para isto, existem 6 Portas analógicas para ENTRADA de dados:

  • A0 (pino 14),
  • A1 (pino 15),
  • A2 (pino 16),
  • A3 (pino 17),
  • A4 (pino 18) e
  • A5 (pino 19).

Não é necessário definir-se na função setup( ) se as portas serão usadas como entrada, ou saída.

A função de leitura das portas analógicas é a analogRead( PORTA )

  O microcontrolador do Arduino dispõe de um Conversor Analógico-Digital (ADC) de 10 bits, o que significa capacidade de quantificar 1024 patamares de valor: 0 a 1023. 

Ou seja, as tensões analógicas de entrada, que devem variar de 0 a 5 V, são quantificadas como:

  • 0 - correspondente ao valor de 0 V (GND)
  • 1 - correspondente ao valor de 1x(5 V - 0 V)/1024 = 0,0048828125 V
  • 2 - correspondente ao valor de 2x(5 V - 0 V)/1024 = 0,009765625 V
  • 3 - correspondente ao valor de 3x(5 V - 0 V)/1024 = 0,0146484375 V
  • ...
  • 1023 - correspondente ao valor de 5 V (VCC)


O programador deve saber como interpretar o número digital da conversão. Desta forma, podem ser lidos os mais variados sensores, desde que eles gerem um sinal de tensão de até 5V (limite permitido).

Adc.jpg


EXEMPLO 1: lendo dados de um potenciômetro

Analog1.jpg

Para ler os valores diretamente em Volts:

void setup()
{ 
  Serial.begin(9600);
}
void loop()
{ 
   float valt;
   int val = analogRead(0);
 
   valt = (val*5.0)/1023;
   Serial.println(valt);
 }

EXEMPLO 2: lendo dados do potenciômetro para temporizar acionamento de led

Analog2.jpg

EXEMPLO 3: lendo um NTC e utilizando a equação de Steinhart-Hart

Analog3.jpg
Analog4.jpg


Outro projeto:

Termômetro com arduino - usando LM35


<< Página do curso

Uso da comunicação serial AULA 5 - Leitura e escrita nas portas analógicas PWM e acionamento motores >>