URE foro pequeñas
Arduino control de ...
 
Notificaciones
Limpiar todo

Arduino control de rotores y seguimiento de Luna

Página 3 / 10
EA1DDO
Mensajes: 7784
#244416  - 30 enero, 2014 18:56 

Hola,

No se si se podría probar a meter el código del Prosistel en el Arduino, y que éste manejara el rotor directamente. En el manual del Prosistel están los códigos del puerto serie, supongo que pensando en los programas en el PC.

A todo esto, hace poco descubrí un programa para rotores muy interesante, incluso permite su control via internet;

PstRotator

index_image426.jpg

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA1DDO
Mensajes: 7784
#244421  - 30 enero, 2014 19:03 

A todo esto...

En E-Bay hay unos adaptadores RS232 a Ethernet pequeñitos e interesantes.
Supongo que conectando cualquier cosa que use RS232, se puede manejar via Ethernet desde cualquier sitio.

RS232-SERIAL-TO-font-b-ETHERNET-b-font-font-b-CONVERTER-b-font-TCP-IP-MODULE.jpg

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA1RJ
Mensajes: 360
#244417  - 30 enero, 2014 23:34 

Hola Julio,

No veo donde esta el problema de cambiar el pin del LCD.

Mirate la pagina http://arduino.cc/es/Tutorial/LiquidCrystal

Cuando inicializas el LCD le dices donde esta conectado:

// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

y los pines corresponden a:

* LCD RS pin to digital pin 12
* LCD Enable pin to digital pin 11
* LCD D4 pin to digital pin 5
* LCD D5 pin to digital pin 4
* LCD D6 pin to digital pin 3
* LCD D7 pin to digital pin 2

Si necesitas usar por ejemplo el pin 2, pues inicializa el LCD asi:

LiquidCrystal lcd(12, 11, 6, 5, 4, 3);

y asi ya tienes el pin 2 libre.

Espero que te sirva.

Saludos.
EA1RJ - Ricardo

ResponderCitar
EA5EMM
Mensajes: 42
#242398  - 31 enero, 2014 10:17 

Hola Ricardo.

Pues tienes razón ¡los árboles no me han dejado ver el bosque!

Esta tarde probare con LiquidCrystal lcd(13, 12, 11, 5, 4, 3);

A ver como responde el LCD.

Por cierto ya que lo comentastes en otro mail ¿cuantos pulsos te dio a ti desde 0 a 90? Es por hacerme una idea nada más ya que creo que dependerá del tipo de actuador que tengamos.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244456  - 2 febrero, 2014 20:25 

Hola,

Solo era para comentar que ya tengo aquí la tarjeta de Ethernet, lo que pasa es que aún no me he puesto con ella.

Goody K3NG sacó una versión nueva el viernes, lo que pasa es que tenía un problema que yo detecté el otro día, encontré la solución y se lo dije. Luego me pasó una versión nueva con mi arreglo y bien.
Lo que pasa es que me pasé el rato modificando el código para mejorar cosillas ya que como yo uso pantalla de cuatro filas, puedo mostrar más cosas y cada vez que saca una versión nueva, tengo que modificarla añadiendo mis cosas.

Hoy añadí un reloj en la parte de arriba, pero cuando alguna cifra era de menos de dos caracteres... me salía mal. Por fin hace un rato aprendí para arreglarlo.
Por si a alguien le interesa, este es el código;

Escribió:
//Reloj
lcd.setCursor(12,0);
if (clock_hours < 10) (lcd.print('0'));
lcd.print(clock_hours);
lcd.print(":");
if (clock_minutes < 10) (lcd.print('0'));
lcd.print(clock_minutes);
lcd.print(":");
if (clock_seconds < 10) (lcd.print('0'));
lcd.print(clock_seconds);

Esto es como lo tengo ahora mismo;

Ahora quiero poner la fecha, algo así como 02FEB14.

A todo esto, me ha dicho Goody que ya tiene pantalla de cuatro filas y tarjeta de Ethernet, por lo que será de esperar que próximamente saque una versión con capacidad para ambas opciones.

