Arduino Forum

International => Español => Hardware => Topic started by: jcorfer on Jun 05, 2018, 06:28 pm

Title: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 05, 2018, 06:28 pm
Buenas tardes a tod@s!

Estoy montando un proyecto en el que necesito utilizar sensores de posicionamiento angular, y para ello estoy realizando un estudio de precisión de dos sensores: encoder magnético absoluto y sensor hall.

Os resumo un poco la historia:

Primero empecé a hacer pruebas desde una placa Arduino Nano y los datos que obtengo con cada sensor son un poco confusos:



Con esos resultados ya aparece la primera duda: Si Arduino Nano lee hasta 10 bits de precisión, ¿porqué no se obtienen valores de 0 a 1023, cómo sí he podido obtener desde un potenciómetro conectado a esta misma placa? Después de investigar que los sensores dan 12 bits de información y que los valores podrían ser incorrectos por la adaptación de 12 a 10 bits, decidí utilizar un módulo ADS1115, obteniendo los siguientes valores:



Cómo se observa en los resultados, se siguen obteniendo valores que no representan el recorrido completo de los sensores. Achaqué esto al trabajo del ADS y decidí adquirir una placa de Arduino que su ADC permitiera leer datos mayores de 10 bits y no tener que utilizar componentes extras. Adquirí Arduino DUE y hice dos pruebas:

Utilizando analogReadResolution(10)



Utilizando analogReadResolution(12)



No sólo siguen siendo incoherentes los valores (sobre todo en el sensor hall) si no que, en ambos casos, hay un recorrido de 90º donde la placa obtiene continuamente el valor máximo 4095. Buscando información, encontré que Arduino DUE puede proporcionar como máximo 3.3v a las entradas y salidas analógicas, por lo que entiendo que la franja de 90º a máximo valor podría ser causada por la alimentación de 3.3v (los sensores necesitan hasta 5v para su correcto funcionamiento)

Bueno después de toda esta información, y suponiendo que los problemas puedan venir de la precisión de bits y alimentación, mi pregunta resumen es la siguiente:

¿Existe alguna placa Arduino o solución para ésta que sea capaz de obtener más de 10 bits de información, pero alimentando sus sensores a 5v?

Muchas gracias desde ya!
Saludos!

Los componentes son estos:

