URE foro pequeñas
Mando de rotor digi...
 
Notificaciones
Limpiar todo

Mando de rotor digital vs analógico

Página 1 / 2
EA2J
 EA2J
Mensajes: 3764
#352374  - 30 agosto, 2020 12:03 

He terminado un nuevo proyecto de mando digital de rotor con una placa de Arduino MEGA 2560 PRO para un rotor G-450CD. En esta ocasión he instalado los dos dispositivos en paralelo comprobando con sorpresa que hay una desviación muy importante en las lecturas de la consola analógica y digital. No puedo estar seguro de la precisión de la consola digital, pero sobre el papel, hay razones técnicas para pensar que es la más fiable de las dos.

Tampoco puedo afirmar, si la desviación achacable a cualquiera de los dos dispositivos es debido a una avería, un mal diseño o un defecto de clase (como supongo). Sería interesante contrastar información y experiencias que puedan servir para conocer el grado de confianza de nuestros dispositivos de dirección de antena ya que un error de más de diez grados supone un hándicap incluso para una antena de paraguas.

Por si le interesa a alguien, he publicado las mediciones en mi página.

 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA5ZF
Mensajes: 271
#352386  - 30 agosto, 2020 17:41 

@ea2j

Este trabajo que has realizado me interesa, no lo podré realizar ahora mismo pero quisiera un poco de mayor información para ir viendo posibilidades de realización con mis escasos conocimientos electrónicos.

Veo que básicamente se trabaja con una placa de alimentación con dos voltajes 0 +5V +12V, eso con nuestras fuentes de 12VCC y un 7805 regulador se hace en un plis plas y si no, hay un millón de placas reguladoras en aliexpress por cuatro chavos.

Luego veo el procesador que será la placa arduino Mega y hablas de un shield que será la adaptación de las salidas del arduino hacia fuera.

Veo un display con una plaquita de control y de leds

Y otra placa que hace la salida final hacia los relés para adaptar el tema de los voltajes correctos para tu modelo de Yaesu.

¿No tendrás el diseño de las PCB para pedirlas correctamente hechas a China?

O en su defecto fotos de las dos caras y dimensiones reales para escalar el PCB

Como no tengo ni idea ahora mismo de Arduino voy a ver tu articulo y a ver como se trabaja con él, como se programa y que se puede hacer y que no, a ver si me empapo en unos días.

Una pregunta que me surge es por qué no haces una fuente de 20V y pasas del mando original, porque tal como lo tienes enfocado trabajan los dos mandos en paralelo.

Te comento para veo que me puede valer tu trabajo, tengo ahora mismo todo desmontado en la torre grande un Yaesu 1000GDX y un sistema de control de elevación a base de un actuador de parabólica, el Yaesu que es analógico funciona como casi todos los rotores con un potenciómetro de lectura 0-5V y el actuador con un contador de pulsos de un relé reed.

Estoy mirando un producto (chino como no podía ser de otra forma) que es un sensor de elevación y puede dar lecturas en RS232, TTL, WIFI, Bluethooth... pero tiene un modelo que da una lectura 0-5V también, por eso ahora mismo me ha picado el gusanillo y no sé si tirar por ese modelo y con el arduino controlar ambos rotores o bien si puedo hacer algo con una lectura via RS232-USB o similar.

Es una idea verde a muy verde todavía para ir avanzando en ella...

Gracias.

Esta publicación fue modificada hace 4 años por EA5ZF

73 de Xavi - EA5ZF
ea5zf at amsat dot org

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352390  - 30 agosto, 2020 19:52 

Bona vesprada Xavi,

Veo que básicamente se trabaja con una placa de alimentación con dos voltajes 0 +5V +12V, eso con nuestras fuentes de 12VCC y un 7805 regulador se hace en un plis plas y si no, hay un millón de placas reguladoras en aliexpress por cuatro chavos.