Mañana voy a pedir un RTC, esas plaquitas con una pila para tener reloj. Son muy baratas.
He visto unas llamadas TinyRTC v1.1 con buena pinta;

IMGP9620-600x600.jpg

Bueno, pues seguimos adelante.

Hablamos.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA1RJ
Mensajes: 360
#244663  - 3 febrero, 2014 00:24 

Hola Máximo,

Te veo con mucho ánimo con el arduino, te entiendo por que yo estoy igual hi hi.

Para Julio, creo recordar que con un actuador de 18" tenia 640 pulsos de la posicion totalmente estirado a totalmente recogido (exceptuando 1 o 2 vueltas en cada extremo para evitar roturas. Lo tengo a medio montar, si lo necesitas saber exactamente dímelo y te lo confirmo.

Saludos.

ResponderCitar
EA5EMM
Mensajes: 42
#242399  - 3 febrero, 2014 09:33 

Hola a todos.

¡Máximo te vas a hacer un experto! ;) A ver si me desatoro con el actuador y paso a montarlo todo y probar en serio.

Gracias por la respuesta Ricardo. El caso es que he notado que Arduino cuando lee pulsos de vez en cuando mete alguno de más he probado con tres programas diferentes (dos con control por interrupciones y otro con lectura de estado) y el último es el que mejor resultado me ha dado. Estoy buscando documentación sobre el problema ya que he visto que no soy el único al que le pasa algo parecido. En el momento tenga acotado el problema os lo cuento.

Por cierto yo tengo montado un actuador de 24" de brazo grueso comprado a Deamon-multimedia en Gandia cerquita de casa, creo que tu los conoces Ricardo.

Saludos.

EA5EMM
Julio

ResponderCitar
EA3HMJ
Mensajes: 214
#244697  - 3 febrero, 2014 10:23 

Mi experiencia fue muy negativa con los impulsos, probé de todo, interrupción, reducir alimentación actuador, filtro hard, etc...

Aunque mejoro la cosa no tuve narices de hacerlo repetitivo por lo que decidí guardarlo en el cajón.

Saludos
Jose

ea3hmj@gmail.com
http://ea3hmj.qlfecv.net
http://qlfecv.wordpress.com
https://twitter.com/ea3hmj

ResponderCitar
EA4ADJ
Mensajes: 4054
#242400  - 3 febrero, 2014 10:58 

Hola, yo creo que unos de los mejores metodos (entre otras cosas por simplicidad) es el potenciometro en cuaquiera de sus variantes.
Os pondre unas fotos del mio, que como dije no usa actuador sino un rotor de parabolica de los "diseq" y el potenciometro lo he incluido en el propio eje del rotor, solidario con el.
73.

Mi hijo me hace profundamente feliz

TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!

ResponderCitar
EA5EMM
Mensajes: 42
#242401  - 3 febrero, 2014 18:24 

Hola de nuevo.

Creo que ya tengo solucionado el problema de los pulsos fantasmas. Se me ha ocurrido mirar el iman que hace que el reed marque los pulsos y he visto que esto ocurre 3 veces en cada vuelta, al menos en el SuperJack que tengo aquí para probar. Lo siguiente ha sido tomar el tiempo que tarda en dar una vuelta, en mi caso 1545 milisegundos aprox. que dividido entre 3 me da los 515 milisegundos que aplico al delay, ese es el tiempo entre pulso y pulso en mi caso ¡Ojo! la velocidad va a depender directamente del voltaje que utilicemos para alimentar el actuador.

El delay lo aplicamos dentro de la rutina a la que llama la interrupción, esto es importante ya que de esta manera frenamos en ese tiempo esa rutina, si lo pusieramos en el loop no serviria de nada ya que la rutina seguiría funcionando y acumulando.

No se si lo he explicado muy bien, os pongo el código que he usado y en otro mensaje intentaré subir un video con una de las pruebas que he hecho.

Saludos.

CODIGO

//


// Incluimos la libreria para control del LCD
//


#include
//



//


// Inicializamos la libreria con los pins que vamos a usar
//


