Ver las NORMAS de estos Foros Web ZackYFileS Chat ZackYFileS Agregar a Favoritos Contactar con Administrador
 
 

TU PUBLICIDAD AQUÍ!!
Navegación
Retroceder   Foros ZackYFileS >
OTROS TEMAS DE INTERES - INTERNET:
> PROGRAMACIÓN Microcontroladores: PICs , AVRs.
Nombre de usuario
Contraseña
Configuración de UsuarioAyuda (FAQs)Nuevos PostsBuscar


Respuesta
 
Herramientas
Antiguo 25/07/2007, 17:17   #1
ZackY
Administrador
 
Avatar de ZackY
 
Fecha de ingreso: 31/mar/2001
Mensajes: 7.477
ZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asiZackY Va a salirse de la galaxia como siga asi
Post Control sencillo de un Servo Motor con PIC16F84

Con este código podréis controlar de forma sencilla el posicionamiento de un servo. Yo solo he necesitado girar 90º (de 90º a 180º) el servo (lo he usado para abrir una pequeña puerta [tarmpilla]). Si deseáis que se posicione en otro punto del recorrido, solo deberéis modificar el ancho de pulso a enviar (2msg o 4msg).

[CODE]program Control_Servo
' Control de SERVO por tren de pulsos PWM
' *******************************************************************************
' (c) Autor: ZackY - zackyzgz@yahoo.es
'
'-HARDWARE:
' MCU: PIC 16F84A
' Cristal: 4 Mhz
' Servo conectado a PORTA.2 (Salida)
' Pulsadores conectados a PORTB.0 y PORTB.1 (Entradas)
' *******************************************************************************
Dim i as byte

Main:
TRISA = 0 ' PORTA como Salidas
PORTA = 0
TRISB = 1 ' PORTB como Entradas
PORTB = 1 ' Inicializo PORTB - Entradas OFF

Inicio:
While true
If PORTB.0 = 0 then ' Posiciono servo a 90º
For i=0 to 15 ' Envío 16 pulsos de 2 msg
PORTA.2 = 1
Delay_ms(2)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ' Tiempo para soltar pulsador
end if

If PORTB.1 = 0 then ' Posiciono servo a 180º
For i=0 to 15 ' Envío 16 pulsos de 4 msg
PORTA.2 = 1
Delay_ms(4)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ' Tiempo para soltar pulsador
end if
Wend
End.[/CODE]

Si tenéis algún comentario o duda sobre este código, podéis postearla en este hilo.
ZackY está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Antiguo 29/03/2009, 22:42   #2
alfredoivan6
Usuario Registrado
 
Fecha de ingreso: 09/sep/2005
Mensajes: 1
alfredoivan6 está en el buen camino
[QUOTE=ZackY;2957394]Con este código podréis controlar de forma sencilla el posicionamiento de un servo. Yo solo he necesitado girar 90º (de 90º a 180º) el servo (lo he usado para abrir una pequeña puerta [tarmpilla]). Si deseáis que se posicione en otro punto del recorrido, solo deberéis modificar el ancho de pulso a enviar (2msg o 4msg).

[CODE]program Control_Servo
' Control de SERVO por tren de pulsos PWM
' *******************************************************************************
' (c) Autor: ZackY - zackyzgz@yahoo.es
'
'-HARDWARE:
' MCU: PIC 16F84A
' Cristal: 4 Mhz
' Servo conectado a PORTA.2 (Salida)
' Pulsadores conectados a PORTB.0 y PORTB.1 (Entradas)
' *******************************************************************************
Dim i as byte

Main:
TRISA = 0 ' PORTA como Salidas
PORTA = 0
TRISB = 1 ' PORTB como Entradas
PORTB = 1 ' Inicializo PORTB - Entradas OFF

Inicio:
While true
If PORTB.0 = 0 then ' Posiciono servo a 90º
For i=0 to 15 ' Envío 16 pulsos de 2 msg
PORTA.2 = 1
Delay_ms(2)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ' Tiempo para soltar pulsador
end if