Si... se necesitan dos tensiones o una sola, depende. Los 12V son para los relés, sin embargo hay también relés a 5V lo suficientemento robustos como para conmutar la alimentación de los motores de los rotores, incluso los conjuntos de relés chinos con un octoacoplador pueden ir bien. No me gustan las placas reguladoras que hay en el mercado chino, prefiero y es más sencillo para mí hacérmela.

¿No tendrás el diseño de las PCB para pedirlas correctamente hechas a China?

Son correctos los comentarios que haces sobre las plaquitas. No hay placas hechas, los modelos de placas están detallados en el trabajo, utilizo placas de circuito impreso perforadas estándar a 2.54mm, con esto puedo hacer circuitos a dos caras de una forma muy simple. Ocupan un poco más de espacio porque cada hilo ocupa 2,54mm pero el diseño está bastante optimizado. Utilizo un programa CAD gratuito para diseñarlas.

Como no tengo ni idea ahora mismo de Arduino voy a ver tu articulo y a ver como se trabaja con él, como se programa y que se puede hacer y que no, a ver si me empapo en unos días.

Si te interesa la informática te va a encantar. Arduino tiene una IDE gratuita que sirve para editar el código. Es sencillo adaptarlo al G-1000GDX y en cuanto al rotor de elevación se puede adaptar el código a sensores de pulso, encoders, efecto hall, acerelerómetros, etc.

Una pregunta que me surge es por qué no haces una fuente de 20V y pasas del mando original, porque tal como lo tienes enfocado trabajan los dos mandos en paralelo.

Por procastinación, me apetecía más hacer otras cosas, pero está previsto, es más, el diseño del inversor de tensión con dos relés dobles está ya diseñado.

Te comento para veo que me puede valer tu trabajo, tengo ahora mismo todo desmontado en la torre grande un Yaesu 1000GDX y un sistema de control de elevación a base de un actuador de parabólica, el Yaesu que es analógico funciona como casi todos los rotores con un potenciómetro de lectura 0-5V y el actuador con un contador de pulsos de un relé reed.

Lo más sencillo es el potenciómetro aunque el contador de pulsos puede ser más preciso. En cualquier caso, como te he comentado el software está preparado para utilizar sensores de todo tipo

Esta es la lista de sensores de elevación que se pueden utilizar con el código.

EL_POSITION_POTENTIOMETER
EL_POSITION_ROTARY_ENCODER
EL_POSITION_ROTARY_ENCODER_USE_PJRC_LIBRARY 
EL_POSITION_PULSE_INPUT_EL_POSITION_ADXL345_USING_LOVE_ELECTRON_LIB 
EL_POSITION_ADXL345_USING_ADAFRUIT_LIB 
EL_POSITION_GET_FROM_REMOTE_UNIT
EL_POSITION_ADAFRUIT_LSM303 
EL_POSITION_POLOLU_LSM303 
EL_POSITION_HH12_AS5045_SSI
EL_POSITION_INCREMENTAL_ENCODER
EL_POSITION_MEMSIC_2125
EL_POSITION_A2_ABSOLUTE_ENCODER

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA3FNM
Mensajes: 1701
#352393  - 30 agosto, 2020 20:15 
Publicado por: @ea2j

He terminado un nuevo proyecto de mando digital de rotor con una placa de Arduino MEGA 2560 PRO para un rotor G-450CD. En esta ocasión he instalado los dos dispositivos en paralelo comprobando con sorpresa que hay una desviación muy importante en las lecturas de la consola analógica y digital. No puedo estar seguro de la precisión de la consola digital, pero sobre el papel, hay razones técnicas para pensar que es la más fiable de las dos.

Tampoco puedo afirmar, si la desviación achacable a cualquiera de los dos dispositivos es debido a una avería, un mal diseño o un defecto de clase (como supongo). Sería interesante contrastar información y experiencias que puedan servir para conocer el grado de confianza de nuestros dispositivos de dirección de antena ya que un error de más de diez grados supone un hándicap incluso para una antena de paraguas.

Por si le interesa a alguien, he publicado las mediciones en mi página.

 

Hola Enio,

