Esta barra, indica o nível de dificuldade encontrado para cada experiência realizada.
sendo:
"VERDE", indicação de nível 1 a 5 (Fácil);
"AMARELO", indicação de nível 6 a 8 (Médio);
VERMELHO, indicação de nível 9 e 10 (Difícil);
Agora vamos mostrar como fazer a leitura de um componente analógico, ou seja que gera um sinal de saída usando toda a gama de valores entre 0 e 5V.
Para isto utilizaremos um potenciômetro como sensor. O potenciômetro é um componente mecânico, que de acordo com uma variação angular em seu eixo central, varia sua resistência de saída de um 0 a um MÁX; quando conectado a uma fonte de tensão, significa que em seu terminal de saída, podemos então ler uma tensão proporcional a essa variação angular.
O Hardware:
1 x Placa Arduino UNO;
1 x Potenciômetro de 10KO;
Fios
O Circuito:
Imagem gerada usando Fritzing, veja o site oficial para download e tutoriais.
http://fritzing.org/
Usando a breadboard:
Conecte o terminal direito do potenciômetro ao positivo da alimentação;
Conecte o terminal esquerdo do potenciômetro ao negativo da alimentação;
Conecte o terminal central do potenciômetro à entrada analógica 0 do Arduino.
Internamente o Arduino tem um conversor analógico-digital, capaz de converter sinais que podem variar de 0 a 5 volts em um sinal digital de 10 bits variando de 0 a 1023.
Quando o cursor estiver girado todo em sentido ao 0V, isso significa valor 0; e quando o cursor estiver girado todo em sentido ao 5V, isso significa 1023; valores intermediários devem ser mapeados, para poderem ser exibidos....
A função utilizada para a leitura dos dados é:
analogRead(A0);
Que retornará um número proporcional a quantidade lida (entre 0 e 1023)
Sendo A0 o pino analógico de onde será lido o sinal.
O Código:
Abaixo o código completo e os comentários;
/*
AnalogReadSerial
Lê uma entrada analógica 0, envia e mostra os resultados no monitor serial
Este código exemplo é de domínio público
*/
//inicialização do Arduino
void setup() {
Serial.begin(9600); //inicializa a comunicação serial USB com oPC
}
//Iteração principal do programa
void loop() {
int sensorValue = analogRead(0); //faz a leitura da porta analógica A0 e guarda o valor na variável
//"sensorValue" de tipo inteiro.
Serial.println(sensorValue, DEC); //envia os dados da variável "sensorValue" para a porta de
//comunicação serial em notação decimal.
} //Fim da Compilação
Consulte o site do Arduino para maiores informações: http://arduino.cc/en/Tutorial/AnalogReadSerial
Vídeos:
Conclusão:
Esta experiência também nível básico não teve maiores problemas.
Olá. Me tire uma dúvida: Se eu quiser que os valores variem de 0 a 4V, como eu faço. Tentei usar o analogwrite pra entrar com esse valore de tensão, e embora o LED acenda com essa tensão menos, o valor lido pelo potenciômetro é o máximo ainda, correspondente a tensão de 5V.
ResponderExcluirJoão,
ExcluirA entrada analógica é para 0 a 5V independentemente. O conversor analógico digital gera valores de 0 a 1023 função analogRead(pin).
Não existe como modificar isto no Arduino. O que acontecerá se você colocar uma entrada de 0 a 4V é que o valor lido na porta não deve nunca atingir 1023.
Na saída analogica analogWrite() a tensão vai variar de 0 a 5V de acordo como o comando 0-255, dessa forma, você não poderá fazer um analogWrite(pin, 255), pois isso mandaria o sinal de 5V na saída. É interessante fazer os testes para saber qual valor significa 4V na saída.
Você pode usar a função map() ou a função constrain() para especificar um range aceitável.
No seu programa, você deve considerar estes fatos.
Cuidado:
analogRead() é para você ler a tensão vinda do POT.
analogWrite() é para você escrever no LED.
Penso que você conhece estes detalhes.
Se tiver mais alguma dúvida entre em contato pelo email:
marcelo.moraes.1971@gmail.com
Abraço
Marcelo Moraes
Este comentário foi removido pelo autor.
ResponderExcluirOlá, como eu transformo os valores lidos de 0 a 1023 para valores do próprio potenciômetro? tipo, eu quero imprimir num display o valor do potenciometro mas só aparece valores de 0 a 1023
ResponderExcluir