quinta-feira, 2 de fevereiro de 2012

Imprimir Valor de Porta Analógica Através da Serial


Este exemplo mostra como você pode ler uma porta digital usando um potenciômetro. Um potenciômetro é um dispositivo mecânico simples, que permite variar a resistência quando o êmbolo é girado. Ao passar voltagem através do potenciômetro e através de uma porta analógica do seu Arduino, é possível medir a quantidade de resistência produzida pelo potenciômetro, como um valor análogo. Neste exemplo você monitorará o estado do seu potenciômetro após estabelecer comunicação Serial entre o Arduino e o PC.



Material Necessário

  • Placa do Arduino
  • Potenciômetro de 10K ohms

Circuito

Conecte os três fios do potenciômetro na sua placa do Arduino. O primeiro fio vai no GND (0V), o pino central na porta analógica zero (A0) e o terceiro pino do potenciômetro vai no VCC (5V).


Ao girar o êmbolo do potenciômetro, você altera a quantidade de resistência em um ou outro lado da trilha na qual o pino central está montado. Isto muda a voltagem no pino central. Quando a resistência entre o pino central e o lado conectado no 5V está perto de zero (e a resistência do outro lado está perto de 10k ohms), a voltagem no pino central fica perto dos 5V. Quando o cenário é invertido, a voltagem no pino central se aproxima dos 0 volts, ou GND. Esta voltagem é a voltagem analógica que você está lendo como entrada.
O Arduino possui um circuito interno chamado conversor analógico-digital que efetua a leitura da variação de voltagem e a converte em um número entre 0 e 1023. Quando o êmbolo é girado em um sentido, teremos 0 volts entrando na porta analógica e o valor convertido é 0. Quando o êmbolo é girado completamente para o outro lado, teremos 5 volts entrando na porta e o valor convertido é 1023. Entre esses valores, a função analogRead() retorna um número entre 0 e 1023 que é a quantidade proporcional de voltagem sendo aplicada a porta.


Esquema Elétrico




Código

No programa abaixo, a única coisa que você precisa configurar na função setup() é a comunicação Serial, na velocidade de 9600 bauds (bits de dados por segundo), entre o Arduino e o PC, utilizando o comando abaixo:

Serial.begin(9600);

No laço principal do seu programa, na função loop() do seu código, você precisa estabelecer uma variável para armazenar o valor convertido da resistência do seu potenciômetro (que deve ser entre 0 e 1023, perfeito para o tipo int de variável).

int sensorValue = analogRead(A0);

Finalmente, você precisa imprimir essa informação para seu console Serial, convertido em decimal (DEC). Você pode fazer isso com o comando Serial.println() na sua última linha de código:

Serial.println(sensorValue, DEC)

Agora, quando você abrir o Monitor da Serial, no ambiente de desenvolvimento do Arduino (clicando no ícone exatamente ao lado do botão “Upload”, na barra de ferramentas), você deverá ver um fluxo constante de números entre 0-1023, correlacionados com a posição do êmbolo do potenciômetro. Ao girar o potenciômetro, esses números deverão refletir o valor convertido quase que instantaneamente.

/*
  AnalogReadSerial
 Reads an analog input on pin 0, prints the result to the serial monitor

 This example code is in the public domain.
 */


void setup() {
  Serial.begin(9600);
}

void loop() {
  int sensorValue = analogRead(A0);
  Serial.println(sensorValue);
}



4 comentários:

  1. ola renato eu queria controlar 4 servo motor cada servo com 1 potenciometro vc poderia passar o codiga pra mim

    meu email e regivolve@bol.com.br

    ResponderExcluir
    Respostas
    1. Obrigado pelo comentário!!!
      Participe do forum do curso Arduino, poste suas duvidas tecnicas la!!!
      Existem tópicos exclusivos separados por aula.
      http://www.youtube.com/user/graccula?feature=guide
      Abraços
      Renato

      Excluir
  2. Olá Renato eu preciso controlar 5 servos com apenas 1 potenciômetro, mas acredito que a VCC do Arduino não esteja dando conta, você tem alguma sugestão para conseguir movimentar o 5 servos ao mesmo tempo?
    Meu email é juniormouraj@hotmail.com.
    Obrigado.

    ResponderExcluir
    Respostas
    1. Obrigado pelo comentário!!!
      Participe do forum do curso Arduino, poste suas duvidas tecnicas la!!!
      Existem tópicos exclusivos separados por aula.
      http://www.youtube.com/user/graccula?feature=guide
      Abraços
      Renato

      Excluir