If PORTB.1 = 0 then ' Posiciono servo a 180º
For i=0 to 15 ' Envío 16 pulsos de 4 msg
PORTA.2 = 1
Delay_ms(4)
PORTA.2 = 0
Delay_ms(20)
next i
Delay_ms(1000) ' Tiempo para soltar pulsador
end if
Wend
End.[/CODE]

Si tenéis algún comentario o duda sobre este código, podéis postearla en este hilo.[/QUOTE]




Me interesa mucho, tengo una duda la velocidad de giro del motor cual seria.

Para el proyecto que estoy preparando me interesa algo con una velocidad muy muy baja. Te cuento.

Necesito que el motor me vaya desde el punto de -45º al punto de 45º osea 90º de giro pero a una velocidad muy lenta. y que pasadas varias horas me haga el giro al reves pero no tengo mucha idea de programacion.

Me encantaria que me echaras una mano un saludo y gracias por adelantado
alfredoivan6 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 26/08/2009, 15:07   #3
lucho89
Usuario Registrado
 
Fecha de ingreso: 03/jun/2009
Mensajes: 2
lucho89 está en el buen camino
motor continuo

necesito alguna idea para frenar un motor continuo que hace girar dos ruedas... es un motor de baja tension y no se cual puede ser la mejor manera de frenarlo... todavia soy principiante en electronica..si se les ocurre algo se los agradeceria! saludos!
lucho89 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 28/03/2010, 20:44   #4
Deuteros
Usuario Registrado
 
Fecha de ingreso: 28/mar/2010
Mensajes: 2
Deuteros está en el buen camino
Cita:
Iniciado por lucho89 Ver mensaje
necesito alguna idea para frenar un motor continuo que hace girar dos ruedas... es un motor de baja tension y no se cual puede ser la mejor manera de frenarlo... todavia soy principiante en electronica..si se les ocurre algo se los agradeceria! saludos!
No entiendo bien cual es tu problema en lo que escribes??? puedes ser mas exacto al plantear lo que deseas xD

Gracias
Deuteros está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 06/05/2011, 01:00   #5
metuskale@gm
Usuario Registrado
 
Fecha de ingreso: 06/may/2011
Mensajes: 2
metuskale@gm está en el buen camino
Problemilla

