-
Agora que você
viu as etapas
-
que uma conversão
de analógico-digital compreende,
-
ou seja, você viu a amostragem,
a quantização e a codificação,
-
vamos fazer um hands-on para
entender como que o ESP32 trabalha.
-
Na minha tela,
você tem um código
-
que inclusive está
aí no seu material,
-
esse código define o pino 34
como sendo a entrada do sensor
-
e o pino 2 como sendo
a saída para um LED.
-
E colocamos, aqui,
uma variável
-
que vai trabalhar
com o limiar de 2 volts,
-
onde esse limiar pode
até ter valores quebrados,
-
porque ele é um float,
-
e você já vai entender
para que serve esse limiar.
-
Dentro do void setup, a gente só
define o "pinMode", o "Serial.begin",
-
onde o pinMode define
o comportamento do pino
-
e o Serial.begin é para eu ativar
as mensagens que vão aparecer
-
aqui no meu monitor serial,
como já está aparecendo,
-
olha, tensão 1,66.
-
E, dentro do "void loop", eu
estou fazendo um "analogRead".
-
Esse comando "analogRead"
-
é o responsável em converter
analógico para digital.
-
Ele está pegando, então,
uma leitura analógica lá de fora
-
a partir do pino
que está o sensor,
-
e está convertendo
ele para uma variável.
-
Quando ele faz isso aqui, essa
única linha, no fundo, no fundo,
-
ele está pegando a amostragem,
a quantização e a codificação.
-
Ele está empacotando tudo
isso nessa única linha aqui.
-
Bom, depois que
eu fiz essa extração,
-
eu vou, agora, imprimir no monitor
o equivalente a esse dado,
-
porque quando ele
passar para dentro,
-
ele vai ter, aqui,
um valor da memória.
-
Lembra lá de codificação,
que ele vai de 0 a 4096?
-
Ou melhor, 4095,
dando 4096 degraus.
-
Então, eu vou dividir
aqui por 4095.
-
Que valor eu vou dividir?
-
Eu vou pegar o valor
que eu estou lendo,
-
multiplicar pelo pico máximo
que o ESP32 trabalha,
-
que é 3,3 volts,
e dividir por 4095.
-
Se você fizer isso,
na verdade, é uma regra de 3
-
que você está
fazendo aqui,
-
você está pegando
o respectivo valor do degrau
-
que está armazenado
na variável "valorADC",
-
eu posso até mudar
aqui para "valorDegrau",
-
só para você entender
nesse exato momento,
-
e, aqui, eu coloco
o valorDegrau.
-
Por que esse "valorDegrau"?
-
Porque ele está
quantizado já, está bom?
-
Você pode chamar, também,
de "valorADC" como estava.
-
E aí, vai sair lá para mim,
no monitor serial,
-
a respectiva tensão
de trabalho
-
de acordo com o pico que eu
consigo ler desse valorDegrau.
-
E aí, depois que ele
imprime a palavra tensão,
-
o conteúdo de tensão
e a variável "V", de volt,
-
eu faço, aqui, aquele limiar
de decisão que você pode chutar.
-
Que limiar é esse?
-
Não tem nada a ver com aquele limiar
de decisão da quantização não,
-
é só para dizer o seguinte:
se passar de 2 volts,
-
eu acendo um alerta aqui,
olha, limite ultrapassado.
-
esse "2" pode ser o equivalente
a uma temperatura,
-
pode ser um nível de água,
pode ser uma vibração,
-
o que você quiser,
-
porque todo valor que estiver
aqui em valorDegrau é quantizado,
-
é você que vai saber
o que ele representa.
-
O sensor vai estar...
-
Todos os sensores vão trazer
da mesma forma a informação,
-
é você que vai decidir o que ele
representa aí na sua aplicação.
-
E, então, vamos lá,
1,6 volts,
-
se você mexer aqui, eu vou
diminuindo o valor da tensão,
-
porque eu estou diminuindo,
aqui, o valor da resistência ohm.
-
E, depois, se eu for para
o outro lado e atingir 2,
-
que é o meu limite,
o LED deve acender,
-
olha, 1,86, ele ainda não acendeu,
e mais um pouquinho aqui,
-
pronto, 2,15, alerta, limite
ultrapassado, LED aceso.
-
E ele faz essa leitura
a cada 200 milissegundos.
-
Só um complemento: esse delay
de 200 não é uma boa prática,
-
a gente está colocando aqui só
para demonstração do código,
-
para não deixar
ele tão poluído,
-
mas quando você
estiver trabalhando,
-
lembre-se que você tem
que substituir o delay por millis,
-
está bom?
-
Portanto, você viu, nesse exemplo,
que o quantizador, a amostragem
-
e o codificador estão em uma única
linha do código ESP32.
-
Isso porque a família Arduíno
encapsula muita coisa,
-
ela esconde, nos bastidores,
algumas regras de hardware
-
e alguns processos
que são transparentes
-
para um usuário menos enraizado,
que tem menos conhecimento.
-
Para nós aqui na área
de IoT e IA,
-
é importante saber que existe
isso nos bastidores,
-
porque, como eu
disse anteriormente,
-
os datasets são mais elaborados,
ou mais fidedignos,
-
quando a gente entende as limitações
que o hardware nos apresenta.