Página 5 de 9

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 12 May 2019 21:52
por Alf
Hola
rodrigocn escribió: 12 May 2019 17:23 Los motores que usan los actuadores son universales?
De los dos motores que tengo solo desarme el del actuador lineal (Harl Super Jack) y ese tiene un motor común de corriente continua con 2 imanes permanentes, como lo de los autos de juguetes.

Saludos

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 16 May 2019 19:58
por rodrigocn
Cambie los mosfet por IRF3205 que tienen una menor Rdson.
El conteo de pulsos es batante preciso.
El arduino es muy sensible al ruido externo, ademas esta todo muy justo de espacio. Voy a tener que aisalr el transformador y el arduino dentro de una cajita metalica.
Falta mucho codigo en el arduino y unas cuantas mejoras en el hardware.

La botonera es de prueba, faltan algunos botones. La idea es pulsar y mover 1 pulso, mantener pulsado y parar al soltar.
Faltan cosas como :
Limite por sotware
Guardar el estado y retomarlo al encender
configuraciones basicas
control completo por botones
algunos comandos DISEQC como recalcular,referencia,mover X cantidad de pulsos
etc

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 18 May 2019 10:59
por Alf
Hola
rodrigocn escribió: 16 May 2019 19:58 Cambie los mosfet por IRF3205 que tienen una menor Rdson.....
No te calientes mucho por esta característica, dado que si las diferencias no son muchas solo ahorras un poco en el disipador dado que este calentara menos, el transistor debe estar de acuerdo a la potencia a manejar y el de menor precio es el que hay que utilizar.

rodrigocn escribió: 16 May 2019 19:58 ... El arduino es muy sensible al ruido externo, ademas esta todo muy justo de espacio. Voy a tener que aisalr el transformador y el arduino dentro de una cajita metalica.
....
Muchas veces el ruido ingresa por la alimentación, por lo que es importante poner capacitores a masa para que por ellos se valla el ruido. se suele poner uno electrolítico de 12uF en paralelo con uno de .1; también pequeños choques o circuitos resonantes en las distintas patas de los integrados y/o capacitores como los comentados ayudan a eliminar el ruido. Lamentablemente donde colocarlos es un proceso de prueba y error.

Saludos

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 18 May 2019 17:55
por rodrigocn
Alf escribió: 18 May 2019 10:59 Hola
rodrigocn escribió: 16 May 2019 19:58 Cambie los mosfet por IRF3205 que tienen una menor Rdson.....
No te calientes mucho por esta característica, dado que si las diferencias no son muchas solo ahorras un poco en el disipador dado que este calentara menos, el transistor debe estar de acuerdo a la potencia a manejar y el de menor precio es el que hay que utilizar.

rodrigocn escribió: 16 May 2019 19:58 ... El arduino es muy sensible al ruido externo, ademas esta todo muy justo de espacio. Voy a tener que aisalr el transformador y el arduino dentro de una cajita metalica.
....
Muchas veces el ruido ingresa por la alimentación, por lo que es importante poner capacitores a masa para que por ellos se valla el ruido. se suele poner uno electrolítico de 12uF en paralelo con uno de .1; también pequeños choques o circuitos resonantes en las distintas patas de los integrados y/o capacitores como los comentados ayudan a eliminar el ruido. Lamentablemente donde colocarlos es un proceso de prueba y error.