Muy buenas, estoy empezando en esto de los PIC, en mi caso 18F4321, y me surge un ligero problema a la hora de controlar un servo.
He escrito un pequeño programa en C que simplemente quiero que lleve el servo de la posicion inicial a la final y viciversa, asi todo el tiempo.
Bien hay dos problemas
[LIST=1
[*]He conseguido que el servo avance hasta la posicion final pero no he conseguido hacerlo retroceder... :y
[*]Si alimento el servo de dos pins del PIC no hace nada, en cambio se conecto al pin positivo 5v de una fuente de alimentacion y la masa en masa si que llega al final (el problema 1 continua). :confuso
[/LIST]
Agradecería cualquier ayuda puesto que no se que mas probar, he intentado de todo.

Saludos y gracias de antemano.

Última edición por metuskale@gm; 06/05/2011 a las 01:02.
metuskale@gm está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 06/05/2011, 01:02   #6
metuskale@gm
Usuario Registrado
 
Fecha de ingreso: 06/may/2011
Mensajes: 2
metuskale@gm está en el buen camino
Al reves

Cita:
Iniciado por Deuteros Ver mensaje
No entiendo bien cual es tu problema en lo que escribes??? puedes ser mas exacto al plantear lo que deseas xD

Gracias
Yo creo que para frenar tienes que invertir el sentido de giro durante unos instantes, me explico, puesto que si los apagas simplemente no los haces girar pero todavia tienen inercia, puedes darles unos pulsos al motor para que gire en sentido contrario y frene. Prueba con diferentes longitudes del pulso hasta que encuentres una que te de una buena distancia de frenado.

Saludos.
metuskale@gm está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 27/03/2013, 16:35   #7
rina
Usuario Registrado
 
Fecha de ingreso: 21/may/2006
Mensajes: 11
rina está en el buen camino
metuskale@gm , siento no poder darte una solucion concreta.
pero un par de problemas similares ya los tuve. con la serie 16f84a. por no poner al dar corriente el bit designado al servo como salida y en 0 nada mas encender (eso ace que se raye el servo y despues no entienda nada mas)

otra fue con un 16f628, ese caso fue diferente. pongamos que como todos los que emos programado un servo a un pic 16f84 seguro que los conectamos al puerto a directamente sin amplificar la corriente de salida, vamos que la portadora del servo deve tener almenos 10mA sino no carrula y empieza el poco a poco a ir ala posicion de 0º. pongamos que el puerto a en muchos pic suele tener una salida transistorizada que le permite entregar algo mas de 10mA de corriente, el 16f628 no disponia de esa parte electrica, vamos el puerto a estaba preparado mas para las comparadoras.

un pequeño golpe.

as de mirar la documentacion de tu integrado y ver que la patilla donde conectas el servo esta transistorizada como salida para derivar tanto + de 10mA para 5V como para masa. fijate en el esquematico electrico de cada pin del pic. y busca algun terminal que se permita eso. sino tendras que acerlo tu externamente.

un saludo
rina está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Antiguo 21/10/2013, 02:33   #8
Chaco501
Usuario Registrado
 
Fecha de ingreso: 20/oct/2013
Mensajes: 1
Chaco501 está en el buen camino
Confusion.

Hola Zacky, bueno se que mi pregunta sonara un poco tonta pero apenas inicio en esto de la progamacion de servos, ¿por que se le tiene que mandar 16 impulsos de 2ms para 90° y de 4ms para 180°, por que eh visto en otras imagenes que para 90° hay que mandarle 1.5ms y para 180° 2.5 ms.
Espero me puedas ayudar. Un Saludo.
Chaco501 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir
Publicidad: Conoce las ofertas de ANUNCIATE
Respuesta


Usuarios viendo actualmente este tema: 1 (0 usuarios registrados y 1 visitantes)
 
Herramientas

Permisos para publicar mensajes
No puedes crear nuevos temas
No puedes responder mensajes
No puedes subir archivos adjuntos
No puedes editar tus mensajes

Los BB code están Activado
Los Emoticones están Activado
El código [IMG] está Activado
El Código HTML está Activado

Ir al foro


!! ADVERTENCIAS !!: Las informaciones aquí publicadas NO CONTIENEN KEYS para la decodificación de ningún sistema: NO SON OPERATIVOS en sistemas SAT que precisen de su correspondiente suscripción.

ESTA TOTALMENTE PROHIBIDO EL USO DE ESTAS INFORMACIONES PARA LA MODIFICACIÓN O  DEFRAUDACIÓN DE SISTEMAS DE ACCESO CONDICIONAL.

ESTOS FOROS SON MODERADOS Y NO SE PERMITE LA PUBLICACIÓN DE INFORMACIONES ILEGALES POR PARTE DE LOS USUARIOS. EN CASO DE DETECTARSE ESTE TIPO DE INFORMACIONES, LOS USUARIOS SERÁN EXCLUIDOS DE ESTAS PÁGINAS.

USO DE COOKIES: Utilizamos COOKIES y de terceros para mejorar nuestros servicios y navegación por la web. Si continua navegando, consideramos que acepta su uso.  


La franja horaria es GMT +2. Ahora son las 22:59.


-------------------------------------------------------------------- --------------------------------------------------------------------

Powered por vBulletin™ Version 3.8.10
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.
Traducido por vBsoporte - vBulletin en español
Hispaservicios - J.G.C - 29112549T - Rio Cinca, 2, 30 (50180) SPAIN.
Todos los derechos reservados. Prohibida cualquier reproducion total o parcial.


Foros Patrocinados por anunciantes.