Has comprobado que la tensión de entrada para cada caso de medición en al consola analógica y en la digital tengan los mismos valores?

Puede que el medidor analógico no sea lineal?

 

EA3FNM
ex-ec3ccq
Pedro
Barcelona
ea3fnm@gmail.com

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352397  - 30 agosto, 2020 20:35 

Has comprobado que la tensión de entrada para cada caso de medición en al consola analógica y en la digital tengan los mismos valores?

Por supuesto, la tensión de referencia del rotor entra en la consola analógica en los pines 2 y 3, en ese punto derivo la tensión al Arduino y la leo también con un polímetro exterior fiable. No tengo una idea clara de cómo procesa la consola digital la información, no tengo el esquema, pero parte de la tensión en los mismos pines. Luego la verifico con el instrumento y comparo las dos lecturas, la desviación media es de un 3,5%, nada que ver con los casi 40 grados de desviación entre las consolas.

Puede que el medidor analógico no sea lineal?

Un microprocesador se comporta de forma lineal y el cálculo también es lineal. Puede variar la tensión que se entrega en la entrada por el circuito de adaptación (choque de 220 uH y condensador de 0.01), además de la resistencia interna de la entrada.

Otras consolas de Yaesu disponen de algunos amplificadores operacionales, un rotor que mueve la aguja del dial mediante una serie engranajes y a su vez un potenciómetro similar al del rotor. No he analizado a fondo el circuito, pero la lectura del Arduino es directa mientras la consola es indirecta. No sé...

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EC5APB
Mensajes: 593
#352398  - 30 agosto, 2020 20:55 

@ea2j Enio, dentro del controlador original de Yaesu ¿no hay un circuito electrónico?

Lo digo porque en el manual de G-450A que he encontrado,  salvo error del mismo o de interpretación (me lo tengo que imprimir para leerlo bien), el terminal 3 del conector al rotor de la consola de Yaesu, no va conectado directamente a tierra, y eso podría ser una fuente de error. Cuestión de hacer comprobaciones polímetro en mano.

Aunque yo, al final, acabaría tirando por el camino de en medio y me haría mi propia tabla de calibración, con el rotor encima de la mesa y todo el cableado que vayas a necesitar para su instalación (para que la resistencia que éste pueda introducir no altere la calibración) y me tendría un sistema más fiable. Calibración cada 10º y luego a interpolar entre cada valor guardado.

Saludos. Jacinto.

Sólo puedo ofrecer mi opinión y mis reflexiones. Otras opiniones y reflexiones son tan o más válidas que las mías. Lo importante es que cada uno acabe desarrollando sus propias conclusiones.

FT-23, FT-60, FT-991, IC-V200T, DR-605 y Dynascan P-72.

ResponderCitar
EA5ZF
Mensajes: 271
#352400  - 30 agosto, 2020 21:23 

Creo que me estás convenciendo y este puede ser mi regalo de cumpleaños.

Tengo ya una placa de 4 relés de 12V que iba a destinar a finalizar un secuenciador que estoy terminando, pero como por otra parte el miercoles recibo una placa de secuenciador con todo ya incluido, la puedo reutilizar para este proyecto.

Pantalla, no sé si habrá alguna mas barata pero esta me ha gustado https://es.aliexpress.com/item/32818791922.html?spm=a2g0o.productlist.0.0.6baf33d2f8kxc9&algo_pvid=a956cfb7-b78e-4ac3-b895-95206d829396&algo_expid=a956cfb7-b78e-4ac3-b895-95206d829396-7&btsid=0b0a0ae215988156426436576e1065&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Arduino no sé cual es la diferencia entre las placas, la que tu pones lleva los pines de los conectores macho o sea que habrá que comprar las tiras hembra para el shield de control de salidas.

https://es.aliexpress.com/item/33050235022.html?spm=a2g0o.productlist.0.0.1d666cfd6KUpsU&algo_pvid=5fdf0729-1bfa-4ed5-9075-a4e585f4a2ba&algo_expid=5fdf0729-1bfa-4ed5-9075-a4e585f4a2ba-2&btsid=0b0a187915988179712546599e28de&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

