Curso de programación de PIC en PICBasic Pro

hola buenas,saludos a todos y gracias de antemano.

estoy intentando hacer el codigo de un montacargas, o ascensor de 2 velocidades
de 4 paradas, y no se que hago mal, cuando hago una llamada, arranca subida y rapida, pero no pasa a lenta, y en bajada arranca en bajada pero no en rapida.

en fin llevo una semana y no hay manera, lo dicho gracias de antemano.

adjunto codigo/y proteus

saludos
 

Adjuntos

  • montacargas.rar
    20.1 KB · Visitas: 132
hola buenas,saludos a todos y gracias de antemano.

estoy intentando hacer el codigo de un montacargas, o ascensor de 2 velocidades
de 4 paradas, y no se que hago mal, cuando hago una llamada, arranca subida y rapida, pero no pasa a lenta, y en bajada arranca en bajada pero no en rapida.

en fin llevo una semana y no hay manera, lo dicho gracias de antemano.

adjunto codigo/y proteus

saludos

Hola...Revise un poco el programa y esquema que adjuntaste pero deberías explicarte con detalles cual es el funcionamiento "norma" para tí o sea que quieres que el diseño haga... en cuanto al programa solo para empezar en la rutina INICIO preguntas por el estado de dos pines del puerto b que lo tienes declarado como salida(no como entrada) y están con una resistencia y led a GND así que su estado sera indefectiblemente siempre "0"(¿para que preguntar entonces?). No tomas ningún recaudo para prevenir las señales espurras producto de la conmutación de los pulsadores respectivos y ya después me perdí en lo que quieres hacer cuando pasa algo con los pulsadores.
Amplia lo mas posible la información(tanto en los esquemas, programas, etc) para así facilitarle la tarea a los que queremos ayudarte.

Saludos.

Ric.
 
Hola,ricbevi, lo primero gracias por contestar.

Te comento, haber si me se explicar, es un ascensor con 4 pulsadores,(conectados al puerto a, p0,p1,p2,p3) cuando recibe una llamada,depende del pulsador, cargo unos datos en DATP(dato de parada),DATS(datos de pasar a velocidad lenta, cuando sube), DATB(datos de pasar a velocidad lenta cuando baja), con esos datos cargados comparo DATP, que es donde se encuentra el ascen. con el destino(llamada) y asi le digo si tiene que subir o bajar, imajinemos que sube, cundo se encuentre con el dato DATS tiene que caer veloc.rapida y entrar lenta y con el siguiente pulso que sera DATP, parar, por supuesto cuando esta en marcha no tiene que hacer caso a ninguna llamada.
Bueno eso es lo que intento, te dejo lo que e podido adelanar, a los pulsadores estan como entradas (trisa=%11111),a tambien cuando sube o baja tiene que parpadear el led correspondiente, que en proteus lo tengo como F_sube o F_baja, pero aun no lo he metido en programa.

gracias por molestarte

Saludos
 

Adjuntos

  • ASCENSOR2.rar
    713 bytes · Visitas: 132
....
Bueno eso es lo que intento, te dejo lo que e podido adelanar, a los pulsadores estan como entradas (trisa=%11111)...

En este lazo de tu programa al comienzo donde esta la rutina INICIO
PHP:
trisa=%11111
trisb=%00001100


symbol p0=porta.0
symbol p1=porta.1
symbol p2=porta.2
symbol p3=porta.3
symbol paro=porta.4
symbol fles=portb.0
symbol fleb=portb.1
symbol pulsS=portb.2
symbol pulsB=portb.3
symbol motora=portb.4
symbol motorb=portb.5
symbol motorr=portb.6
symbol motorl=portb.7
...


INICIO:
   if p0=0 and motorb=0 or motora=0 then dato0              
   if p1=0 and motorb=0 or motora=0 then dato1            
   if p2=0 and motorb=0 or motora=0 then dato2              
   if p3=0 and motorb=0 or motora=0 then dato3                
   goto inicio
