Haz una pregunta
  Foros de Electrónica » Temas de Interés » Dudas en general
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

10/09/2015 #1

Avatar de Cloudff7

Problema con Conexion ULN2064B
Hola,

Alguien podría decirme como se conecta un ULN2064B
lo quiero para conectar varios servomotores, pero no se
hasta cuantos puede manejas cada ya que haciendo unas
pruebas pareciera que todas las salidas son iguales.

O si pueden recomendarme algún puente h para manejar unos servos
digitales HDK D3009 ya que su corriente en carga son de 500 mAh. ...
10/09/2015 #2

Avatar de J2C

.


Cloudff7

Pues fíjate en la página 8 de la datasheet (click) del mismo y te mostrara la conexión típica de dicho integrado !!!.


También podrías haber colocado el esquema de lo que deseas realizar y así podría algún forista guiarte mejor.




Saludos, JuanKa.-
23/09/2015 #3

Avatar de Cloudff7

Hola, muchas gracias por responder.

La cuestión es esta: Por el momento estoy en una minilaptop y no me corre proteus para pegar el esquemático pero tratare de explicarlo lo mas claro posible.

Estoy haciendo un brazo robot controlado inalambricamente, el transmisor es un PIC18F4550, que se encarga de enviar las instrucciones de que servo y a que angulo debe moverse.

El receptor es un PIC16F887, que se encarga de recibir los datos y mandar un pulso PWM al servomotor correspondiente.

Lo que hice fue conseguir una batería de 12 V a 7 Ah y conectarla para que alimente directamente a los servos; para bajar el voltaje utilice varios diodos en serie (de 6A) para dejarlo en 5.4 V y que me permitieran pasar casi toda la corriente. Pero al momento de conectar un servo funciona perfectamente, pero si conecto el segundo empieza a moverse de manera extraña(como si le faltara corriente, ya que lo mismo me hace con un LM7805).

Investigando, en distintos foros y WEBs encontré que el ULN2064B sirve para tal propósito ya que entrega 1.5 A a la salida. pero mi duda esta en la conexión de este integrado ya que no veo que tenga una patilla para VCC, otra duda surge en que no se que debo conectar a la entrada. VCC del servo o la señal PWM que sale del pic?

La simulación en Proteus corre bien(pero es obvio ya que varios parámetros en la simulación son "ideales") y pues esa es la duda. Voy a postear mi codigo en CCS para tratar de aportar algo a la comunidad ya que no es la primera vez que me ayudan en ciertos temas.

En simples palabras tengo problemas con la etapa de potencia.


Codigo Transmisor:

Código PHP:
#include <18F4550.h> 
#fuses XT,PLL1,CPUDIV1,PUT,NOBROWNOUT,NOVREGEN,NOWDT,NOPBADEN,MCLR,NOLVP,NODEBUG,NOPROTECT,NOCPD,USBDIV
#device adc=10 
#use delay(clock=48000000)
#include "lib_rf2gh4_10_4550.h" 

#byte porta=0xF80               // Dirección de los puertos A, B, C, D y E.
#byte portb=0xF81
#byte portc=0xF82
#byte portd=0xF83
#byte porte=0xF84

int16 x;
int8 rettemp1;                                                                // Variables de Retorno y ADC

//*************************Programa principal*********************************//
void main()
{

RF_CONFIG_SPI();                                                                // Configurar módulos SPI del PIC
RF_CONFIG(0x40,0x01);                                                           // Configurar módulo RF (canal y dirección)
RF_ON();                                                                        // Activar RF
set_tris_a(0b011111);                                                           // RA5 como salida para evitar poner la resistencia de polarización.

setup_adc(ADC_CLOCK_INTERNAL);                                                  // ADc del PIC
setup_adc_portsAN0_TO_AN3|VSS_VDD);                                          // AN0 como Canal analogo           
set_adc_channel(0);                                                             // Canal 0                
delay_us(10);                                                                   // Dejamos un tiempo antes de Empezar a Leer

//***************************Bucle de Lectura y envio*************************//

