No se si ya respondieron sobre el preamplificador programable. Sirve para amplificar las señales que son muy pequeñas, así poder aumentar la precisión de las medidas. Normalmente hay un registro o función que permite establecer la ganancia, 0dB es igual a 1 de ganancia. Recomiendo lean como es la relación entre los decibeles y las guanacias en forma de multiplicador. Luego tienes otro que es el atenuador, eso es el contrario de amplificador, Se utiliza para leer valores mayores. Cuando colocaste 0dB, el valor máximo era 1,1 que debe ser la referencia interna. De todas maneras, la tensión máxima de cualquier pin suele ser la de alimentación, es decir 3.3 y algo ligeramente mayor, pues suele haber un diodo, ánodo al pin y cátodo a la alimentación que limita este nivel a 3.3 y algo mas. siempre es recomendable colocar resistencias a la entrada de los pines, así este diodo protege al pin. si no se coloca esta resistencia , un error mata al chip.. Lo dice la voz de la experiencia. Microchip protege mejor a sus pines que Atmel.
Un par de comentarios porque estoy leyendo sobre tema. El maximo de tension en las entradas siempre es de 3,3V, cuando lo ajustas con una atenuacion menor y superas el valor maximo lo que ocurre es que alcanzas el maximo de muestra a una tension menor, y a partir de ahi si incrementas la entrada no cambia. En cuanto a la precision, estos adc son bastante chotos tienen un 7%, son muy alineales al principio y al final de la escala, por ahi encontre un flaco que por medio de unas correciones matematicas logra incrementar la precision al 1%
Hola que tal? muy buenos los vídeos tutoriales, soy nuevo en el mundo del esp32, mire muchos de tus vídeos y realmente son de utilidad. Mi consulta es la siguiente no estaría encontrando si se puede trabajar con las interrupciones del ADC, como laburan otros micros. Por ejemplo activar la lectura y en la función de interrupción preguntar si el dato esta listo y ahí laburar con esos datos y volver a mi programa principal. tampoco vi donde se pueden setear el prescaler. Saludos espero me puedas dar una mano
Estoy utilizando un LM35 como sensor pero el rango de medicion es muy grande, me varia +- 100 bits por lo que no es fiable la lectura. Que puedo estar pasando? El muestreo lo intento cambiar pero no me deja.
Hola, se que tiene un buen rato que realizo este video, y me agrado la explicación que nos dió. Pero me quedé con una duda, y es respecto a lo que dijo de que solo son 2 ADC en lugar de 18, la verdad no entendí eso, y lo que pasa es que quiero obtener info de 5 sensores y mandarlos a un servidor, por eso pregunto sobre si son 2 ADC solamente, para buscar otro dispositivo que me permita tener 5 sensores y usar el ADC para cada uno. Gracias.
@@SinapTec muchas gracias por resolver esta duda. Me ha surgido otra que espero me pueda ayudar. Viendo los demás videos que tiene me he percatado que tiene una placa ESP32 de Espressif, y en algunos foros he leído que los "originales" son de Ai (Ai-Thinker). Existen diferencias entre ambos? sobre todo en la manera en que se distribuyen los pines (en mi caso lo que más me interesa son los que tienen acceso a los ADC).
Gracias por sus aportes, soy seguidor de sus tutoriales desde que comence con los esp32, ahora tengo un problema con este codigo, cuando compilo , siempre salen los errores , 'analogSetSamples' was not declared in this scope , 'analogSetCycles' was not declared in this scope ,'adcStart' was not declared in this scope , lo he probado en ordenadores nuevos, reinstalando todo varias veces, y siempre ocurre lo mismo, lo he probado en diferentes sistemas operativos, y también en vs code platformio y atom, y nunca funciona.En un ordenador viejo que lo tenia instalado anteriormente funciona perfecto.Le estaría muy agradecido si me pudiera dar alguna pista , y que puedo hacer, pues llevo mucho tiempo intentando corregir el error y no lo consigo .Cuando cargo otros codigos si que funcionan , solo me pasa con los relacionados con los adc y el serial2. Gracias.
Muchas Gracias por su aporte. Mi duda es ¿consiguió hacer funcionar el preamplificador? me gustaría leer la caída de tensión una resistencia shunt que da ofrece entre 0 y 30mV. Muchas gracias
tengo un problema, estoy trabajando con un NodeMCU esp32s y necesito leer 6 entradas analógicas con un sensor flexible, pero no esta leyendo ningun de los pines, dejare el codigo como lo estoy haciendo , ¿ me colaboras con el problema? void setup() { analogReadResolution(12); Serial.begin(115200); delay(1000); } void loop() { Serial.println(analogRead(0)); Serial.println(analogRead(3)); Serial.println(analogRead(6)); Serial.println(analogRead(7)); Serial.println(analogRead(4)); Serial.println(analogRead(5)); delay(500); }
Tengo el ESP32 DEVKIT V1 y para cargar requiero presionar BOOT para conectar al IDE de Arduino. Note que al cargar el programa no requieres presionar el boton BOOT, esto se puede configurar en el Arduino IDE?
@@SinapTec totalmente pero mi pregunta iba hacia si existe una librería para el esp8266 en que tengas acceso a la configuración de el conversor ad por ejemplo de preescaler, la frecuencia de muestreo algo así como programar un micro a nivel bit por bit de cada registro. Porque desconozco a que frecuencia esta muestreando , si hay banderas que me indiquen el fin de la conversion
@@SinapTec no al final haciendo mas pruebas varia de igual forma que el stm32... asi q ya resolvi mi duda XD... ahora ando intentando mandar datos bien rapido con websocket =/
@@SinapTec Hola Ale acá de nuevo y una vez más encontrando un funcionamiento errático del esp32.... ando muestreando una señal y esta tiene un ruido importante presente, pero a la hora de cargar el sketch visualizo que este prácticamente desaparece ... esto es difícil de explicar por palabras, pero te dejo unos links a las fotos que tome de dicho fenómeno ibb.co/fp2ddHR ibb.co/CWmq4Bt ibb.co/vXMHWtj ibb.co/zZB9zZX creo que es facil de identificar cuales son en funcionamiento normal y cuales mientras cargo el sketch
@@francosantini1298 Muy interesante Franco. Fijate el video que hice sobre un micrófono espía con ESP8266. En ese video muestro como cambia notablemente el nivel de ruido según la alimentación del ESP. Saludos.
@@francosantini1298 Intenta apagar el wifi (ap y sta) y comprueba si eso te elimina el ruido... en mi caso, descubrí (por ensayo/error) era el causante al intentar capturar audio. Creo, (deduzco empíricamente), se debe a que el consumo variable que genera el wifi (mayor aún en modo ap) modifica el voltaje de referencia interno... Similar al video del "micrófono espía" de Sinaptec, hice (en micropython) un montaje en el que entre 2 módulos ESP32, se capturara audio, se transmitiera y lo reproduce bidireccional y simultáneamente entre ambos, usando además el DAC para reproducirlo. Intenta como te sugiero apagar el wifi y me confirmas si te coincide la soluciòn...
Saludos amigo, gran video gracias, tengo una consulta en esta placa ESP32 que trae 2 ADC cuando activo el WIFI para trasmitir los datos de ambos canales uno de los canales (ADC2) pasa a valor maximo 4095, por lo que pierdo de leer desde ese canal , favor tendras alguna sugerencia al respecto. (nota si no uso la comunicacion wifi este error desaparece)
Exacto, el ADC2 no funciona en combinación con el WIFI, de hecho creo que el servicio de wifi lo tiene que utilizar para realizar alguna de sus tareas.
Si, puede ser, quise hacer algo sencillo, hay mucho para ver sobre ADC, no sólo las configuraciones que pasé por encima, también se puede usar junto con I2S, DMA y varias cosas más complicadas. Mas adelante a lo mejor haga algo más completo. Saludos.
No se si ya respondieron sobre el preamplificador programable. Sirve para amplificar las señales que son muy pequeñas, así poder aumentar la precisión de las medidas. Normalmente hay un registro o función que permite establecer la ganancia, 0dB es igual a 1 de ganancia. Recomiendo lean como es la relación entre los decibeles y las guanacias en forma de multiplicador. Luego tienes otro que es el atenuador, eso es el contrario de amplificador, Se utiliza para leer valores mayores. Cuando colocaste 0dB, el valor máximo era 1,1 que debe ser la referencia interna. De todas maneras, la tensión máxima de cualquier pin suele ser la de alimentación, es decir 3.3 y algo ligeramente mayor, pues suele haber un diodo, ánodo al pin y cátodo a la alimentación que limita este nivel a 3.3 y algo mas. siempre es recomendable colocar resistencias a la entrada de los pines, así este diodo protege al pin. si no se coloca esta resistencia , un error mata al chip.. Lo dice la voz de la experiencia. Microchip protege mejor a sus pines que Atmel.
Hola tienes algún sketch como muestra o de referencia? Gracias
Un par de comentarios porque estoy leyendo sobre tema. El maximo de tension en las entradas siempre es de 3,3V, cuando lo ajustas con una atenuacion menor y superas el valor maximo lo que ocurre es que alcanzas el maximo de muestra a una tension menor, y a partir de ahi si incrementas la entrada no cambia. En cuanto a la precision, estos adc son bastante chotos tienen un 7%, son muy alineales al principio y al final de la escala, por ahi encontre un flaco que por medio de unas correciones matematicas logra incrementar la precision al 1%
Muchas gracias por el dato. Saludos.
ESTUPENDO!! gracias amigo, espero no pares con estos tutoriales sobre ESP
Muchas gracias Jesús. Saludos.
Muy buen video, de donde podemos conseguir las funciones que nos proporciona el ESP32??
Muy buen tutorial, muchas gracias!
Gracias !!!!!!!!!!!!!!!!!!!!!!!!!!
Hola que tal? muy buenos los vídeos tutoriales, soy nuevo en el mundo del esp32, mire muchos de tus vídeos y realmente son de utilidad. Mi consulta es la siguiente no estaría encontrando si se puede trabajar con las interrupciones del ADC, como laburan otros micros. Por ejemplo activar la lectura y en la función de interrupción preguntar si el dato esta listo y ahí laburar con esos datos y volver a mi programa principal. tampoco vi donde se pueden setear el prescaler. Saludos espero me puedas dar una mano
Lo desconozco, estoy algo alejado de los ESP. Si lo averiguas por favor hacémelo saber. Suerte.
Estoy utilizando un LM35 como sensor pero el rango de medicion es muy grande, me varia +- 100 bits por lo que no es fiable la lectura. Que puedo estar pasando? El muestreo lo intento cambiar pero no me deja.
Frecuencia de muestreo?
Muy bueno!! Gracias!
de nada, gracias por comentar.
Hola, se que tiene un buen rato que realizo este video, y me agrado la explicación que nos dió. Pero me quedé con una duda, y es respecto a lo que dijo de que solo son 2 ADC en lugar de 18, la verdad no entendí eso, y lo que pasa es que quiero obtener info de 5 sensores y mandarlos a un servidor, por eso pregunto sobre si son 2 ADC solamente, para buscar otro dispositivo que me permita tener 5 sensores y usar el ADC para cada uno. Gracias.
El esp32 internamente tiene 2 ADC, pero están mutiplexados por lo que podés conectar hasta 18 sensores. Saludos.
@@SinapTec muchas gracias por resolver esta duda. Me ha surgido otra que espero me pueda ayudar. Viendo los demás videos que tiene me he percatado que tiene una placa ESP32 de Espressif, y en algunos foros he leído que los "originales" son de Ai (Ai-Thinker). Existen diferencias entre ambos? sobre todo en la manera en que se distribuyen los pines (en mi caso lo que más me interesa son los que tienen acceso a los ADC).
Gracias por sus aportes, soy seguidor de sus tutoriales desde que comence con los esp32, ahora tengo un problema con este codigo, cuando compilo , siempre salen los errores , 'analogSetSamples' was not declared in this scope , 'analogSetCycles' was not declared in this scope ,'adcStart' was not declared in this scope , lo he probado en ordenadores nuevos, reinstalando todo varias veces, y siempre ocurre lo mismo, lo he probado en diferentes sistemas operativos, y también en vs code platformio y atom, y nunca funciona.En un ordenador viejo que lo tenia instalado anteriormente funciona perfecto.Le estaría muy agradecido si me pudiera dar alguna pista , y que puedo hacer, pues llevo mucho tiempo intentando corregir el error y no lo consigo .Cuando cargo otros codigos si que funcionan , solo me pasa con los relacionados con los adc y el serial2. Gracias.
por eso uso el lenguaje nativo del esp32 ESP IDF y no del arduino.
Es posible tomar la señal analógica de un viejo video portero (con pantalla CRT) y convertirla en digital para poder visualizarla en otra pantalla?
Con el ESP32 no creo que sea posible. Saludos.
@@SinapTec Gracias por responder! Sabes de algún chip con el que fuer posible? Esp8266 o algo así?
@@xanulloa6080 No lo se. No es sólo cuestión del chip, también es tan o mas importante el soft. Saludos.
pudiste hacerlo ??
excelente! una pregunta..cuales son los temas que tienes pensados tocar con el esp32; es decir; si llegaras al tema de servidores o aplicaciones iot
Si por supuesto, el tema es que lo estoy planteando desde cero, por eso tengo que explicar unas cuantas cosas antes de llegar a eso. Saludos.
Muchas Gracias por su aporte. Mi duda es ¿consiguió hacer funcionar el preamplificador? me gustaría leer la caída de tensión una resistencia shunt que da ofrece entre 0 y 30mV. Muchas gracias
Hola Juan, no logré hacerlo funcionar. Pero tampoco lo intenté.
Saludos.
tengo un problema, estoy trabajando con un NodeMCU esp32s y necesito leer 6 entradas analógicas con un sensor flexible, pero no esta leyendo ningun de los pines, dejare el codigo como lo estoy haciendo
, ¿ me colaboras con el problema?
void setup() {
analogReadResolution(12);
Serial.begin(115200);
delay(1000);
}
void loop() {
Serial.println(analogRead(0));
Serial.println(analogRead(3));
Serial.println(analogRead(6));
Serial.println(analogRead(7));
Serial.println(analogRead(4));
Serial.println(analogRead(5));
delay(500);
}
En el setup te falta configurar muchas cosas y el número que va en el analogRead es el de GPIO. Saludos.
Tengo el ESP32 DEVKIT V1 y para cargar requiero presionar BOOT para conectar al IDE de Arduino. Note que al cargar el programa no requieres presionar el boton BOOT, esto se puede configurar en el Arduino IDE?
No, eso depende de la placa. Saludos.
hola, se puede poner el voltaje de referencia como en los arduinos mega? usando la ide de arduino claro.
Creo que no. Pero tendría que investigarlo mejor. Saludos.
amigo disculpa a que pin conectaste, dices el 36 pero cual es ese pin ? ayudame por favor con eso , Gracias Dios te bendiga
A VP es decir GPIO36 , dependiendo de la placa que tengas puede variar la posición en la mia es el PIN14. Saludos.
Buenos dias, para la placa nodemcu esp8266 existe alguna libreria que me permita configurar internamente el conversor A/D??? Se agradece la info
Existente librerías para la IDE de Arduino. Justamente lo que explico en este vídeo esta usando una librería. Saludos.
@@SinapTec totalmente pero mi pregunta iba hacia si existe una librería para el esp8266 en que tengas acceso a la configuración de el conversor ad por ejemplo de preescaler, la frecuencia de muestreo algo así como programar un micro a nivel bit por bit de cada registro. Porque desconozco a que frecuencia esta muestreando , si hay banderas que me indiquen el fin de la conversion
disculpa, donde puedo ver la libreria?
ua-cam.com/video/Odh0LWXOZZk/v-deo.html
HAL significa Hardware Abstraction Layer
Muchas gracias Alfredo. Saludos
Esto me funcionaria con el sensor de pulso cardiaco?
Nunca trabajé con esos sensores, pero no creo que tengas ningún problema, por lo visto trabajan tambien con 3,3V.
SinapTec muchas gracias, intentaré hacerlo
Hace tiempo q vengo trabajando con otros dispositivos y noto que el esp32 varian MUCHO los valores de lectura … es normal eso?
Que tanto varía?
@@SinapTec no al final haciendo mas pruebas varia de igual forma que el stm32... asi q ya resolvi mi duda XD... ahora ando intentando mandar datos bien rapido con websocket =/
@@SinapTec Hola Ale acá de nuevo y una vez más encontrando un funcionamiento errático del esp32.... ando muestreando una señal y esta tiene un ruido importante presente, pero a la hora de cargar el sketch visualizo que este prácticamente desaparece ... esto es difícil de explicar por palabras, pero te dejo unos links a las fotos que tome de dicho fenómeno
ibb.co/fp2ddHR
ibb.co/CWmq4Bt
ibb.co/vXMHWtj
ibb.co/zZB9zZX
creo que es facil de identificar cuales son en funcionamiento normal y cuales mientras cargo el sketch
@@francosantini1298 Muy interesante Franco. Fijate el video que hice sobre un micrófono espía con ESP8266. En ese video muestro como cambia notablemente el nivel de ruido según la alimentación del ESP. Saludos.
@@francosantini1298 Intenta apagar el wifi (ap y sta) y comprueba si eso te elimina el ruido... en mi caso, descubrí (por ensayo/error) era el causante al intentar capturar audio. Creo, (deduzco empíricamente), se debe a que el consumo variable que genera el wifi (mayor aún en modo ap) modifica el voltaje de referencia interno... Similar al video del "micrófono espía" de Sinaptec, hice (en micropython) un montaje en el que entre 2 módulos ESP32, se capturara audio, se transmitiera y lo reproduce bidireccional y simultáneamente entre ambos, usando además el DAC para reproducirlo. Intenta como te sugiero apagar el wifi y me confirmas si te coincide la soluciòn...
Saludos amigo, gran video gracias, tengo una consulta en esta placa ESP32 que trae 2 ADC cuando activo el WIFI para trasmitir los datos de ambos canales uno de los canales (ADC2) pasa a valor maximo 4095, por lo que pierdo de leer desde ese canal , favor tendras alguna sugerencia al respecto. (nota si no uso la comunicacion wifi este error desaparece)
Hola, me parece que algunos pines del ADC" comparten configuracion con el WIFI intenta cambiar de pin
Exacto, el ADC2 no funciona en combinación con el WIFI, de hecho creo que el servicio de wifi lo tiene que utilizar para realizar alguna de sus tareas.
@@jeremiaszec1240 Ok , muchas gracias
A mi parecer te has quedado corto de explicaciones la verdad, es decir, has explicado lo mínimo y por encima y no se yo ...
Si, puede ser, quise hacer algo sencillo, hay mucho para ver sobre ADC, no sólo las configuraciones que pasé por encima, también se puede usar junto con I2S, DMA y varias cosas más complicadas. Mas adelante a lo mejor haga algo más completo. Saludos.