Preguntas por el estado de "motorb=0" y "motora=0" para tomar una desicion pero estos se encuentran en el puerto B que lo tienes declarados como "trisb=%00001100" como salida....si el compilador entendiera lo que quieres hacer y los pasara a entrada los mismos en el circuito están con un led y resistencia a GND así que te reitero siempre su estado seria "Bajo" o "0" lógico como quieras llamarlo ya que no reciben alimentación alguna.
Si quieres saber el estado de los motores crea una bandera o "Flag" y ponla cuando enciendas los mismos a cero si están parados o a uno si están en marcha y en base a eso actuás en consecuencia.

Ric.
 
Buenas, necesito de una entrada, detectar el flanco ascendente, como seria la manera de programarlo, si alguien seria tan amable de poner algun ejemplo, lo agradeceria.

Gracias
 
Hola buenas tardes
Primero que nada una gran felicitación a todos los compañeros del foro, por compartir y ayudar a mantener este gran foro.
quiero hacer un contador de 2 Display 7 segmentos con la posibilidad de añadir hasta otros 2 mas pero con 2 ahorita seria bueno para un modo de aprendizaje.
el asunto es que no lo quiero hacer el Pic16F628A directo al display 7 segmentos
Forma_01.jpg


Tampoco con un decodificador 7447
Forma_02.jpg


la Forma que me gustaría hacerlo es con un Conversor Serial Paralelo 74HC164
Forma_03.jpg


de esa manera solo necesitamos usar 2 pines del Microcontrolador.
Por Favor si alguien me pudiera orienta o ayudar se lo agradeceria de todo corazon
Mientras yo sigo investigando mas a fondo
Gracias y seguimos en contacto
 
hola a todos, ando realizando pruebas para trabajar con servos pues me quiero hacer un brazo y empece con este programita pero no se que me que me quedo mal, al probarlo en el proteus funciona de maravilla pero al probarlo en el protoboard el servo solo hace ruidos y no avanza, alguien que me le de una miradita a ver que está mal por favor...
este es el código:
Código:
'****************************************************************
'*  Name    : control servo                                                                               *
'*  Notes   : con 16f628a                                                                                 *
'*  Mode    : con pulsadores                                                                             *
'****************************************************************

@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 
@ DEVICE pic16F628A, WDT_ON 

 
 centro VAR BYTE
 derecha var porta.0
 izquierda var porta.1
 centrar var porta.2
 salida var portb.1
 
 
trisb=0
PORTB=0

centro=150 'inicio variable en 150 
inicio:
pulsout salida,centro  
gosub pulsadores    
goto inicio

pulsadores:
if  centrar=0 then gosub centrado
if derecha=0 then gosub DER
if izquierda=0 then gosub IZQ
return

centrado:
pause 100
centro=150 
return

DER:
pause 100
centro=centro+1
return

IZQ:
pause 100
centro=centro-1
return
end
 
Última edición por un moderador:
Hola isaiasjes...
Si no te quieres complicar con mas integrados fuera del PIC, puedes utilizar el PUERTOB para manejar los siete segmentos de los display y el pin restante lo utilizas como entrada de pulsos y lo haces multiplexado (un display por cada pin del PUERTOA) con lo que puedes manejar 5 display en forma normal u ocho con el oscilador interno:cool:
 
Hola alejo278!!
muchas gracias por tu recomendación!!
el punto es que me gustaria hacerlo de la forma que te comento anteriormente mas que nada para ampliar los conocimientos y tener diversas opciones.
la forma del Conversor Serial Paralelo 74HC164 se me hace un buen reto para lograr
 
la forma del Conversor Serial Paralelo 74HC164 se me hace un buen reto para lograr
No es nada complicado, yo lo hice en ensamblador y no es difícil.
Y con las funciones predeterminadas de PBP es aún más fácil de hacerlo.
Las palabras clave para lograrlo en PICBasic, son:
DIG, LookUp y ShiftOut

Con DIG obtienes las unidades, decenas, centenas etc.
Con LookUp conviertes el resultado de DIG a código de 7 segmentos.
Y con ShiftOut envías los datos hacia los registros de desplazamiento.

