| Ver tema anterior :: Ver siguiente tema |
| Autor | Mensaje |
|---|
jrlc
Registrado: 19 Abr 2006 Mensajes: 73 Ubicación: Guatemala
| Publicado: 02/06/2006 6:35 am | | | Título: .:.:.Control de puertos con Visual.:.:. |
| Hola compañeros estoy haciendo un programa que me controla puertos pero yo lo que quiero hacer es un retras ya que voy a controlar un motor paso a paso y la velocidad es muy rapida y no funcionaria les mando el codigo para ver como recomiendo ponerle un retras y la sentencia se los agradeceria mucho
| Código: | Dim nivel(4) As Integer Private Sub Command1_Click() nivel(4) = 0 nivel(2) = 0 nivel(3) = 0 Image1.Visible = True Image2.Visible = False Image3.Visible = False Image4.Visible = False nivel(1) = nivel(1) + 1 If nivel(1) = 1 Then Timer1.Enabled = True: Timer1.Interval = 1000 Out &H378, 1 Else MsgBox "Usted ya esta en este nivel " End If End Sub Private Sub Command2_Click() nivel(4) = 0 nivel(1) = 0 nivel(3) = 0 Image2.Visible = True Image3.Visible = False Image4.Visible = False nivel(2) = nivel(2) + 1 If nivel(2) = 1 Then Out &H378, 2 Else MsgBox "Usted ya esta en este nivel" End If End Sub
Private Sub Command3_Click() nivel(4) = 0 nivel(2) = 0 nivel(1) = 0 Image3.Visible = True Image4.Visible = False nivel(3) = nivel(3) + 1 If nivel(3) = 1 Then Out &H378, 4 Else MsgBox "Usted ya esta en este nivel" End If End Sub
Private Sub Command4_Click() nivel(1) = 0 nivel(2) = 0 nivel(3) = 0 Image4.Visible = True nivel(4) = nivel(4) + 1 If nivel(4) = 1 Then Out &H378, 8 Else MsgBox "Usted ya esta en este nivel" End If End Sub
Private Sub Command5_Click() End End Sub
|
si se dan cuenta puse la siguiente sentencia
| Código: | Timer1.Enabled = True: Timer1.Interval = 1000
|
esta me llama al timer le puse un retraso de 1 s y no me funciono por que yo lo que queiro es generar ciclos y que mande cierta cantidad de bits a tal velocidad pero no me funciona pueden ayudarme? gracias de antemano Para que funcione tuve que bajar la libreria IO.DLL y cree un modulo el cual modifique el inport y el ourport por inp y out |
|
| Volver arriba | |
 |
Narv
Registrado: 03 Jun 2006 Mensajes: 15
| Publicado: 04/06/2006 4:00 pm | | | Título: |
| "[...] yo lo que quiero hacer es un retras ya que voy a controlar un motor paso a paso y la [...]"
que quieres hacer?? no te entiendo...
Lo que dijiste de enviar una cierta cantidad de bytes de golpe en un segundo... si quieres enviar muchos datos será una tarea difícil. Tienes que tener en cuenta la velocidad de tu puerto, porque no puedes enviar muchos datos por segundo. Es difícil (a veces) controlar la velocidad a la que envias los datos, pero lo que si puedes controlar es la cantidad de datos que envias. Es tan fácil como declarar una variable con un tamaño concreto. Si quieres declarar una variable que sólo pueda contener 20 Bytes, tendrias que declararla de la sigüiente manera:
Dim strVariable As String * 20
Bueno combinando esta variable y el timer podrias enviar 20 bytes cada segundo (siempre que no superes el "ancho de banda" disponible). Me he fijado que primero pones en marcha el timer y luego le dices el intervalo. No se si lo has hecho por algun motivo en especial pero te recomendaria que primero le fijes el intervalo y luego lo actives. |
|
| Volver arriba | |
 |
jrlc
Registrado: 19 Abr 2006 Mensajes: 73 Ubicación: Guatemala
| Publicado: 05/06/2006 4:10 am | | | Título: |
| No talvez no me explique lo que pasa es que yo le digo al puerto que me mande un ciclo de bits pero me los tira en micras de segundo y el motor paso a paso necesita una velocidad menor para trabajar sino se traba lo que quiero es retrasar el mandar cada serie binaria por lo menos 3 milisegundos para que tenga una respuesta aceptable.
ahhh y puse el timer antes de el mandato de datos para ver si retrasa pero no lo hace. |
|
| Volver arriba | |
 |