O se puede adquirir ya con los conectores hembra?

Como placa para el control de salidas, valdria esta como soporte del circuito?

https://es.aliexpress.com/item/32493176287.html?spm=a2g0o.productlist.0.0.7c6a55c1EtdtP1&algo_pvid=99c50e71-6001-47cd-bd01-f6e06f067707&algo_expid=99c50e71-6001-47cd-bd01-f6e06f067707-7&btsid=0b0a119a15988182672554403e2834&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_

Cuando vuelva a casa la semana que viene miraré que tipo de alimentación lleva el rotor Yaesu 1000 y creo recordar que el actuador funciona con 24Vcc, y miraré si puedo hacerme con las fuentes necesarias para integrarlo todo en una caja metálica y poder conectar a ella ambos motores.

He trabajado mucho tiempo en informática, en instalaciones y sistemas, pero no he programado nada desde hace casi 20 años, será cuestión de ponerse un poco las pilas.

Iré  pidiendo ya cosas para ir avanzando poco a poco.

Gracias.

 

73 de Xavi - EA5ZF
ea5zf at amsat dot org

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352402  - 30 agosto, 2020 22:18 

EC5APB

Lo digo porque en el manual de G-450A que he encontrado,  salvo error del mismo o de interpretación (me lo tengo que imprimir para leerlo bien), el terminal 3 del conector al rotor de la consola de Yaesu, no va conectado directamente a tierra, y eso podría ser una fuente de error. Cuestión de hacer comprobaciones polímetro en mano.

No son iguales los circuitos, el A tiene tres tomas para el potenciómetro del rotor, 1 a masa, 2 cursor y tres positivo. El CD solo tiene dos tomas, el 2 es positivo y el 3 a masa (verificado con el tester). En el esquema de conexiones del cable, las conexiones conector a conector son seis. La manguera que une la consola con el rotor tiene solo cuatro cables y el CD 6. Eso lo comprobado también manualmente con otras consolas que he montado para un G-600 y un G-650, éste con el mismo esquema que el G-450A.

En el Arduino entra una tensión proporcional y lineal en función del giro del rotor que varúa de 0 a 1,4V medida con el polímetro.

Aunque yo, al final, acabaría tirando por el camino de en medio y me haría mi propia tabla de calibración, con el rotor encima de la mesa y todo el cableado que vayas a necesitar para su instalación (para que la resistencia que éste pueda introducir no altere la calibración) y me tendría un sistema más fiable. Calibración cada 10º y luego a interpolar entre cada valor guardado.

Bueno, ya he subido el rotor al tejado y no puedo hacer esa calibración, de hecho, una de las ventajas de una consola digital de código libre es que puedes corregir por software cualquier tipo de desviación coherente. He iniciado este hilo porque no estoy seguro de si el problema conceptual de la consola y me gustaría conocer si algún compañero ha tenido la sospecha de que su consola se desvía.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#352404  - 30 agosto, 2020 22:27 

He hecho un shield nuevo con la tiras macho en el lado del cobre de la MEGA y las hembras en el PCB, Más limpio. Las líneas azules son pistas en el lado de los componentes y las negras en el lado del cobre. Ambas están hechas con hilo plateado de 5 décimas. Las siluetas magenta son conectores KK254 Molex. La siluetas alargadas con las tiras para la MEGA, solo una línea excepto los pines 20 y 21 que son los terminales SDA y SCL del puerto I2C, Los componentes pasivos son un par de choques axiales de 220uH y unos condensadores multicapa de 0.01

shield mega

 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#352405  - 30 agosto, 2020 22:34 

Si te animas a montar, tengo un trafo de un desguace de un Kenpro que te puede servir, solo te costará los portes.