Inténtalo no tiene complicaciones. (y)

Suerte.
 

Adjuntos

  • 16F628A & 74LS164 Sample.rar
    16.8 KB · Visitas: 309
No es nada complicado, yo lo hice en ensamblador y no es difícil.
Y con las funciones predeterminadas de PBP es aún más fácil de hacerlo.
Las palabras clave para lograrlo en PICBasic, son:
DIG, LookUp y ShiftOut

Con DIG obtienes las unidades, decenas, centenas etc.
Con LookUp conviertes el resultado de DIG a código de 7 segmentos.
Y con ShiftOut envías los datos hacia los registros de desplazamiento.

Inténtalo no tiene complicaciones.

Suerte.

Excelente D@rkbytes!!!
es lo que pretendo hacer lo mismo pero en picbasicpro!!
con los tips que me proporcionaste voy a hacer un Código haber que tal me va!!!
los avances los voy ir Posteando
Gracias y seguimos en contacto.
 
Buenas noches!!
Aquí las primeras pruebas que hice para aprender y conocer la Función (shiftout)
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                               'Comparadores Apagados
TRISB = 0                               'Puerto B Como Salidas
PORTB = 0                               'Limpiamos el Puerto B
'*******************************************************************************
CLOCK VAR PORTB.0                       'PORTB.0 con el nombre CLOCK
DATO_0 VAR PORTB.1                      'PORTB.1 con el nombre DATA_0
'*******************************************************************************
CLOCK=1                                 'Valor 1 para inicio del display
'*******************************************************************************
INICIO:                                 'Etiqueta de inicio
shiftout DATO_0,CLOCK,0,[252]           'Enviando el Numero 0
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[96]            'Enviando el Numero 1
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[218]           'Enviando el Numero 2
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[242]           'Enviando el Numero 3
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[102]           'Enviando el Numero 4
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[182]           'Enviando el Numero 5
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[190]           'Enviando el Numero 6
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[224]           'Enviando el Numero 7
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[254]           'Enviando el Numero 8
PAUSE 500                               'Espera de 500 milisegundos
shiftout DATO_0,CLOCK,0,[246]           'Enviando el Numero 9
PAUSE 500                               'Espera de 500 milisegundos
GOTO INICIO                             'Regresar a la etiqueta inicio
END                                     'Fin del Programa

ahora el segundo paso es añadir 2 0 3 display más para agregar los botones , y usar la funciones DIG, LookUp
les dejo la Simulación funcionando.
Gracias y Seguimos en contacto.

Segundo Ejemplo Usando LookUp Código:
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                          'Comparadores Apagados
TRISB = 0                          'Puerto B Como Salidas
PORTB = 0                          'Limpiamos el Puerto B
'*******************************************************************************
CLOCK VAR PORTB.0                  'PORTB.0 con el nombre CLOCK
DATO_0 VAR PORTB.1                 'PORTB.1 con el nombre DATA_0
dir var byte
dato var byte
'*******************************************************************************
CLOCK=1                            'Valor 1 para inicio del display
'*******************************************************************************
prog:
FOR dir=0 TO 9                     'para repeticiones de 0 a 9
LOOKUP dir,[252,96,218,242,102,182,190,224,254,246],dato 'toma uno por uno cada
                   'valor de la tabla constante y lo guarda en la variable dato
shiftout DATO_0,CLOCK,0,[dato]     'Enviando el Numero Segun el valor del conteo 
pause 500                          'Espera de 500 milisegundos
next dir                           'Seguir con el conteo de la variable
goto prog                          'Regresar a la etiqueta inicio
end                                'Fin del Programa

como verán el Código se redujo bastante y también la memoria así que recomiendo el segundo.
Seguimos trabajando ahora para hacerlo con 3 a 4 dígitos ya cada ves mas Cerca del objetivo. :D
Saludos y seguimos en contacto.
dejo la Simulación y 2 Archivos para que lo puedan probar y editar.
 

Adjuntos

  • Display-7-Seg-2-vias.zip
    11.3 KB · Visitas: 222