while(true){

x=read_adc();                                                               // El contenido del ADC se almacena en temp1
RF_DIR=0x08;                                                                    // Direcion de Envio
RF_DATA[0] = make8(x0);          
RF_DATA[1] = make8(x1);                                                              // Se Almacena la lectura en la variable de envio                                                             
ret=RF_SEND();                                                                  // Enviar Datos
delay_ms(50);                                                                  // Retardo de envio (Revisar minimo)

if(ret==0){
output_high(pin_E0);                                                            //Envio realizado y ACK recibido
}
else if(
ret==1){ 
output_high(pin_E1);                                                            //Envio realizado y ACK no recibido
}
else{
output_high(pin_E2);                                                            //Envio no realizado
}
//----------------------------------------------------------------------------//
}


Codigo Receptor:

Código PHP:
#include <16f887.h>       
#FUSES NOWDT, XT, PUT, NOPROTECT, NODEBUG, NOBROWNOUT, NOLVP, NOCPD, NOWRT
#use delay(clock=1000000) 
#include <lcd.c>
#include "lib_rf2gh4_10.h" 


int8 d[];
int8 ret;
int16 data;
float temp;
 
//--------------[Rutina de recepción con interrupcion]--------------------------
 

#int_ext
void int_externo() {
 
ret RF_RECEIVE();
 if (
ret == 0)  
{
         
d[0] = RF_DATA[0];
         
d[1] = RF_DATA[1];
 }
 }
