Sensor piezoeléctrico y ADC

Me gustaría conectar un sensor piezoeléctrico a mi microcontrolador ATmega8 a través de su ADC.

La razón es que me gustaría usar el sensor como sensor de fuerza. Noté que cuanto más fuerte lo presiono, mayor voltaje entrega (pero por muy poco tiempo). Este es el comportamiento esperado, por supuesto.

Lo que me pregunto es cómo lo conectaría al ADC. Quiero decir, cuando lo presiono muy fuerte, el piezo registra más de 10 V. Cuando lo presiono suavemente, generalmente me da alrededor de 1,3 V.

Según tengo entendido, el microcontrolador no puede tomar más de 5V, o corro el riesgo de dañarlo. ¿Es esto correcto? Quiero decir, supongo que la corriente que sale del piezoeléctrico es extremadamente pequeña, aunque no sé si eso cambia la situación.

Básicamente, me gustaría saber si es posible conectar este sensor piezoeléctrico a mi microcontrolador AVR para tomar lecturas analógicas.

Según el área de interés de la presión: si las presiones de bajas a moderadas son importantes, y las altas y altas no lo son, entonces un circuito de recorte (derivación zener) o una combinación de divisor de voltaje y recorte podría generar resultados más relevantes. Básicamente, cualquier cosa por encima de cierta fuerza será un valor plano "alto", mientras que por debajo de esa fuerza dará como resultado un buen rango de valores analógicos. También vea esta pregunta para una aplicación similar.
@AnindoGhosh Esa es una idea realmente genial. Por favor déjalo como respuesta si tienes un momento. excelente idea
OK, lo haré, cuando regrese a una computadora más tarde hoy. Gracias.

Respuestas (3)

Un experimento rápido con un doblador piezoeléctrico muestra los siguientes voltajes:

  • Sin presión: 0,12 voltios ( probablemente deriva/ruido/brisa )
  • Presión suave: 1,72 voltios
  • Presión firme: 4,21 voltios
  • Grifo de uña: 6,29 voltios (punta)
  • Golpe en la mesa: 11,74 voltios (pico)

Suponiendo que el área de interés abarca los primeros 4 niveles de señal, y cualquier lectura superior a 10 voltios se puede generalizar a una lectura arbitraria "fuera de rango", la siguiente implementación debería servir para los propósitos de la pregunta:

esquemático

simular este circuito : esquema creado con CircuitLab

El diodo D1 desvía la parte negativa de la señal que generará el doblador de peizo en los golpes o la liberación de presión. Para ser más cauteloso, esto se puede sustituir por un diodo Schottky para hacer frente a picos muy rápidos, o para un recorte más ajustado al riel de tierra (~ 0,3 voltios en lugar de ~ 0,7 voltios), un diodo de germanio.

El diodo Zener se selecciona intencionalmente como 4,7 voltios, para garantizar que el voltaje de salida no supere los 5 voltios bajo ninguna circunstancia.

El búfer del amplificador operacional garantiza que el divisor de voltaje no se cargue significativamente por el pin ADC, por lo tanto, se simplifica el cálculo de la resistencia del divisor de voltaje.


Este circuito emitirá la mitad del voltaje positivo generado por el sensor de presión piezoeléctrico hasta que el voltaje alcance aproximadamente 4,7 voltios, luego fijará ese voltaje para cualquier presión más alta aplicada. Cualquier voltaje negativo generado debido a golpes o al rebote del sensor se desviará a través del diodo D1, protegiendo el amplificador operacional (o el ADC si está conectado directamente) de los voltajes negativos.