Última edición:
hola a todos, ando realizando pruebas para trabajar con servos pues me quiero hacer un brazo y empece con este programita pero no se que me que me quedo mal, al probarlo en el proteus funciona de maravilla pero al probarlo en el protoboard el servo solo hace ruidos y no avanza, alguien que me le de una miradita a ver que está mal por favor...
este es el código:
Código:
'****************************************************************
'*  Name    : control servo                                                                               *
'*  Notes   : con 16f628a                                                                                 *
'*  Mode    : con pulsadores                                                                             *
'****************************************************************

@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT 
@ DEVICE pic16F628A, WDT_ON 

 
 centro VAR BYTE
 derecha var porta.0
 izquierda var porta.1
 centrar var porta.2
 salida var portb.1
 
 
trisb=0
PORTB=0

centro=150 'inicio variable en 150 
inicio:
pulsout salida,centro  
gosub pulsadores    
goto inicio

pulsadores:
if  centrar=0 then gosub centrado
if derecha=0 then gosub DER
if izquierda=0 then gosub IZQ
return

centrado:
pause 100
centro=150 
return

DER:
pause 100
centro=centro+1
return

IZQ:
pause 100
centro=centro-1
return
end

Buenas Noches ferdy575!!

ya cheque tu Código y tenias algunas cosas que te faltaron como asignar los RA0,RA1,RA2 entradas
ya modifique el Código para que pruebes en el simulador y posteriormente grabando en el PIC16F628A:
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                               'Comparadores Apagados
TRISA = %00000111                       'Puerto RA0,RA1,RA2 Entradas Digitales
TRISB = 0                               'Puerto B Como Salidas
PORTA = 0                               'Limpiamos el Puerto A
PORTB = 0                               'Limpiamos el Puerto B
'*******************************************************************************
derecha var porta.0
izquierda var porta.1
centrar var porta.2
salida var portb.1
centro var byte 
'*******************************************************************************
centro=150 'inicio variable en 150 
'*******************************************************************************
inicio:
pulsout salida,centro  
gosub pulsadores    
goto inicio

pulsadores:
if  centrar=0 then gosub centrado
if derecha=0 then gosub DER
if izquierda=0 then gosub IZQ
return

centrado:
pause 100
centro=150 
return

DER:
pause 100
centro=centro+1
return

IZQ:
pause 100
centro=centro-1
return
end

Saludos y seguimos en contacto.
 

Adjuntos

  • ServoP.zip
    8.4 KB · Visitas: 91
Última edición:
Buenas Noches ferdy575!!

ya cheque tu Código y tenias algunas cosas que te faltaron como asignar los RA0,RA1,RA2 entradas
ya modifique el Código para que pruebes en el simulador y posteriormente grabando en el PIC16F628A:
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                               'Comparadores Apagados
TRISA = %00000111                       'Puerto RA0,RA1,RA2 Entradas Digitales
TRISB = 0                               'Puerto B Como Salidas
PORTA = 0                               'Limpiamos el Puerto A
PORTB = 0                               'Limpiamos el Puerto B
'*******************************************************************************
derecha var porta.0
izquierda var porta.1
centrar var porta.2
salida var portb.1
centro var byte 
'*******************************************************************************
centro=150 'inicio variable en 150 
'*******************************************************************************
inicio:
pulsout salida,centro  
gosub pulsadores    
goto inicio

pulsadores:
if  centrar=0 then gosub centrado
if derecha=0 then gosub DER
if izquierda=0 then gosub IZQ
return

centrado:
pause 100
centro=150 
return

DER:
pause 100
centro=centro+1
return

IZQ:
pause 100
centro=centro-1
return
end

Saludos y seguimos en contacto.

Excelente gracias por tu ayuda (y)
 