void main(){

lcd_init();

setup_CCP1(CCP_PWM);

//-----------[Rutina de configuración y activación con interrupción]------------

RF_INT_EN();                                                                    //Habilitar interrupciones
RF_CONFIG_SPI();                                                                //Configurar módulos SPI del PIC
RF_CONFIG(0x40,0x08);                                                           //Configurar módulo RF (canal y dirección)
RF_ON();                                                                        //Activar el módulo RF

                                    
while(1)
{
data=((int16)d[0])+((int16)d[1]<<8);
temp=(data*1);
lcd_gotoxy(1,1);                                                                //COLOCA EL CURSOR EN COLUMNA 1 FILA 1
lcd_putc("TEMP ACTUAL...");                                                     //IMPRIME EN PANTALLA                                        
lcd_gotoxy(4,2);                                                                //COLOCA EL CURSOR EN COLUMNA 4 FILA 2
printf(lcd_putc," T= %2.2f C",temp);                                            //MUESTRA EN EL LCD EL VALOR DE TEMPERATURA
delay_ms (1);

 }  

Este codigo transmite inalambricamente un ADC a 10 Bits de Pic a Pic mediante el modulo NRF24L01.(también adjunto librerías) y una imagen del diagrama de conexiones.(Cabe resaltar que en el diagrama esta el pic16f876A pero tiene las mismas direcciones que el 16F887 y la conexion va en el mismo No. de Patilla, pero por si llegaran a tener dudas en las librerias :"lib_rf2gh4_10_4550" y "lib_rf2gh4_10" en las primeras lineas viene la conexion de CE, CSN, SDO,SDA,SCK y asi se pueden guiar mejor.
Archivos Adjuntos
Tipo de Archivo: rar Prueba 887 0-1023.rar (99,2 KB (Kilobytes), 18 visitas)
23/09/2015 #4

Avatar de pandacba

Has buscado la hoja de datos y la notas de aplicacion de dicho CI?
Si en tu buscador pones el nombre del CI y eliges imagenes veras una gran cantidad de aplicaciones de dicho CI que te orientaran
Jamás debes empezar ningún proyecto sin tener las hojas de datos de los componentes que utilzaras
23/09/2015 #5

Avatar de Cloudff7

pandacba dijo: Ver Mensaje
Has buscado la hoja de datos y la notas de aplicacion de dicho CI?
Es correcto mi amigo, tengo el datasheet a la mano como me lo recomendó el compañero de la primera respuesta. y efectivamente solo hay un ejemplo para manejar LED ya sea por cátodo y Ánodo, pero no esta muy clara la conexión de la alimentación de los Led, por lo que recurrí a preguntar en el foro. Aun asi gracias por resaltar ese detalle que en muchas ocasiones tiene la respuesta.
23/09/2015 #6

Avatar de pandacba

Tu problema por tus respuestas es que tus conocimientos de electrónica son muy limitados, ya que en la hoja de datos esta la respuesta a tu pregunta
De echo figura como esta compuesto cada driver interno, con solo mirarlo se ve que es de colector abierto y presisamente el ejemplo de led's clarifica perfedtamente el sentido de conducción de la corriente, ya sea que coloques un led o un motor es exactamente lo mismo
Lo que si tal vez no sea el más adecuado para tu aplicación en particular
23/09/2015 #7

Avatar de ElectroWero

En mi experiencia con Robots, ese IC se conecta asi:

Pin 1 K1 y Pin 8 K2 van a +12V
Pin 3, 6, 11 y 14 son IN
Pin 2, 7, 9 y 16 son OUT
Pin 4, 5 12 y 13 GNG.

Saludos y hasta la próxima.
23/09/2015 #8

Avatar de Cloudff7

Muchísimas gracias por la respuesta tan Clara.

Ya estoy haciendo pruebas y espero postear resultados a fin de que alguien pueda encontrar solución rápida a un problema similar.
23/09/2015 #9

Avatar de J2C

.


Cloudff7

Para mejorar la idea de la conexión de los servos (si es que a ellos te refieres) mira en la siguiente página por que me parece que tienes una confusión entre Servos y Motores PAP.


No he profundizado la búsqueda, por si lleva alguna resistencia en algún punto; pero todo pareciera indicar que no y te dejo a ti que mires y confirmes bien como usarlos.




Por otra parte si bien no es la mejor manera de obtener 5V desde la batería de 12V lo que has hecho con los diodos diría que es medianamente aceptable, pero .....

Siempre tengo esos famosos pero .....

Personalmente alimentaria la parte del µControlador no desde esa salida de los diodos, sino que colocaría un 7805 desde los 12V y solo para la electrónica asociada al µControlador. No puedo ver tu adjunto de Proteus por que yo no utilizo simuladores.

El punto que dices de los movimientos extraños puede deberse a ruidos sobre la línea de +5.4V debido a la carga inductiva de los motores, al agregar una nueva alimentación de +5V exclusiva para la electrónica del µControlador y demás asociados (NRF24L01, etc.) te independizaras de esos ruidos de motores/servos.




Saludos, JuanKa.-
23/09/2015 #10

Avatar de Cloudff7

J2C dijo: Ver Mensaje
.


Personalmente alimentaria la parte del µControlador no desde esa salida de los diodos, sino que colocaría un 7805 desde los 12V y solo para la electrónica asociada al µControlador. No puedo ver tu adjunto de Proteus por que yo no utilizo simuladores.

El punto que dices de los movimientos extraños puede deberse a ruidos sobre la línea de +5.4V debido a la carga inductiva de los motores, al agregar una nueva alimentación de +5V exclusiva para la electrónica del µControlador y demás asociados (NRF24L01, etc.) te independizaras de esos ruidos de motores/servos.
Respondiendo a tu comentario déjame decirte que, efectivamente estoy usando un LM7805 para la electrónica del micro controlador y para la alimentación de mi antena, de echo la alimentación del pic es mediante una batería de 9V con un LM7805. La bateria de 12 V solo la utilizo para alimentar los motores. asociando las tierras para tener la misma referencia de Voltaje.

Muchas Gracias Echare un vistazo al link que me dejaste.
23/09/2015 #11

Avatar de J2C

.


Cloudff7

Si es una batería de 9V de estas:




No es lo mas recomendable en mi opinión. Ya que si cae un poco la tensión por cualquier motivo el 7805 se quedara sin margen entre entrada y salida, pudiendo causar problemas en la alimentación del µControlador.


Una forma de sacarte la duda es monitorear la alimentación de los +5V con un osciloscopio o un multímetro.




Saludos, JuanKa.-
23/09/2015 #12

Avatar de locodelafonola

hola
Cloudff7 dijo: Ver Mensaje
Muchísimas gracias por la respuesta tan Clara.

Ya estoy haciendo pruebas y espero postear resultados a fin de que alguien pueda encontrar solución rápida a un problema similar.
Vamos por partes ., yo creo que estas confundido con el circuito integrado
Primero que esta discontinuado y segundo que es un puente H (o funcianamiento parecido al L293D)
Yo creo que tu confucion se debe ., a que talvez te referias al ULN2003N o ULN2803N ., que si son para aplicaciones con servos ., pero que son completamente distintos
Ahora lo otro viendo tu programa ., no se ., como puedes manejar un servo
si solo tiene un sensado de temperatura ., el programa para manejar un servo es totalmente distinto (las salidas tambien)
J2C dijo: Ver Mensaje
.


Cloudff7

Para mejorar la idea de la conexión de los servos (si es que a ellos te refieres) mira en la siguiente página por que me parece que tienes una confusión entre Servos y Motores PAP.


No he profundizado la búsqueda, por si lleva alguna resistencia en algún punto; pero todo pareciera indicar que no y te dejo a ti que mires y confirmes bien como usarlos.




Por otra parte si bien no es la mejor manera de obtener 5V desde la batería de 12V lo que has hecho con los diodos diría que es medianamente aceptable, pero .....

Siempre tengo esos famosos pero .....

Personalmente alimentaria la parte del µControlador no desde esa salida de los diodos, sino que colocaría un 7805 desde los 12V y solo para la electrónica asociada al µControlador. No puedo ver tu adjunto de Proteus por que yo no utilizo simuladores.

El punto que dices de los movimientos extraños puede deberse a ruidos sobre la línea de +5.4V debido a la carga inductiva de los motores, al agregar una nueva alimentación de +5V exclusiva para la electrónica del µControlador y demás asociados (NRF24L01, etc.) te independizaras de esos ruidos de motores/servos.




Saludos, JuanKa.-
amigaso juanK (tocayo querido ) ., si le presta atencion al esquema y al programa posteado
Vera ., que parece ser ., un termometro., o algo que mide o muestra temperatura ., pero para manejar servos .,nada de nada
23/09/2015 #13

Avatar de Cloudff7

Tienes Razon
locodelafonola:

Hola.

En el pie de mi respuesta, especifique:

Este código transmite inalambricamente un ADC a 10 Bits de Pic a Pic mediante el modulo NRF24L01.(también adjunto librerías) y una imagen del diagrama de conexiones.(Cabe resaltar que en el diagrama esta el pic16f876A pero tiene las mismas direcciones que el 16F887 y la conexión va en el mismo No. de Patilla, pero por si llegaran a tener dudas en las librerías :"lib_rf2gh4_10_4550" y "lib_rf2gh4_10" en las primeras lineas viene la conexión de CE, CSN, SDO,SDA,SCK y asi se pueden guiar mejor.
Por lo que se intuye que no vendría nada sobre los servos, la variable temp la utilice por que efectivamente en ese ADC estaba usando un LM35DZ para transmitir temperatura. y fue la "variable que se me hacia mas cómoda. De echo en el código del receptor lo multiplico x1 para visualizar meramente que mi ADC llego completo(0-1023), ya que como podrás darte cuenta estoy trasmitiendo un ADC de 10 bits que primero descompongo en el Emisor y después integro en el Receptor ya que mi antena solo maneja paquetes de 8 bits.

El control de los servos esta en otro programa y digamos que ese es punto y aparte ya que conectados individualmente funcionan correctamente.

---------- Actualizado después de 5 minutos ----------

J2C dijo: Ver Mensaje
.No es lo mas recomendable en mi opinión. Ya que si cae un poco la tensión por cualquier motivo el 7805 se quedara sin margen entre entrada y salida, pudiendo causar problemas en la alimentación del µControlador.
Amigo tienes muchísima razón, no lo había considerado, estas baterías pierden tensión entre mas dispositivos(corriente) tenga conectados, por lo que esos bajones de energía me pueden estar provocando los errores que tengo, y como dices tu se pierde el margen.

Hare las pruebas que me comentas y veré que pasa.
23/09/2015 #14

Avatar de J2C

.


Cloudff7

Si por que es una batería de baja capacidad de corriente, entonces el riesgo es que apenas la tensión se aproxime a 8V quedas justo en el limite de la diferencia de potencial entre IN y OUT de los 7805.

Si hay algún ruido en alguna parte, el regulador también puede hacer cosas raras, de ultima como agregue antes coloca un osciloscopio a ver si la tensión de +5V no posee cosas raras.




Don Rosit0

No uso el Proteus ni ningún simulador, no he visto ningún esquema ni perdí tiempo en analizar el programa. Solo empecé respondiendo ante la pregunta del forista por el ULN2064 y ahora que fue más explicito respecto al uso del mismo he observado en la Web que no necesita nada para trabajar con servos.

Convengamos que para manejar un Servo no son necesarios integrados adicionales como para los Motores PAP.



Saludos, JuanKa.-
23/09/2015 #15

Avatar de ElectroWero

Si desea algo mejor para un brazo Robotico es un un UART servo controller.
23/09/2015 #16

Avatar de locodelafonola

hola
Cloudff7 dijo: Ver Mensaje
Hola,

Alguien podría decirme como se conecta un ULN2064B
lo quiero para conectar varios servomotores, pero no se
hasta cuantos puede manejas cada ya que haciendo unas
pruebas pareciera que todas las salidas son iguales.

O si pueden recomendarme algún puente h para manejar unos servos
digitales HDK D3009 ya que su corriente en carga son de 500 mAh. ...
Amigo yo me limite a responder al pregunta planteada ., pues para el control de los servos ., NO se usa un puente H ., como usted solicitaba ., y si al menos., no muestra la libreria que los maneja ., mas aun a mi favor .,temperatura con control de servos nada que ver ., porque el comando es compltamente distinto al que planteas
J2C dijo: Ver Mensaje
.


Cloudff7

Si por que es una batería de baja capacidad de corriente, entonces el riesgo es que apenas la tensión se aproxime a 8V quedas justo en el limite de la diferencia de potencial entre IN y OUT de los 7805.

Si hay algún ruido en alguna parte, el regulador también puede hacer cosas raras, de ultima como agregue antes coloca un osciloscopio a ver si la tensión de +5V no posee cosas raras.




Don Rosit0

No uso el Proteus ni ningún simulador, no he visto ningún esquema ni perdí tiempo en analizar el programa. Solo empecé respondiendo ante la pregunta del forista por el ULN2064 y ahora que fue más explicito respecto al uso del mismo he observado en la Web que no necesita nada para trabajar con servos.

Convengamos que para manejar un Servo no son necesarios integrados adicionales como para los Motores PAP.



Saludos, JuanKa.-
amigaso querido ., yo me limite a responder .,y si se usan ., como amplificadores (ULN2003 y ULN2803) ., cuando la distancia del cable es mayor a 30 (treinta ) cm ., es para que no pierda fuerza la señal y funcione erroneamente ., pero como tampoco especifica la distancia del coneccionado ., pence que lo pedia por eso ., ahora que de alli ., se interprete cualquier cosa .,eso es otra historia

---------- Actualizado después de 9 minutos ----------

Cloudff7 dijo: Ver Mensaje
El receptor es un PIC16F887, que se encarga de recibir los datos y mandar un pulso PWM al servomotor correspondiente.

Lo que hice fue conseguir una batería de 12 V a 7 Ah y conectarla para que alimente directamente a los servos; para bajar el voltaje utilice varios diodos en serie (de 6A) para dejarlo en 5.4 V y que me permitieran pasar casi toda la corriente. Pero al momento de conectar un servo funciona perfectamente, pero si conecto el segundo empieza a moverse de manera extraña(como si le faltara corriente, ya que lo mismo me hace con un LM7805).

Investigando, en distintos foros y WEBs encontré que el ULN2064B sirve para tal propósito ya que entrega 1.5 A a la salida. pero mi duda esta en la conexión de este integrado ya que no veo que tenga una patilla para VCC, otra duda surge en que no se que debo conectar a la entrada. VCC del servo o la señal PWM que sale del pic?

La simulación en Proteus corre bien(pero es obvio ya que varios parámetros en la simulación son "ideales") y pues esa es la duda. Voy a postear mi codigo en CCS para tratar de aportar algo a la comunidad ya que no es la primera vez que me ayudan en ciertos temas.

En simples palabras tengo problemas con la etapa de potencia.




a esto me remito
23/09/2015 #17

Avatar de ElectroWero

A mi parecer Cloudff7 esta confundiendo un servomotor tipo aeromodelismo, con un servomotor DC para brazo robotizado.

Por eso pregunta por un puente H que es para un servo motor DC.
23/09/2015 #18

Avatar de locodelafonola

hola
ElectroWero dijo: Ver Mensaje
A mi parecer estan confundiendo un servomotor tipo aeromodelismo, con un servomotor DC para brazo robotizado.

Por eso pregunta por un puente H para un servo DC.

http://www.polytechnichub.com/wp-con...mg-300x300.jpg
Nop., no estamos confundiendo servos
Cloudff7 dijo: Ver Mensaje
Hola,

Alguien podría decirme como se conecta un ULN2064B
lo quiero para conectar varios servomotores, pero no se
hasta cuantos puede manejas cada ya que haciendo unas
pruebas pareciera que todas las salidas son iguales.

O si pueden recomendarme algún puente h para manejar unos servos
digitales HDK D3009 ya que su corriente en carga son de 500 mAh. ...
El que el amigo usa (lo dijo en el primer mensaje)., es este
Lo bueno es que tiene engranajes de metal .,y aparte es "estanco" o sea a prueba de agua ., ideales para veleros radio controlados
23/09/2015 #19

Avatar de ElectroWero

locodelafonola dijo: Ver Mensaje
hola
Nop., no estamos confundiendo servos
El que el amigo usa (lo dijo en el primer mensaje)., es este
http://g01.a.alicdn.com/kf/HTB1wfhQI...ua-Digital.jpg
Lo bueno es que tiene engranajes de metal .,y aparte es "estanco" o sea a prueba de agua ., ideales para veleros radio controlados
Me refiero a quien pregunta parece que esta confundiendo los servos, es que se me fue una "n" de mas en "estan"

Para ese servo es usar un controlador PWM con 2 lineas de control SDA y SCL, que es compatible con cualquier microcontrolador con I2C o TWI.

Lo mas viable también seria un UART controller

25/09/2015 #20

Avatar de Cloudff7

Gracias a todos
Antes que nada gracias a todos por sus respuesta.

Por lo que veo efectivamente no necesito ningún tipo de puente H para controlar mis servos, estoy o estaba algo confundió ya que alguien me dijo que necesitaba una etapa de potencia para poder soportar la carga de los 6 Servos HDJK, pero por lo visto no es así.

En fin tendré que ver entonces del por que mi problema al conectar mas de dos servos, estuve midiendo las salidas PWM que genero en cada salida y no rebasan los .4 V

Para ese servo es usar un controlador PWM con 2 lineas de control SDA y SCL, que es compatible con cualquier microcontrolador con I2C o TWI.

Lo mas viable también seria un UART controller
Amigo, el objetivo de mi proyecto es desarrollar el sistema de control para controlarlos por lo que no me es viable comprar el sistema ya echo.

aun agradezco el tomarte tu tiempo para aportar algo al tema.

No uso el Proteus ni ningún simulador, no he visto ningún esquema ni perdí tiempo en analizar el programa. Solo empecé respondiendo ante la pregunta del forista por el ULN2064 y ahora que fue más explicito respecto al uso del mismo he observado en la Web que no necesita nada para trabajar con servos.

Convengamos que para manejar un Servo no son necesarios integrados adicionales como para los Motores PAP.
Amigo tienes razón, buscare entonces por otro lado el origen de mi problema.

Gracias a todos.
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Buscar más temas sobre:
Lupa Dudas en general

Aquí se tratan todos los temas relacionados con la electrónica en general.

Cerrar
Foros de Electrónica » Temas de Interés » Dudas en general

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.