C++ es un lenguaje de alto nivel, un poco limitado pero fácil de entender. Está orientado a objetos, pero puedes aplicar procedimientos para resolver problemas, me encanta. En un par de tardes me he montado desde cero una consola básica que hace los mismo que la analógica con materiales que cuestan menos de 40 euros.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA5ZF
Mensajes: 271
#352436  - 31 agosto, 2020 16:20 

Animado estoy para hacerlo como proyecto de este invierno, pero hay prioridades todavía que son previas.

He de reparar la antena de 5wl de 144Mhz y montar la torre de nuevo con el actuador para elevación, los previos, etc.

He de reparar la Butternut HF9VX

Finalmente hay que rehacer el secuenciador para no volver a cargarme el previo de RX 144Mhz

Eso suma unas 6-8 tardes o mañanas y no tengo todo ese tiempo, por tanto hay que ir haciendo poco a poco a no ser que nos vuelvan a confinar.

Pero lo que si que voy a hacer es ir pidiendo una fuente de 36V para el actuador, un par de placas Arduino Mega para ir jugando un poco y a ver si me aclaro con lo del shield y montar uno para azimuth y otro doble con azimuth y elevación.

Tengo que pedir material electrónico, que se necesita para los shield? hablas de condensadores y de bobina, pero hará falta bastante mas material, como las pcb, los conectores de entradas-salidas, los conectores hembra de interconexión con el Arduino, cables para hacer uniones con el display o con los pulsadores o el encoder, etc.

73 de Xavi - EA5ZF
ea5zf at amsat dot org

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352445  - 31 agosto, 2020 18:55 

Me acuerdo del follón del secuenciador cuando montamos el sistema de comunicación para el contacto con la ARISS. También con el seguimiento de una órbita sur que obligaba a cambiar automáticamente los parámetros con el rotor de elevación a 180º. Luego se pudo seguir perfectamente todo el contacto con la antena vertical de emergencia fija. LOL

Las placas perforadas comprarlas de buena calidad, de fibra de vidrio, yo las encuentro en el proveedor local Electrosón o en Electrónica Embajadores de Madrid. Los conectores Molex KK-254 puedes cambiarlos por Dupont son más económicos y fáciles de encontrar aunque son más difíciles de trabajar con soldadura sin crimpadora.

Tienes que prever más salidas digitales para los relés de elevación, freno y botón de aparcamiento. Hay de sobra, lo dificil es dejar hueco para los terminales en el shield.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA5ZF
Mensajes: 271
#352454  - 31 agosto, 2020 21:30 

Vamos a ir iniciando y concretando elementos a adquirir para empezar desde cero.

- Tarjeta Arduino Mega 2560 PRO (5-6€)

- Alimentador 5V para alimentar el Arduino (a gusto consumidor)

- Placa de relés optoaislada de 5VDC 4 salidas (3€)

- Display I2C (2€)  (¿? me vale este?: https://es.aliexpress.com/item/32957159545.html?spm=a2g0o.productlist.0.0.7fc21999eiNbUu&algo_pvid=8b4372cf-144d-48f1-8cdd-8e32ef42dd53&algo_expid=8b4372cf-144d-48f1-8cdd-8e32ef42dd53-1&btsid=0b0a050b15989043493331512e1cb4&ws_ab_test=searchweb0_0,searchweb201602_,searchweb201603_ )

Hasta aquí lo comercial.

 

- Placa perforada PCB pruebas para hacer el circuito que va adherido al arduino y lo necesario para controlar el display y los led.

- 4 pulsadores (azimuth y elevación) y un encoder giratorio

- Caja metálica lo suficientemente grande para que quepa esto y los alimentadores de los rotores: 36VDC en el caso de elevación por actuador y lo que corresponda para el rotor de azimuth

- Me faltan por especificar los conectores necesarios (I/O), cables, condensadores, inductancias, resistencias, y demás parafernalia electrónica)

Vale la pena agenciarse un puñado de conectores Dupont y la maquina de crimpado?

 

Algo mas?

73 de Xavi - EA5ZF
ea5zf at amsat dot org

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352456  - 31 agosto, 2020 21:58 