Saludos
Tengo que probar con algun inductor en la fuente, por ahora solo conecte el arduino por usb y la alimentacion de los relees y el motor por separado.
Es tan sensible, que si activo el conteo de pulsos, sin tener motor conectado y presiono el boton azul de arriba de los relees (lo que hace es accionarlo mecanicamente) cuenta pulsos osea solo con invertir la polaridad (teniendo el mosfet sin gatillar) ya detecta alguna interferencia.
Tambien pienso que los cables de prueba son de mala calidad y eso influye, se pegan a los imanes :jaja
Voy a cambiar el filtrado del conteo ed pulsos por un pull-up con 220/470 ohm y voy a probar capacitores entre el pin de las interrupciones a gnd desde 0.1 a 1uf a ver que da mejor resultado.
La logica para mover el motor es :
cambia sentido de giro->comienza conteo de pulsos->activa motor->llega a destino->para motor->termina conteo de pulsos
El relee del sentido de giro mantiene el ultimo estado.

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 19 May 2019 12:49
por Alf
Hola
rodrigocn escribió: 18 May 2019 17:55 Tengo que probar con algun inductor en la fuente, por ahora solo conecte el arduino por usb y la alimentacion de los relees y el motor por separado.
Es tan sensible, que si activo el conteo de pulsos, sin tener motor conectado y presiono el boton azul de arriba de los relees (lo que hace es accionarlo mecanicamente) cuenta pulsos osea solo con invertir la polaridad (teniendo el mosfet sin gatillar) ya detecta alguna interferencia...
¿Estas diciendo que aunque no haya movimiento del motor produce conteo de giro de este? Si ese es el caso ya pensaría en reformular el sistema de conteo.
Ruido siempre va haber, lo importante es que no afecte a lo que uno este haciendo, aunque el ruido sea alto si este no afecta el circuito esta bien.
rodrigocn escribió: 18 May 2019 17:55 ...Tambien pienso que los cables de prueba son de mala calidad y eso influye, se pegan a los imanes ....
Descartalos ya, utiliza cable UTP 5e, son baratos y fáciles de conseguir. Yo utilizo estos, eso si con vaina para exterior; para tus pruebas conseguí los comunes, no gastes dinero de más.
rodrigocn escribió: 18 May 2019 17:55Voy a cambiar el filtrado del conteo ed pulsos por un pull-up con 220/470 ohm y voy a probar capacitores entre el pin de las interrupciones a gnd desde 0.1 a 1uf a ver que da mejor resultado....
Pone todo (completo, sin que falte ningún componente) el circuito de conteo (el diagrama) tal vez pueda ver donde esta el problema o dar alguna idea.

Saludos

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 19 May 2019 15:51
por rodrigocn
Me refiero a que si activo el conteo de pulsos (pongo el attachinterrupt en el setup por ejemplo) y conecto el transformador o invierto el sentido de giro (sin ningun tipo de carga), cuenta pulsos, pienso que es ruido inducido. Por eso despues de mover el motor desactivo la interrupcion para que no cuente pulsos erroneos

El conteo funciona con interrupciones, cada vez que el arduino lee una, aumenta o disminuye 1 pulso, dependiendo de el sentido de giro del motor.

hoy estuve haciendo pruebas y me dio bastantes errores que en las pruebas anteriores no tenia.

El diagrama:

Imagen

Esto me funciono siempre bien, pero hoy conecte todo como para probar con los comandos DISEQC y tenia errores en el conteo de pulsos, incluso probando todo como me habia funcionado anteriormente sin comandos DISEQC.

Codigo arduino

Mover motor, antes de llamar a esta funcion, se carga en al variable motor1PulsosDestino, el valor correspondiente

Código: Seleccionar todo

void  moverMotor1Este() { 
	if (moviendoMotor1 == false) {
		moviendoMotor1 = true;
		//primero cambia sentido giro
		digitalWriteFast(motor1Sentido, LOW);
		delay(2000); //espero 2 segundos, para que se "estabilice"
		attachInterrupt(digitalPinToInterrupt(reedSwitch1),restarPulsosM1, CHANGE); //empieza conteo de pulsos,en este caso, resta 1 pulso en cada cambio de estado
		digitalWriteFast(motor1PWR, HIGH); //activa motor
	}
}
Despues de ejecutar eso, cada vex que el reed switch pasa y sale del iman, llama a la funcion esta:

Código: Seleccionar todo

void restarPulsosM1() {
	motor1PulsosActuales = motor1PulsosActuales - 1;
	if ((motor1PulsosActuales == motor1PulsosDestino)) {
		pararMotor1();
	}
}
Cuando se llega a los pulsos necesarios, para el motor:

Código: Seleccionar todo