LiquidCrystal lcd(13, 12, 11, 5, 4, 3);
//



//


// Variables a usar
//


volatile int contador = 0; // Incrementado en la interrupcion

//=======================================================
// Initialize
//=======================================================
void setup()
{
pinMode(2, INPUT);
digitalWrite(2, LOW); // pull down resistor
lcd.begin(16,2);
lcd.print("Cuenta pulsos");
attachInterrupt(0, suma, RISING);
}

void loop()
{
lcd.setCursor(0,1);
lcd.print("pulsos: ");
lcd.print(contador);
}

void suma()
{
contador++;
delay(515);
}

EA5EMM
Julio

ResponderCitar
EB1HBK
Mensajes: 236
#242402  - 3 febrero, 2014 19:27 

Hola, los rebotes en los actuadores mecánicos (pulsadores, relés, reed...etc) acostumbran a dar problemas a los microcontroladores, por que estos son capaces de leer con tanta rapidez el estado del actuador que llegan a discriminar esos rebotes en el contacto e interpretarlos como pulsaciones distintas.

Por ello se implementan diferentes técnicas, tanto a nivel de circuito como de programa para, de algún modo, ralentizar la lectura del estado del actuador y que esos microimpulsos sean ignorados por el microcontrolador.

http://arduino.cc/es/Tutorial/Debounce

http://www.protostack.com/blog/2010/03/debouncing-a-switch/

A veces un simple condensador en paralelo con el interruptor o pulsador soluciona el problema. En otras ocasiones, en cambio, es preciso usar ambos métodos, software y condensador. Cuestión de probar en cada caso.

73.

ResponderCitar
EA5EMM
Mensajes: 42
#242403  - 3 febrero, 2014 19:45 

A ver si sube el video de la prueba.

EA5EMM
Julio

ResponderCitar
EA5EMM
Mensajes: 42
#242404  - 3 febrero, 2014 20:54 

Hola EA1HBK (no se tu nombre).

Tomo nota de lo que dices, con el delay a mejorado muchísimo, mañana le pondré un condensador de 100nF tal y como lo hacen en la página que has pasado a ver si se estabiliza del todo.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1RJ
Mensajes: 360
#244750  - 4 febrero, 2014 19:56 

Hola Julio,

Si que he comprado cosas en Demon multimedia y siempre muy bien.

Viendo tu vídeo veo que has limitado el recorrido del actuador con los discos que activan los interruptores internos.

Yo no me fiaría mucho de ese mecanismo por que como el ajuste no lo veo muy preciso, entiendo que le puede dejar moverse un pelin mas en unas ocasiones que en otras y ya tienes el error.

Esta bien lo del delay, quizás sería mejor ignorar cualquier pulso que se detecte dentro de un periodo establecido desde el impulso anterior? es lo que se suele hacer para evitar los rebotes.

Saludos.

ResponderCitar
EA5EMM
Mensajes: 42
#242405  - 5 febrero, 2014 11:06 

Hola Ricardo.

Si efectivamente lo limite con los interruptores internos más que nada por tener una referencia de inicio/fin, si que es verdad que algunas veces produce algún pulso de más.

He probado un nuevo código para frenar el efecto de rebote además de colocar un condensador de 10nF y las lecturas son estables. El siguiente paso averiguar cuantos pulsos necesito en mi instalación para llegar de 0 a 90 grados, modificar el programa de K3NG para adaptarlo a la lectura de pulsos controlando el rebote y montar la unidad en una caja. Aún queda faena por hacer.

Saludos.

EA5EMM
Julio

ResponderCitar
EA1DDO
Mensajes: 7784
#244910  - 15 febrero, 2014 21:38 

Hola,

Como información de puesta al día...

Hará como una semana recibí el RTC, el famoso reloj.
Me pasé varios días peleando con él, pues no me funcionaba. Probé como cuatro o cinco librerías diferentes y nada.
Logré que mi Mega lo reconociera, con una utilidad llamada I2C-Scanner lo detectaba correctamente, en 0x68, y el RTC daba la información de fecha y hora, pero totalmente incorrecto y el problema era que no obedecía las órdenes de poner la hora que le enviaba.
Después de varios días llegué a la conclusión que tenía algo mal. Hablé con el vendedor y el viernes se lo envié de vuelta.
Estoy esperando otro nuevo a ver si tengo más suerte.