Encoder Magnético Absoluto: enlace (https://es.aliexpress.com/store/product/Fast-Ship-2PCS-Non-contact-Angle-Sensor-P3015-Diameter-15mm-Absolute-Position-360-Degree-no-dead/1548016_32825015419.html?spm=a219c.search0104.3.16.7815cf09NAMfCi&ws_ab_test=searchweb0_0,searchweb201602_5_10152_10065_10709_10151_10344_10068_5722815_10342_10547_10343_10340_10341_10548_5722915_5722615_10697_10696_10084_10083_10618_10710_10307_10301_10303_5722715_5711215_10059_10184_308_100031_10103_441_10624_10623_10622_5711315_5722515_10621_10620,searchweb201603_19,ppcSwitch_5&algo_expid=7c2032c1-1b4a-4562-96d3-fbe151e05d62-2&algo_pvid=7c2032c1-1b4a-4562-96d3-fbe151e05d62&priceBeautifyAB=0)

Sensor Hall: enlace (http://www.futureelectronics.es/es/technologies/development-tools/analog-power/Paginas/1968007-EVB90316-GO.aspx?IM=0&IT=False)

Arduino DUE: enlace (https://www.amazon.es/KOOKYE-Compatible-m%C3%B3dulo-acuerdo-Arduino/dp/B019SXN9WA/ref=sr_1_2?ie=UTF8&qid=1528215775&sr=8-2&keywords=arduino+due)

Arduino Nano: enlace (https://www.amazon.es/AZDelivery-Nano-Atmega328-compatible-Arduino/dp/B01LWSJBTD/ref=sr_1_1_sspa?ie=UTF8&qid=1528215823&sr=8-1-spons&keywords=arduino+nano+v3&psc=1)

Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 05, 2018, 06:55 pm
Hi,
Una sugerencia es que leas el voltaje de entrada al arduino y comaparas las lecturas con la del arduino. Es posible que sea ruido que se indroduce en el sensor. Una cosa que yo haria es de anadirle un condesador de de .1 uf al voltaje 5 voltios  en los sensores. Yo normalmente le anado un condesador de 10 a 25uf y uno de .1 uf lo mas cercano al voltaje de los sensores.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 05, 2018, 10:16 pm
Primero no se que estas leyendo... y no se que capacitor para evitar ruido sugiere @tauro.

MIra esto MLX90316 SEnsor de Rotación SPI tiene librería  (https://github.com/SmartBlug/MLX90316)y puedes ver este hilo link (https://forum.arduino.cc/index.php?topic=111566.0)

Tu encoder, como tal asi debe leerse como encoder no como algo que entrega una salida analógica.
No se que mides con el AD

El ADS1115 es un módulo AD de 16 bits si mal recuerdo que se conecta por I2C.
no se que tiene que ver para leer los dos sensores anteriores.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 05, 2018, 10:21 pm
Hi,
Normalmente cuando hay logica se anade un condesador de .1 uf al DC para reducir el ruido. A eso es lo que yo me refiero. Cuando usas senales analogas como en esta caso se le debe anadir a los 5 voltos el condesador de .1uf para evitr cualquier ruido.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 05, 2018, 10:23 pm
Parece que estoy equivocado con el encoder.

Me disculpo.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 07, 2018, 09:23 am
Buenas,

Gracias a los dos por contestar. Creo que encontré el problema, aunque no una solución. Seguí vuestros consejos y medí el voltaje que sale del pin 5V de Arduino Nano. Mi sorpresa fue observar que del pin no salen 5V, salen 4.78V, por lo que nunca le llega al encoder 5V y nunca puede alcanzar el valor 1023 como máximo.

Aunque estoy perdiendo 2 bits de precisión, ¿habría alguna forma de hacer que Arduino Nano proporcionase lo más exacto posible esos 5V?

Gracias y un saludo!

P.D: Sobre el sensor hall, descubrí leyendo su datasheet que viene programado para que trabaje entre 1V y 4V aprox, por lo que entiendo que pueda dar esos valores.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 07, 2018, 02:38 pm
Quote
Mi sorpresa fue observar que del pin no salen 5V, salen 4.78V, por lo que nunca le llega al encoder 5V y nunca puede alcanzar el valor 1023 como máximo.
Eso no es asi. Si esos 4.78 son los mismos que llegan a AVREF o sea la tensión de referencia del AD, esos 4.78 son tus 1023. Si se diera el caso que 4.78 estuviera en la salida pero por alguna razón que no imagino tuvieras 5.0V en ARef entonces si tu comentario tendría lugar.
Se entiende la diferencia?

Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 07, 2018, 03:47 pm
Hi.
Yo no uso 5 voltios para calcular el voltaje pues simpre el voltaje es mas bajo. La referencia como acabas de decir es de 4.78. Entonces cuando hagas la calculacciones usa 4.78 en vez de 5 voltios. Siempre yo leo el voltaje del arduino y uso esa lectura para las calculaciones.  Como (4.78/1024)Xcounts.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 08, 2018, 10:23 am
Buenas!

Pues he medido la tensión que sale de AREF y es exactamente la misma que la que sale de 5V. Midiendo el OUT del encoder, puedo observar que como máximo saca 4,47 mV, mientras que lo que le llega al encoder son 4,75mV, así que entiendo que esa es la razón por la que no alcanza ese valor máximo de 1023.

Tengo 2 encoders y hacen lo mismo, ¿qué puede estar pasando? Ahora mismo trabajaré con el rango hasta 1014, ¡pero la curiosidad me mata!

Un saludo!
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 08, 2018, 04:07 pm
Hi,
Que distancia estan los sensores del Arduino? Otra cosa es que tienes que suplir 5 voltios bien filtados para poder tener una lectura estable. Adjunto el filtro que yo uso para mis sensores. Es una tarjeta de laminado de cobre dividida en el medio con un condedsador de 470uf,uno de .1uf en paralelo en el laminado. De aqu alimento mis senseres. Otra cosa que debes de hacer es de anadirle al nano un condesador .1uf y soldarselo en la tarjeta directamente entre el pin de los +5 y ground. Yo leo voltajes de mvoltios sin problemas como el sensor de temperatura LM35 sin problemas. Otra cosa es que si los cables estan lejos trensarlos. Esto hace que los ruidos se cancelen.






(http://forum.arduino.cc/index.php?action=dlattach;topic=551575.0;attach=261405)
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 08, 2018, 04:27 pm
Quote
Pues he medido la tensión que sale de AREF y es exactamente la misma que la que sale de 5V. Midiendo el OUT del encoder, puedo observar que como máximo saca 4,47 mV, mientras que lo que le llega al encoder son 4,75mV, así que entiendo que esa es la razón por la que no alcanza ese valor máximo de 1023.
No comprendo bien... antes has dicho que la tensión que mides en el pin 5V es de 4.78V y ahora dices que el maximo del encoder es de 4.75mV, has puesto mV y no V,  esta bien eso?

Intenta revisar lo que escribes porque desde nuestro lado nos resulta dificil seguir un comentario que empieza hablando de V y luego sigue con mV.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 08, 2018, 06:24 pm
Hi,
Estoy de acuerdo con surbyte. La pregunta es que voltaje usas para calcular el voltaje. Usa 5.0 voltios o usas el voltaje que lees de 4.75. Para que la prueba salga bien debes de usar un voltaje de entrada de 4.75 y el resultado debe de  ser de 1024 y despues usa 5.0 voltios de entrada  y compara los resultados.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 11, 2018, 09:44 am
No comprendo bien... antes has dicho que la tensión que mides en el pin 5V es de 4.78V y ahora dices que el maximo del encoder es de 4.75mV, has puesto mV y no V,  esta bien eso?

Intenta revisar lo que escribes porque desde nuestro lado nos resulta dificil seguir un comentario que empieza hablando de V y luego sigue con mV.
Perdón, estaba hablando de V.

He colocado un diodo de 1uf entre las patillas GND y 5V pero no cambia nada, el encoder sigue sin alcanzar la salida máxima de 4.75V.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 11, 2018, 02:43 pm
Estoy probando a trabajar con hasta 4 encoders y ahora la señal máxima que saca el encoder (cualquiera) es de 1010  :smiley-confuse:
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 11, 2018, 05:54 pm
Por favor si te preguntamos algo intenta responder puntualmente.

En la salida +5V cuanto lees?
En el pin Aref cuanto lees ?

Responde ambas consultas.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 12, 2018, 10:02 am
Por favor si te preguntamos algo intenta responder puntualmente.

En la salida +5V cuanto lees?
En el pin Aref cuanto lees ?

Responde ambas consultas.
Pin +5V: 4,53V
Pin AREF: 4,53V
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 12, 2018, 05:45 pm
Hi,
Usa ese voltaje para calcular el voltaje. En otras palabras V = (4.53/1024)*counts. Muchos usan 5 voltios y es incorrecto. Creen que el regulador te da 5 voltios y no es cierto.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: surbyte on Jun 12, 2018, 05:51 pm
Es como dice @tauro, entonces tu error es suponer que tienes 5 cuando en realidad tienes 4.53
Tus cuentas deben hacerse con ese dato y no el que supones.

Y como verás tampoco son 4.75V de modo que algo raro ocurre ahi.
Ese regulador esta fallado o qué le esta pasando que en un momento lees 4.75 y ahora 4.53. No es normal para nada.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 12, 2018, 07:04 pm
Hi,
Sera  posible que los sensores esten causando  una carga que el regulaador no puede mantener. Aqui mi sugerencia es desconectar los sensores y leer el voltaje para ver si son los sensores los que causen la caida del voltaje.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: jcorfer on Jun 13, 2018, 05:51 pm
Buenas,

He vuelto a realizar la lectura tanto de la salida del pin 5V como de VREF pero sin ningún elemento conectado, o sea, la placa sin cables conectados. La tensión del pin 5V y VREF siempre es la misma.

Midiendo la salida del pin 5V, devuelve 4,61V, cuando conecto la alimentación para dos encoders, el voltaje baja a 4,58V, y cuando conecto cuatro, baja a 4,55V, por lo que podemos confirmar que en función del número de encoders conectados, disminuye la tensión en el pin 5V.

Añado dos consideraciones:



Espero que os ayuden estos datos!
Gracias y saludos!

Edito: He probado con una placa Arduino Leonardo para descartar que la Arduino Nano estuviera defectuosa, pero ocurre lo mismo.
Title: Re: Datos incoherentes obtenidos desde sensores
Post by: tauro0221 on Jun 13, 2018, 10:36 pm
Hi,
Para mi creo que lo mejor para resolver tu problema es usar un A/D externo y que sea de 4096. Estos puedes instalarle un voltaje de referencia que sea regulado y no tendras problema. Otra cosa es que vaz a tener que alimentar tus sensores tambien con un voltage regulado para que asi te de los valores que tu buscas abtener.