|
jrlc
Registrado: 19 Abr 2006 Mensajes: 73 Ubicación: Guatemala
| Publicado: 07/06/2006 5:54 am | | | Título: |
| Les cuento que ya pude hacer el retraso tuve que meter todo el codigo en el timer para que funcionara y ahi si hace el retraso por si a alguien lo quiere escribanme a mi correo |
|
| Volver arriba | |
 |
Requiem
Registrado: 11 Abr 2006 Mensajes: 685
| Publicado: 22/07/2006 12:33 am | | | Título: |
| No puedes conectar el motor directamente al puerto... Te has de hacer una placa controladora que te lea los datos del puerto en la velocidad q sea, con el formato q sea (le puedes enviar datos encriptados o con correccion de error si lo vieras necesario)....para luego darle las ordenes necesarias a los motores en el tiempo que ellos necesiten... Esto se transforma en un proyecto de electronica... Tiene 2 opciones: 1.Electronica total: Seria cogerte puertas logicas, pico y pala, y crearte un controlador hardware de los motores... 2.Semielectronica: Puedes usar un DSP, o un microcontrolador o un microprocesador... programarlo y usarlo como controlador...
La solucion mas elegante es la segunda por q todo te queda encapsulado en un chip, pero tal vez la mas sencilla de implementar si nunca has programado un PIC(por ejemplo), es q te curres un circuito con puertas logicas y lo implementes... mas guarro pero mas sencillo q no tener q aprender en asm de PIC.. La decision es tuya niño vaya bien Requiem |
|
| Volver arriba | |
 |
jrlc
Registrado: 19 Abr 2006 Mensajes: 73 Ubicación: Guatemala
| Publicado: 24/07/2006 6:07 am | | | Título: |
| mmm... pues la verdad vos ese proyecto ya lo presente hace como 2 o 3 meses loq ue hice fue un control con el timer retardando los pulsos de reloj y saque al puero bueno pues era OBVIO que no iba a conectar el stepper al puerto primero que los inductores siempre tienen un voltaje de retorno y eso quemaria el puerto yo lo que hice fue una interfase del hardware de la pc a mi proyecto y funciono muy bien  |
|
| Volver arriba | |
 |
|
cheroky
Registrado: 22 Sep 2005 Mensajes: 2279 Ubicación: Valladolid (España)
| Publicado: 24/07/2006 6:38 am | | | Título: |
| Buen post requiem.
| requiem escribió: | mas guarro pero mas sencillo q no tener q aprender en asm de PIC..
|
Recordar que los PIC se pueden programar en C, desconozco si eso tiene sus limitaciones en ese campo, pero desdeluego es mas comodo.
S2. _________________ La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí. |
|
| Volver arriba | |
 |
jrlc
Registrado: 19 Abr 2006 Mensajes: 73 Ubicación: Guatemala
| Publicado: 24/08/2006 4:54 am | | | Título: |
| | mm pues el chiste era que el elevador funcionara con pc |
|
| Volver arriba | |
 |
Requiem
Registrado: 11 Abr 2006 Mensajes: 685
| Publicado: 24/08/2006 6:54 am | | | Título: |
| Hola, Cheroky... los compiladores para PIC (al menos los q yo he visto) te generan un codigo totalmente guarro i eneficiente... Para q te hagas una idea... en mi facultad habia un proyecto de generar un compilador como dios manda para PIC...y aun estan en ello,jejjejeje Actualmente, si quieres eficiencia en un PIC, o lo programas en ASM o nada de nada... Vaya bien Requiem |
|
| Volver arriba | |
 |
|
cheroky
Registrado: 22 Sep 2005 Mensajes: 2279 Ubicación: Valladolid (España)
| Publicado: 01/09/2006 4:47 pm | | | Título: |
| Ajám, en fin, que son una guarrada, me gustaria conocer mas a fondo el porque... gracias por el dato.
S2. _________________ La cuestión no es si hay vida inteligente en otros planetas lejanos. La cuestión es si hay vida inteligente aquí. |
|
| Volver arriba | |
 |
javi_rubio
Registrado: 09 Ago 2006 Mensajes: 53 Ubicación: Barcelona
| Publicado: 09/09/2006 1:26 pm | | | Título: |
| Hola, A ver en C se pueden programar PICs, pero muy limitado. Pero si quieres hacer ajustes de tiempos eso es mejor que lo agas con asm. Vaya no estoy muy puesto, solo he hecho aplicaciones sencillas y creo que para uso sencillo es mucho mejor el asm.
Un saludo!! |
|
| Volver arriba | |
 |
|
|