El jueves me puse con el GPS.
Había recibido un par de GPS marinos marca Garmin modelo GPS17-N, de segunda mano pero baratos (a €5).

oem17n.jpg

Lo conecté y nada. Ya me imaginaba otra pesadilla como la del RTC.
El jueves no funcionó pero ayer viernes Goody (también compró varios de estos GPS) encontró el problema; hay que invertir la señal de datos, pues al parecer viene invertida.
Dos resistencias y un transistor hicieron el cambio y finalmente el GPS empezó a funcionar.
Tuve que sacarlo fuera pues pegado a la ventana no cogía ningún satelite. Con sacarlo medio metro fuera ya empezó a cogerlos.

La verdad, es una maravilla y muy cómodo ver como enciendes el Arduino y en menos de un minuto recibe los datos del GPS y se pone en hora y coge las coordenadas del lugar. Muy bien.

Por otro lado, la última versión del código ya tiene algún soporte para la tarjeta de red ethernet.
No es gran cosa, ya que no tiene servidor web ni nada de eso, de momento solo es servicio Telnet.
Puedes abrir una sesión de Telnet al Arduino y hacer lo mismo que en la ventana del monitor serie, mandar comandos, debug y esas cosas.

Poco a poco.

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA1DDO
Mensajes: 7784
#245728  - 16 febrero, 2014 10:04 

Hola,

Goody está remodelando la página web, documentación, etc. Incluso quiere pasar de la página web a una Wiki.
La verdad es que este hombre no para.

A lo que iba, os pongo un par de enlaces a la nueva página y alguna documentación;

Nueva página

Documentación

73, Máximo - EA1DDO

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EA4ADJ
Mensajes: 4054
#242406  - 16 febrero, 2014 12:09 

Hola. nunca he trasteado con los GPS, pero por 5€ me dan ganas de probar, mas que nada por el tema de si se podria usar para el tema de disciplinar transverters.
73.

Mi hijo me hace profundamente feliz

TNX & 73,
Pedro EA4ADJ IM88jw http://ea4adj.jimdo.com/
La solana. Que pueblo, galan!

ResponderCitar
EA1DDO
Mensajes: 7784
#245787  - 16 febrero, 2014 14:43 

Hola,

Pedro, te envié un correo.

Lo de los transverters, bueno, el GPS lo que proporciona es la fecha y hora exacta (además de coordenadas de posición), luego necesitas "algo" que usando esa información de tiempo ofrezca una salida de sincronismo o reloj.

Uno de esos primeros circuitos fue el RefLock de Luis - CT1DMK.

Creo que con el tiempo ya han salido otros diseños alternativos.

73, Máximo

Máximo Martín - EA1DDO / HK1H / M0HAO
EA1DDO@HoTMaiL.com
http://www.EA1DDO.es

ResponderCitar
Inició el tema
EB2AOC
Mensajes: 34
#242407  - 16 febrero, 2014 18:06 

Buenas a todos,
Sigo el hilo con mucho interes. Yo tambien ando intentando montar el proyecto de K3NG para controlar mis rotores y realizar el seguimiento de los satelites.
Tengo un rotor Hygain para azimut y un Kenpro KR-500B para elevacion. Ambos controlan la posicion mediante potenciometro.
Mi duda es, como tengo que meter esa señal del potenciometro a la entrada del Arduino?
Si he entendido bien el funcionamiento del circuito, esa variacion de resistencia que se produce en el potenciometro del rotor al variar su posicion la deberia transformar en un voltaje entre 0-5v que es lo que admite la placa Arduino en su entrada??
Si es asi, como lo consigo?? Mediante un Operacional o algo similar??
Agradeceria vuestros comentarios...
Un saludo
Javi EB2AOC

Un saludo

Javi EB2AOC

ResponderCitar
Página 3 / 10

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