Buenas tardes!!
Finalmente termine el contador de 3 display 7 segmentos controlados por 1 PIC16F628A y 3 74LS164 o 74hc164 y 2 botones uno Incremental y el otro decremental.
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                             'Comparadores Apagados
TRISA = %00000011                     'Puerto RA0 RA1 Como Salidas                       
TRISB = 0                             'Puerto B Como Salidas
PORTA = 0                             'Limpiamos el Puerto A
PORTB = 0                             'Limpiamos el Puerto B
'*******************************************************************************
CLOCK VAR PORTB.0                     'PORTB.0 con el nombre CLOCK
DATO_0 VAR PORTB.1                    'PORTB.1 con el nombre DATA_0
BANDERA VAR BIT                       'Variable Bandera
CONTEO VAR word                       'Variable Conteo
UNIDAD var byte                       'Variable Unidad
DECENA var byte                       'Variable Decena
CENTENA var byte                      'Variable Centena
'*******************************************************************************
CONTEO = 0                            'Limpiamos la variable   
unidad = 0                            'Limpiamos la variable
decena = 0                            'Limpiamos la variable
centena = 0                           'Limpiamos la variable
shiftout DATO_0,CLOCK,0,[252,252,252] 'Enceramos los Display
'*******************************************************************************
INICIO:                               'Etiqueta de inicio
if PORTA.1 = 0 THEN SUMAR             'Si apretamos el boton incrementar 
if PORTA.0 = 0 THEN Restar            'Si apretamos el boton decrementar 
BANDERA = 0                           'Enceramos la variable Bandera
GOTO INICIO                           'regresamos a la etiqueta inicio
'*******************************************************************************
SUMAR:                                'Etiqueta Sumar
IF BANDERA = 1 THEN GOTO INICIO       'Si la variable Bandera tiene un valor 1
BANDERA = 1                           'le cargamos la variable Bandera valor 1
CONTEO = CONTEO+1                     'El valor de la variable conteo + 1
if conteo > 999 then conteo = 0       'Si Conteo es mayora a 999 conteo sera 0 
unidad = conteo dig 0                 'unidad tomara el primer digito de conteo
decena = conteo dig 1                 'decena tomara el segundo digito de conteo
centena= conteo dig 2                 'centena tomara el tercer digito de conteo
goto ENVIAR                           'ir a la etiqueta enviar
'*******************************************************************************
RESTAR:                               'Etiqueta Restar
IF BANDERA = 1 THEN GOTO INICIO       'Si la variable Bandera tiene un valor 1
BANDERA = 1                           'le cargamos la variable Bandera valor 1
if conteo = 0 then conteo = 1000      'si conteo es igual a 0 conteo sera 1000
CONTEO = CONTEO-1                     'El valor de la variable conteo - 1
unidad = conteo dig 0                 'unidad tomara el primer digito de conteo
decena = conteo dig 1                 'decena tomara el segundo digito de conteo
centena= conteo dig 2                 'centena tomara el tercer digito de conteo
goto enviar                           'ir a la etiqueta enviar
'*******************************************************************************
ENVIAR:                               'Etiqueta Enviar
if unidad = 0 then unidad = 252       'Si unidad es 0 unidad sera 252
if unidad = 1 then unidad = 96        'Si unidad es 1 unidad sera 96
if unidad = 2 then unidad = 218       'Si unidad es 2 unidad sera 218
if unidad = 3 then unidad = 242       'Si unidad es 3 unidad sera 242
if unidad = 4 then unidad = 102       'Si unidad es 4 unidad sera 102
if unidad = 5 then unidad = 182       'Si unidad es 5 unidad sera 182
if unidad = 6 then unidad = 190       'Si unidad es 6 unidad sera 190
if unidad = 7 then unidad = 224       'Si unidad es 7 unidad sera 224
if unidad = 8 then unidad = 254       'Si unidad es 8 unidad sera 254
if unidad = 9 then unidad = 246       'Si unidad es 9 unidad sera 246
'*******************************************************************************
if decena = 0 then decena = 252       'Si decena es 0 decena sera 252
if decena = 1 then decena = 96        'Si decena es 1 decena sera 96
if decena = 2 then decena = 218       'Si decena es 2 decena sera 218
if decena = 3 then decena = 242       'Si decena es 3 decena sera 242
if decena = 4 then decena = 102       'Si decena es 4 decena sera 102
if decena = 5 then decena = 182       'Si decena es 5 decena sera 182
if decena = 6 then decena = 190       'Si decena es 6 decena sera 190
if decena = 7 then decena = 224       'Si decena es 7 decena sera 224
if decena = 8 then decena = 254       'Si decena es 8 decena sera 254
if decena = 9 then decena = 246       'Si decena es 9 decena sera 246
'*******************************************************************************
if centena = 0 then centena = 252     'Si centena es 0 centena sera 252
if centena = 1 then centena = 96      'Si centena es 1 centena sera 96
if centena = 2 then centena = 218     'Si centena es 2 centena sera 218
if centena = 3 then centena = 242     'Si centena es 3 centena sera 242
if centena = 4 then centena = 102     'Si centena es 4 centena sera 102
if centena = 5 then centena = 182     'Si centena es 5 centena sera 182
if centena = 6 then centena = 190     'Si centena es 6 centena sera 190
if centena = 7 then centena = 224     'Si centena es 7 centena sera 224
if centena = 8 then centena = 254     'Si centena es 8 centena sera 254
if centena = 9 then centena = 246     'Si centena es 9 centena sera 246
shiftout DATO_0,CLOCK,0,[unidad,decena,centena] 'Enviando Numero de la variables 
goto inicio                           'ir a la etiqueta inicio
END                                   'Fin
Forma_final.jpg