void  pararMotor1() {
	digitalWriteFast(motor1PWR, LOW); //apaga el motor
	detachInterrupt(digitalPinToInterrupt(reedSwitch1)); //desacriva la interrupcion, no cuenta mas pulsos
	moviendoMotor1 = false;
}
Voy a armar todo en un gabiente mas grande y voy a usar cables utp de cobre.

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 19 May 2019 18:43
por Alf
Hola

Del diagrama expuesto solo puedo sugerir que utilices cables retorcidos que vayan al reedswitch (si usas utp 5e son pares entrelazados).
La unión de R1 y C1 este cerca del pin 3 del arduino. Colocar un capacitor de 10 o 100 uF entre 5VCC y GND (pegado a R1 y C1).
Para las pruebas quitaría las lineas del programa que desactivan el conteo, dado que si sigue contando quiere decir que esta entrando ruido que hay que tratar de eliminar, supongo que las pruebas son en un taller o un galpón, o habitación dentro de tu casa y con cables cortos; en estos casos no tendría que haber ruido, salvo que donde se este haciendo las pruebas sea un lugar muy ruidoso por ser o estar pegado a una fábrica o similar; o cerca de algún motor o elemento que prenda y apague alguna carga eléctrica.
Poner todo con un blindaje no es mala idea, pero creo que tendría que funcionar sin ello.
Asegúrate que el GND este puesto a tierra. Si no hay puesta a tierra hay que hacer una. Con un electrodo de puesta a tierra de 1 metro de largo por 10 mm de ancho es más que suficiente para este tipo de cosas si se lo enclava en un lugar con tierra como ser un jardín. Se los compra en las casas de electricidad.
Si estaría en tu lugar dejaría un cable de unos 3 metros de largo y aislado puesto a la unión de R1 y C1 y vería si hay conteo durante varias horas y trataría de ver cuando es que se produce este conteo.
Si a pesar de lo expuesto el ruido persiste optaría por cambiar C1 y el reedswitch.
Es muy importante ver cual es la causa de los falsos conteos, dado que sino vas a perder con el tiempo la referencias de las posiciones de los satélites.

Saludos

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 19 May 2019 19:31
por rodrigocn
Ya hice algunas pruebas dejando el conteo de pulsos activo, cuenta algun pulso de mas cuando se activa/desactiva el relee que invierte el giro o cuando se tocan las conexiones. Pero si siempre muevo 1 pulso para el mismo lado anda bien.
Igual es raro proque toda la parte de potencia/control esta aislada eletricamente del arduino con optoacopladores.
Las pruebas las estoy haciendo con la parabolica que uso con el poicionador comercial, con ese anda bien y no tiene errores de posicionamieno. tiene el cable original de la antena, malla con 1 par blindado para pulsos y 1 par para tension del motor
Tengo conexion a tierra, en estas pruebas solo esta conectada al chasis metalico, pero aislado de gnd, voy a probar unirlos.
Esto habia funcionado bien anteriormente, yo creo que cambiando los cablecitos de prueba y aterrando el gnd deberia de andar bien.
Recuerdo que el primer amplificador que arme tenia un ruido horrible y estuve dias intentando solucionarlo, el problema eran los cables de la fuente de pruebas:

Tenian algo en comun con estos:

Se pegan en los imanes, por eso creo que captan mas ruido, pero quizas sean cosas sin sentido lo que digo

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 24 May 2019 22:46
por rodrigocn
Cambie todo a otro gabinete mas grande, por ahora use cable de cobre utp en el conteo pulsos solamente.
En el pull-up use una resistencia de 820 ohm y 133 nF
Llegue a la conclusión de que el mal conteo de pulsos el culpable es el mismo ruido generado por el motor ademas del que ya captura todo el cable (aunque es mallado) así que en el código de conteo implemente un "anti-rebote" de 10ms.
Mejoro notablemente, en este vídeo pueden ver que se posiciona bien y cuenta 3 pulsos de mas solamente.
Pienso que en el posicionador comercial implementaron algo similar porque tiene pocos componentes, el PIC hace todo prácticamente.

Demora en subir el video

Re: Intento de desarrollo posicionador diseqc de codigo abierto

Publicado: 25 May 2019 17:48
por rodrigocn

Esta comentado el video