Tengo un TMP04 sensor de temperatura (paquete de 3 pines). Produce una onda cuadrada a aproximadamente 35Hz y el ciclo de trabajo se puede convertir en una lectura de temperatura (ver hoja de datos).
Tiene un voltaje operativo de 4.5V-7V y lo tengo conectado al suministro de 5V de un Arduino Uno. El uso de un multímetro entre los pines de alimentación confirma que el voltaje es ~ 4.96V, lo que debería ser adecuado.
Estaba usando la función pulseIn () para leer la hora en que el pin estaba alto, pero la función fallar y siempre fuera de tiempo.
Para verificar la salida del sensor, lo conecté a la entrada analógica de Arduinos (ADC) y tomé lecturas del pin cada milisegundo.
Hubo un claro patrón ALTO / BAJO, PERO hubo un problema. La señal LOW estaba leyendo aproximadamente ~ 15 (fino), pero la señal HIGH estaba leyendo ~ 145. Este es un voltaje muy bajo, ya que el ADC produce un número entre 0-1024.
Por lo tanto, una lectura de ~ 145 corresponde a un ALTO voltaje de ~ 0.7V, que por supuesto no se espera y es incorrecto. La hoja de datos sugiere que el voltaje ALTO nunca debe caer por debajo de \ $ V_ {DD} -0.4 \ $.
Pensé que podría haber sido un sensor de fallas, pero después de probar con otro, obtengo los mismos resultados.
Solo estoy haciendo prototipos en una placa de pruebas, y no tengo condensadores de desacoplamiento ya que los estaba probando.
Mi circuito es literalmente:
-
Sensor V + a Arduino 5V
-
El sensor conecta a tierra el suelo Arduino
-
Salida del sensor en Arduino (probé los pines 5 y A1)
No tengo otras resistencias o componentes en mi circuito. ¿Estoy haciendo algo mal? ¿He entendido mal cómo se supone que debo usar el sensor?
Aquí hay una salida de muestra del ADC, con una lectura cada milisegundo:
145
149
14
12
13
12
15
13
16
18
14
18
18
18
20
14
150
146
149
148
149
149
146
148
14
18
17
18
14
21
14
15
18
14
17
17
19
19
150
149