aqui ´les dejo la simulacion y los archivos para que lo puedan modificar
Gracias y seguimos en contacto
 

Adjuntos

  • 3-Display-7-Seg.zip
    18.9 KB · Visitas: 223
Finalmente termine el contador de 3 display 7 segmentos controlados por 1 PIC16F628A y 3 74LS164 o 74hc164 y 2 botones uno Incremental y el otro decremental.
Felicidades!!, desde que vi tus primeras pruebas supe que lo lograrías. :aplauso:
Bien, como ya lo pudiste hacer, entonces ahora puedo subir mi programa.
Notarás que la programación es diferente y más simplificada para llegar al mismo objetivo.

Suerte.
 

Adjuntos

  • 16F628A Contador 0-999 74XS164.rar
    20.6 KB · Visitas: 285
Última edición:
Buenas Noches ferdy575!!

ya cheque tu Código y tenias algunas cosas que te faltaron como asignar los RA0,RA1,RA2 entradas
ya modifique el Código para que pruebes en el simulador y posteriormente grabando en el PIC16F628A:
Código:
'*******************************************************************************
' DEFINICIÓN DE FUSES Y OSILADOR
@ device  pic16F628A, intrc_osc, pwrt_on, wdt_off, mclr_off, lvp_off, protect_off
DEFINE OSC 4
'*******************************************************************************
CMCON = 7                               'Comparadores Apagados
TRISA = %00000111                       'Puerto RA0,RA1,RA2 Entradas Digitales
TRISB = 0                               'Puerto B Como Salidas
PORTA = 0                               'Limpiamos el Puerto A
PORTB = 0                               'Limpiamos el Puerto B
'*******************************************************************************
derecha var porta.0
izquierda var porta.1
centrar var porta.2
salida var portb.1
centro var byte 
'*******************************************************************************
centro=150 'inicio variable en 150 
'*******************************************************************************
inicio:
pulsout salida,centro  
gosub pulsadores    
goto inicio

pulsadores:
if  centrar=0 then gosub centrado
if derecha=0 then gosub DER
if izquierda=0 then gosub IZQ
return

centrado:
pause 100
centro=150 
return

DER:
pause 100
centro=centro+1
return

IZQ:
pause 100
centro=centro-1
return
end

Saludos y seguimos en contacto.

hola isaiasjea hoy tuve la oportunidad de probar el código que me revisaste pero igualmente siguen sin funcionarme los servos hasta creí que estaban malos pero los probé con un 555 y funcionan perfectamente no logro encontrar por que me estará fallando este código por fa ayúdame:(
ó si puedes sugiereme otro código que haga lo mismo...gracias...
 
Atrás
Arriba