Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?
15/03/2010 #221

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
hola, quisiera compartir un pequeño circuito para el control de un motor dc de un mini-dremel el cual fue compradro por ventas por tv, mi intencion es ver si me pueden echar una mano para controlar la velocidad del motor a traves de un pic12c/f509 y un uln2803. La idea principal es colocar 3 velocidades al motor las cuales pueden ser seleccionadas precionando un unico boton, al ser precionado una vez empieza en la velocidad mas baja al volver a precionar eleva la velocidad al segundo nivel y asi hasta el tercer y ultimo nivel luego al precionar por cuarta vez se apaga y queda en espera.Aqui les anexo la simulacion en proteus y el programa en basic. El problema que tengo es que no llego a obtener las 3 velocidades bien diferenciadas, o por lo menos es lo que observo en la simulacion.
15/03/2010 #222

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
Tienes que darle un tiempo de espera en cada una de las rutinas del giro del motor para que el pic detecte a que condicion va ,para que la respectiva salida sea la corespondiente por el comando PWM que utilizas.
15/03/2010 #223

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
tu dices de cuanto 50ms ?
15/03/2010 #224
Moderador

Avatar de Chico3001

Respuesta: Curso programacion de pic en bsic pro
Nop... 50mS se me hace muy poco tiempo... yo le daria de 2 a 5 segundos...
15/03/2010 #225

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
este seria mi aporte en como realizar las rutinas para el tiempo de respuesta del pic cuando de pulsa la tecla
'************************************************* ******************************
PULSADOR var PORTA.5 'Pulsador en el PORTA.5
TMP_VEL var byte 'Nombre de la variable
TMP_VEL = 50 'Tiempo de espera para el scroll de ondas
TMP_PUL var byte 'Nombre de la variable
TMP_PUL = 250 'Tiempo de espera tras pulsar
'************************************************* ******************************
Velocidad1:
; Aqui rutina de velocidad 1
GOSUB PULSADOR1
GOTO Velocidad1
'************************************************* ******************************
Velodidad2:
; Aqui rutina de velocidad 2
GOSUB PULSADOR2
GOTO Velocidad2
'************************************************* ******************************
velocidad3:
; Aqui rutina de velocidad 3
GOSUB PULSADOR3
GOTO velocidad3
'************************************************* ******************************
PULSADOR1:
PAUSE TMP_VEL 'Tiempo de espera para el PWM
IF PULSADOR = 1 THEN : PAUSE TMP_PUL : GOTO TRIANGULAR 'Pulsador en espera
RETURN 'Regresa al GOSUB
'************************************************* ******************************
PULSADOR2:
PAUSE TMP_VEL 'Tiempo de espera para de PWM
IF PULSADOR = 1 THEN : PAUSE TMP_PUL : GOTO SENOIDAL 'Pulsador en espera
RETURN 'Regresa al GOSUB
'************************************************* ******************************
PULSADOR3:
PAUSE TMP_VEL 'Tiempo de espera para el PWM
IF PULSADOR = 1 THEN : PAUSE TMP_PUL : GOTO CUADRADA 'Pulsador en espera
RETURN 'Regresa al GOSUB
'************************************************* ******************************
END
El Interruptor en PORTA.5 lo coloco como ejemplo

en esto seria asi :
GOTO TRIANGULAR =GOTO velocidad1
GOTO SENOIDAL=GOTO velocidad2
GOTO CUADRADA GOTO velocidad3
15/03/2010 #226

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
ok entendi algo, gracias por las respuestas, pero ahora como lo hago con un solo pulsador???
15/03/2010 #227

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
si te das cuenta en el programa es un mismo pulsador lo que hice fue crear rutinas para las tres pulsaciones que comentabas para las tres velocidades del motor al subirlo se me olvido correguir esto:

GOTO TRIANGULAR =GOTO velocidad1
GOTO SENOIDAL=GOTO velocidad2
GOTO CUADRADA GOTO velocidad3

porque era uno que habia diseñado para un frcuenciometro.
15/03/2010 #228

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
dale dejame hacerle las modificaciones y te aviso gracias
16/03/2010 #229

Avatar de mecatrodatos