Bueno, me gustan más las pantallas matriciales tipo 1602 o 2004, solo he programado en un par de ocasiones para la Nextion de 3,5 y son complicadas. El software de K3NG tiene bastantes opciones para pantallas. La Oled de 1,8'' tiene un bus I2C, pero no se habrá una librería adecuada. Apostar por una matricial es seguro y económico, sobre 5$ y con espacio suficiente como para dar la información de acimut y elevación.

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EC5APB
Mensajes: 593
#352467  - 1 septiembre, 2020 08:46 

@ea2j Enio, como también tienes una diferencia de tensión medida entre el polímetro y el arduino, mira este artículo del maestro Luis Llamas:

https://www.luisllamas.es/analogicas-mas-precisas/

A ver si reducimos un poco ese error o diferencias de lecturas.

Saludos. Jacinto.

Sólo puedo ofrecer mi opinión y mis reflexiones. Otras opiniones y reflexiones son tan o más válidas que las mías. Lo importante es que cada uno acabe desarrollando sus propias conclusiones.

FT-23, FT-60, FT-991, IC-V200T, DR-605 y Dynascan P-72.

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352469  - 1 septiembre, 2020 12:31 

Gracias Jacinto, he probado el sketch de muestra. El resultado da lecturas incoherentes creo que no está bien transcrito. 

He hecho una búsqueda primaria en el foro de desarrolladores de Arduino y he encontrado alguna referencia. Uno de los script que he probado da resultados más consistentes.

https://forum.arduino.cc/index.php?topic=133907.0

Me interesa el tema aunque ya he estudiado la forma de utilizar tensiones fijas de referencia no encuentro la lógica de aplicación en lecturas variables. K3NG utiliza matrices de comparación en desviaciones lineales, por mi parte, estoy planteándome la creación de tablas comparativas entre la lectura de Arduino y la de un voltímetro de precisión externa y hacer mis propias tablas de corrección, pero no lo veo claro porque las desviaciones pueden ser aleatorias debido a la propia fuente. Para mejorar la precisión utilizo la media de 100 lecturas.

int analogReadEnhanced(uint8_t pin){
   float loops = 100.0;
   float raw_sum = 0.0;

   for (int i=0; i<=loops; i++) {
      raw_sum += analogRead(pin);
   }
   return int(raw_sum / 100.0);
}

Es una corrección que he hecho sobre el código de K3NG que da mayor estabilidad a las lecturas ya que el código original hacía una sola lectura:

int analogReadEnhanced(uint8_t pin){
      return analogRead(pin);
{

Por otra parte, con una antena direccional media (por ejemplo 3 el.Ygi) un desviación del centro del haz no creo que sea significativa, lo que me llama la atención son desviaciones de hasta 40 grados. En cualquier caso voy a buscar más literatura. Gracias por la info

 

 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EC5APB
Mensajes: 593
#352472  - 1 septiembre, 2020 13:56 

Fíjate que el ejemplo es para el AVR 168 y 328. Habrá que adaptarlo para el MEGA.

En la web de Luis Llamas uno puede encontrar muchas soluciones e ideas, aunque hay que buscar, porque el hombre ha escrito un montón de artículos y de ejemplos. Uno interesante, por ejemplo, este Reducir ruido en sensores en arduino con muestreo múltiple al tiempo que ofrece diversos algoritmos de filtraje en otros artículos (Sección de tutoriales avanzados en arduino).

Saludos. Jacinto.

P.D. No es porque la desviación del centro del haz sea más o menos significativa, sino lo que yo también quiero entender es por qué hay tantas discrepancias entre la lectura del multímetro y la del arduino, pero sobretodo, su falta de linealidad.

 

Sólo puedo ofrecer mi opinión y mis reflexiones. Otras opiniones y reflexiones son tan o más válidas que las mías. Lo importante es que cada uno acabe desarrollando sus propias conclusiones.

FT-23, FT-60, FT-991, IC-V200T, DR-605 y Dynascan P-72.

ResponderCitar
EA2J
 EA2J
Mensajes: 3764
#352488  - 1 septiembre, 2020 16:22 

No, si ya he visitado muchas veces esa web, pero normalmente las respuestas mis dudas las suelo encontrar en el foro de usuarios.. Por ejemplo, sobre el uso de una tensión de referencia en el pos se parte de una condición para que el compilador seleccione el microprocesador:

#if defined(__AVR_ATmega32U4__) || defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
    ADMUX = _BV(REFS0) | _BV(MUX4) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #elif defined (__AVR_ATtiny24__) || defined(__AVR_ATtiny44__) || defined(__AVR_ATtiny84__)
    ADMUX = _BV(MUX5) | _BV(MUX0);
  #elif defined (__AVR_ATtiny25__) || defined(__AVR_ATtiny45__) || defined(__AVR_ATtiny85__)
    ADMUX = _BV(MUX3) | _BV(MUX2);
  #else
    ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
  #endif 

 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA2J
 EA2J
Mensajes: 3764
#352489  - 1 septiembre, 2020 16:52 

Fijate en el segundo ejemplo, el loop()

void loop() {
   float vcc = readVcc() / 1000.0;                             //Toma el valor de la magnitud de lectura
   float voltage = (analogRead(A0) / 1024.0) * Vcc;   //Transforma la lectura digital de la tensión en función de la tensión maxima rectificada
                                                                             //y la almacena en la variable voltage. Por cierto hay un error en la variable Vcc que primero                                                                                   //define con la inicial minúscula y la segunda con mayúscula
   Serial.println(voltage);
   delay(1000);
}
 
La explicación es simple, la tensión de comparación es la tensión máxima de alimentación. Ya que la tensión que debe leer en este ejemplo está en el pin analógico A0, la función readVcc() lee la tensión real de alimentación del microprocesador y la almacena en la variable vcc.
 
En cualquier caso las variaciones de un regulador de tensión interno (AMS1117) o externo (L7805) no superan los 200 mV. Como ejemplo, sobre una lectura media de 512, con una tensión de cálculo de 5V serían 2,502V y con 4,8V serían 2,402V un error de 100mV. pero esto sería para identificar una tensión. Sin embargo, para identificar el rumbo, no utilizamos la tensión (a pesar de que la lectura es de una tensión), sino la medición digital de la misma, sobre una lectura máxima y mínima siempre lineal, luego no hay un error de cálculo. (aunque lo puede haber, como he descrito, en la comparación de las tensiones leídas con el polímetro en el trabajo publicado, pero lo que interesa en este caso es verificar si hay linealidad o no.
 
No entiendo cómo funcionan las constantes que supongo que están definidas en la librería básica de Arduino, así como la función _BV() que supongo que será de la misma librería. El tema me interesa pues aprender a utilizar los recursos.
 

La cultura del esfuerzo se cultiva desde la motivación, no mediante el castigo como algunos quisieran.
http://www.enioea2hw.wordpress.com
73, Enio

ResponderCitar
Inició el tema
EA5ZF
Mensajes: 271
#352715  - 6 septiembre, 2020 16:50 

Pedido realizado.

Enio, EA2J, ya he hecho el pedido de material mínimo para empezar a juguetear con el Arduino.

No tengo tu correo para ir comentando cosas por privado, si me lo pasas iré comentándote como me va la experimentación.

De momento tardará el pedido casi un mes en llegar a mi casa.

Gracias.

73 de Xavi - EA5ZF
ea5zf at amsat dot org

ResponderCitar
Página 1 / 2

QDURE - https://qsl.ure.es


Imprime y confirma tus QSL en tan solo tres click.

Nunca fue tan fácil y cómodo
el confirmar tus contactos.

TIENDA ONLINE URE


Publicaciones, mapas, polos, camisetas, gorras, tazas, forros polares y mucho más...

WEBCLUSTER EA4URE


Conoce el nuevo WebCluster de URE, ahora con nuevos filtros e información y compatible con GDURE