¿Qué carga tenías en el piezo cuando hiciste las pruebas de voltaje? Si está descargado, podría ser instructivo probar 200 kilohmios según lo dibujado y volver a verificar esos voltajes...
Buena respuesta. Aunque, ¿crees que podrías explicar un poco más la necesidad del amplificador operacional, por favor? No estoy muy seguro de entender por qué lo necesito. Entiendo todo el circuito de otra manera. Muchas gracias.
@BrianDrummond Soy flojo: había desviado el cable DSO con 220k, y es por eso que mantuve esos valores de 100k para las resistencias, lo suficientemente cerca y me ahorré el cálculo de cosas :-)
@capcom La impedancia de entrada de los pines ATmega8 ADC es nominalmente de 10 kOhms. Si tuviera que aplicar dichos 10k a través del divisor de voltaje, arrojaría bastante el divisor de voltaje. Entonces se aplicarían los cálculos finales en la respuesta de Chetan Bhargava, excepto que la impedancia de entrada real del pin no es constante ni precisamente 10 kOhms. El uso del amplificador operacional de búfer evita este problema al presentar una impedancia de entrada efectiva muy alta al divisor de voltaje, al tiempo que proporciona una impedancia de salida mucho más baja que 10 kOhms al ADC.
Veo. Supongo que necesito entender qué es la impedancia para comprender mejor el razonamiento. Desafortunadamente, no tengo un amplificador operacional a mano. ¿Significa esto que no puedo usar el piezoeléctrico? ¿O la respuesta de Chetan seguiría funcionando, ya que tiene sentido para mí? Gracias.
Necesitará el búfer en la salida que se muestra en el circuito de Anindo. Su ATmega no tiene la impedancia de entrada para manejar un elemento piezoeléctrico. Su señal parecería muy pequeña sin ella. Un amplificador operacional con una entrada FET sería lo mejor
@ScottSeidman Entonces, ¿por qué, por ejemplo, este proyecto funciona ? arduino.cc/en/Tutorial/Knock ¿No exhibiría el mismo problema?
@capcom Si observa, ese proyecto no protege la entrada ADC, no divide el voltaje y confía en la alta impedancia de salida del piezoeléctrico para limitar los efectos adversos.
Bueno, como no tengo un amplificador operacional, no estaría de más intentarlo, ¿no? Dividiré el voltaje y usaré un diodo zener (para asegurarme de que no lo alimente más de 5 V) o le daré un voltaje inverso. Eso es lo mejor que puedo hacer con lo que tengo. ¿Crees que todavía funcionará, pero no tan efectivamente como tu sugerencia? Gracias.
@capcom Con cualquier cosa que se intente fuera de las especificaciones, el único consejo que alguien puede dar es: Pruébelo, y si el humo mágico no sale, todo está bien :-)
Vaya, ¿por qué habría humo mágico aquí? No estoy usando nada de alta potencia. Por lo que yo veo, simplemente no funcionará. No creo que estaría arriesgando mi MCU, ¿verdad?
@capcom No lo sabrás hasta que lo intentes. Como escuchará de muchos que se han quemado antes, los voltajes sorprendentemente pequeños pueden causar los efectos del humo y, sin embargo, a veces una parte puede soportar niveles sorprendentemente altos de mal uso y sobrevivir.
Si va a la hoja de datos del microcontrolador que está utilizando, la clasificación máxima absoluta de voltaje en cualquier pin es Vcc + 0,5 V. Si excede eso, el fabricante no garantiza que el chip vuelva a funcionar, por definición. Si todavía funciona, todavía funciona, pero no se sorprenda si no lo hace.

Puede usar un divisor de resistencia para escalar el voltaje de entrada. El divisor se basa simplemente en la Ley de Ohm .

divisor

El circuito anterior está tomado del artículo de wikipedia sobre el tema. En el caso anterior, Vin debe estar conectado al sensor piezoeléctrico y Vout debe estar conectado a su entrada ADC.


divisor2

El circuito anterior se toma de la calculadora divisora. Puede usar la calculadora aquí para calcular los valores de las resistencias.

¿Cómo he podido ser tan estúpido? Wow gracias. Creo que necesito dormir ahora.
@capcom Si está interesado en una calculadora de divisor de voltaje que use valores estándar en lugar de valores hipotéticos, consulte esto .

Puede conectar el circuito de la cortadora con un elemento piezoeléctrico. Debido a que el elemento piezoeléctrico ha generado la señal de CA, puede alcanzar el nivel máximo en el lado positivo o en el lado negativo y podemos detectar en qué impacto puede enriquecer el nivel máximo de voltaje. Entonces, puede conectar el circuito recortador y en ese circuito recortador puede usar diodo de germanio (clip de 0.3v) o diodo de silicio (clip de 0.7v), que recorta la señal en negativo y positivo. Para que pueda recortar la señal y proteger su controlador.