Respuesta: Reloj digital (PIC-Decodificadores Parte 1)
BIen para no olvidar el tema y proyecto de nuestro amigo Cheyo la primera parte para el desarrollo del REloj digital con se explica el multiplexado y coneccion de display al PIC 16f628A como progrmas en Basic para activar los pines de I/O del PIC.
Archivos Adjuntos
Tipo de Archivo: pdf Multiplexado Parte 1.pdf (72,1 KB (Kilobytes), 387 visitas)
17/03/2010 #230

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
Hola amigos una prgunta como debo activar las resistencias pull up para el pic 16f877a en microcode se los agradeceria si me hechan una mano en eso por favor
24/03/2010 #231

Avatar de eserock

Respuesta: Curso programacion de pic en bsic pro
Hola Mecatrodatos
Espero tenga forma de ayudarme con esto, antes usaba el pic 16f648a y mandaba las entradas del puerto a a analogicas con la instruccion
CMCON = 7
Mi problema es ahora quiero programar lo mismo pero en el pic 16f886 y no me funcionan los puertos que son de entrada analogica , la pregunta seria ¿como declaro que los puertos sean digitales y no analogicos en este pic?
27/03/2010 #232

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
Busca en el Data Sheet los registros:
ANSELH REGISTER para configurar el PORTB del PIC.
ANSEL REGISTER para configurar el PORTA del PIC.

si no entendes te explicare como se realiza
27/03/2010 #233


Respuesta: Curso programacion de pic en bsic pro
buenas mira estoy haciendo un contador de pulsos que cada ves que detecte un cero me lo cuente estoy trabajando con el pin RB0 de un 16f876a, mi pregunta es como hago para que el me cuente pero dependiendo del flanco?, por que he visto que si coloco que cuente cada ves que el pin sea cero si esta pata queda mucho tiempo cero el sumara muchas veces. entonces quiero saber como cuento pero dependiendo del flanco he visto que utilizan el registro OPTION_REG pero quiero saber tambien como se habilita esto y ademas si eligiendo este modo todos los pines detectaran solo cambios por flanco?


el programa que estaba haciendo es este:

Define LCD_DREG PORTB
Define LCD_DBIT 4
Define LCD_RSREG PORTB
Define LCD_RSBIT 2
Define LCD_EREG PORTB
Define LCD_EBIT 3
TRISB = %00000011 ' en el puerto B coloco el pin 0 y el 1 como entradas y el resto como salidas
contador var byte ' Create adval to store result
contador = 0
Pause 500 ' Wait .5 second
loop:

Lcdout $fe, 1 ' Clear LCD
IF PORTB.0 = 0 THEN
Contador = CONTADOR + 1
ENDIF
pause 50
Lcdout "sumatoria: ", DEC contador ' Display the decimal value
Pause 100 ' Wait .1 secon
Goto loop ' Do it forever
End
28/03/2010 #234

Avatar de mecatrodatos

Respuesta: Curso programacion de pic en bsic pro
Que tal mira en la segunda pagina de curso hay proyectos de lcd (contador, reloj, cronometro):

http://www.forosdeelectronica.com/f2...58/index2.html

Los ejercicios cumplen con tus requerimientos
28/03/2010 #235


Respuesta: Curso programacion de pic en bsic pro
mecatrodatos dijo: Ver Mensaje
Que tal mira en la segunda pagina de curso hay proyectos de lcd (contador, reloj, cronometro):

http://www.forosdeelectronica.com/f2...58/index2.html

Los ejercicios cumplen con tus requerimientos
tu me perdonaras pero alli no veo que trabajen con flancos hacen lo mismo que yo
03/04/2010 #236


Respuesta: Curso programacion de pic en bsic pro
josb86 dijo: Ver Mensaje
buenas mira estoy haciendo un contador de pulsos que cada ves que detecte un cero me lo cuente estoy trabajando con el pin RB0 de un 16f876a, mi pregunta es como hago para que el me cuente pero dependiendo del flanco?, por que he visto que si coloco que cuente cada ves que el pin sea cero si esta pata queda mucho tiempo cero el sumara muchas veces. entonces quiero saber como cuento pero dependiendo del flanco he visto que utilizan el registro OPTION_REG pero quiero saber tambien como se habilita esto y ademas si eligiendo este modo todos los pines detectaran solo cambios por flanco?


el programa que estaba haciendo es este:

Define LCD_DREG PORTB
Define LCD_DBIT 4
Define LCD_RSREG PORTB
Define LCD_RSBIT 2
Define LCD_EREG PORTB
Define LCD_EBIT 3
TRISB = %00000011 ' en el puerto B coloco el pin 0 y el 1 como entradas y el resto como salidas
contador var byte ' Create adval to store result
contador = 0
Pause 500 ' Wait .5 second
loop:

Lcdout $fe, 1 ' Clear LCD
IF PORTB.0 = 0 THEN
Contador = CONTADOR + 1
ENDIF
pause 50
Lcdout "sumatoria: ", DEC contador ' Display the decimal value
Pause 100 ' Wait .1 secon
Goto loop ' Do it forever
End
Puedes intentar realizando esta variación:

lcdout $fe, 1 :limpia la LCD en el arranque

loop:
IF PORTB.0 = 0 THEN contar
GOTO loop

contar:
IF PORTB.0 = 0 THEN contar ;espera a que cambie el estado del PIN B0
PAUSE 200 ;retardo para evitar el rebote electrico
contador = contador + 1
pause 50
Lcdout "sumatoria: ", DEC contador
Pause 100
Goto loop
End
07/04/2010 #237


Respuesta: Curso programacion de pic en bsic pro
Estimados compañeros del foro:
Estoy construyendo un TinyProjector, la parte mecánica ya está resuelta, pero de programación se muy poco, con decirles que apenas hice funcionar un led intermitente.
En la web encontré el PDF del proyecto que estoy construyendo, tiene su código fuente en C, pero ese lenguaje nunca me gusto, así que acudo a los expertos de este tema para que me den una mano en traducir el código de esta página para pasarlo al bsic pro, estaba usando mikrobasic pero decidí usar bsic pro porque es mas sencillo.
De antemano muchísimas gracias y disculpen por colarme al tema de esta manera.
Página 30 y 43 de…
http://web.media.mit.edu/~stefanm/TinyProjector/TinyProjector.pdf
Espacialmente la página 108 y 113.
08/04/2010 #238

Avatar de Dario

Respuesta: Curso programacion de pic en bsic pro
hola chicos. yo por aqui de nuevo. bueno, primero le queria dar las gracias a mecatrodatos por ayudarme con lo del servo casero pero, no pude hacer que funcione... tal ves sea que no se como adaptar el programa a mi circuito... en fin... gracias de todas formas en este caso, les queria dejar un control remoto serie proporcional de pic a pic que diseñe. es de un solo canal pero con algunas modificaciones al programa se pueden lograr varios canales. lo que tiene de bueno este circuito, es que a diferencia del que postie anteriormente, cuando el receptor deja de recibir señal, los servos de sus salidas vuelven a cero. espero les sea de utilidad.
saludosss.
Archivos Adjuntos
Tipo de Archivo: rar control Serie.rar (62,6 KB (Kilobytes), 390 visitas)
12/04/2010 #239

Avatar de yager

Respuesta: Curso programacion de pic en bsic pro
alguien por fa como seria en picbasic pro esta rutina que es originalmente en PIC SIMULATOR IDE :
'Subrutina que llena el registro de dezplazamiento
escribo:
For col = 1 To 16
If aux.15 = 0 Then
data = 1
WaitUs 2 (supongo que es pause 200)
clock = 0
WaitUs 2
clock = 1
WaitUs 2
Else
data = 0
WaitUs 2
clock = 0
WaitUs 2
clock = 1
WaitUs 2
Endif
----> aux = ShiftLeft(aux, 1) <---- esta parte
Next col
Return
gracias de antemano
interesante proyecto mushito ,lastima que no pueda ayudarte :(
12/04/2010 #240

Avatar de J2C

Respuesta: Curso programacion de pic en bsic pro
Yager

Para: ----> aux = ShiftLeft(aux, 1) <---- esta parte

proba asi: ===> aux = aux << 1

La información respectiva de ayuda la encontraras dentro de Help ... Help Topics ... PICBASICPRO Basics ... Math Operators ... SHIFT

y para: ----> WaitUs 2 (supongo que es pause 200)

lo correcto seria: ===> PAUSEUS 2

Pero no lo tengo muy claro debido a que presenta restricciones de tiempos de pausa minimos según la frecuencia del Oscilador a Cristal. Solo te puedo confirmar que WaitUs 2 en el PicSimIde se refiere a una espera de 2 microSegundos.

Espero haber sido de ayuda. Saludos. JuanKa.-
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

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