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


Respuesta: Curso programacion de pic en bsic pro
Código:
define  OSC 4 ' se define el tipo de oscilador a usar

Define  LCD_DREG        PORTD ' De aqui a->
Define  LCD_DBIT        4
Define  LCD_RSREG       PORTD
Define  LCD_RSBIT       2
Define  LCD_EREG        PORTD
Define  LCD_EBIT        3  ' <- aqui se definen lo pueros del LCD

Define  ADC_BITS        10     	' De aqui a->
Define  ADC_CLOCK       3     	
Define  ADC_SAMPLEUS    50  '<- se define como se a manejar el conversor analogico a digital  	

TrisB=%11111111 ' se definen todos los puertos como entrada
TrisC=%00000000 ' se definen todos lo puertos como salida

Portc=%110000 ' se le dice que lel bit 4y5 se inicialicen en alto los demas en bajo

SensA   var word	'de aqui a ->				
SensB   var word
AStep   Var word '<- a aqui se declan la variables en tipo word o doble byte		

ADCON1 = %10000010	' se define el puertoA esto se ve en la tabla del Datasheet de cada uC
astep=0	' se inicializa variable  astep=0		
Pause 500  ' se hace una pausa de 500 milisegundos

     		
Inicio: ' se crea una etiqueta 
 if portb.0=1 then  ' si se pulsa la tecla colocada en Mueve entonces
  if portb.1=0 then astep=Astep+1 ' aumenta un paso si el boton derecha esta sin presionar
  if portb.1=1 then                      'si no
   if astep<>0 then astep=Astep-1 ' entonces verifica que no este en el primer paso si no es asi disminuye
  endif                                       ' un paso esto es para dar hacia la derecha o izquierda
  if portb.2=0 then gosub mueveh 'si el pulsador Hall/full esta desactivado se va a la rutina mueveH 
  if portb.2=1 then gosub muevef  ' si el pulsador Hall/full esta activado se va a la rutina MueveF
  if portb.3=0 then Lcdout $fe,1,"Value A:", DEC astep ' si el pulsador senece va a desplegar en Decimal
                                                                         ' el valor de Astep... osea el numero del paso en
                                                                         ' la secuencia de 8 pasos en caso de ser Full
                                                                        ' o 4 en caso de ser Half
 endif              
 if portb.3=1 then gosub adc ' si el pulador sense esta en alto entonces se va a la rutina ADC
Goto inicio ' se hace un bucle      				
End ' se termian el codigo
Hasta ahi se entiende...?????
10/08/2010 #342


Respuesta: Curso programacion de pic en bsic pro
Mas claro ni el agua, Entendido.
Gracias
10/08/2010 #343


Respuesta: Curso programacion de pic en bsic pro
Código:
MueveF: ´esta es la subrutina de medio paso o sea solo son 4 pasos
 if astep>=5 then astep=1 ' si el paso es mayor o igual a 5 se inicia la secuencia en 1 porque nada mas 
                                    ' son 4 pasos esto sirve cuando gira a la derecha
 if astep<=0 then astep=4 'pero si esta girando a la izq si el paso llega a 1 se va a 4
 if astep=1 then portc=58 ' aqui se manda la secuencia en decimal al puertoc haz la conversion en binario
 if astep=2 then portc=54 ' de cada uno de estos valores y te daras cuenta en que orden los manda...
 if astep=3 then portc=53 ' el 58,54,53,57
 if astep=4 then portc=57
 pause 100 ' se hace una pausa para que no vibre el motor y le de chance de dar el sig. paso

return

MueveH: ' esto es lo mismo que lo anterior pero en 8 pasos
 if astep>=9 then astep=1 ' aqui definimos igual los linites de los pasos en el contador
 if astep<=0 then astep=8 'y aqui
 if astep=1 then portc=17 ' haz la conversion en binario del 17,57, 40...etc y te daras cuenta como es la
 if astep=2 then portc=57' secuencia
 if astep=3 then portc=40
 if astep=4 then portc=58
 if astep=5 then portc=18
 if astep=6 then portc=54
 if astep=7 then portc=46
 if astep=8 then portc=53 
 pause 100 ' hace una pausa en cada paso para que termine de dar el paso si  no nada mas vibra el motor

return

ADC:
 ADCIN 0, SensA ' toma la lectura de la corriente en la resistencia sensa			
 ADCIN 1, SensB	' en la sensb		
 Lcdout $fe,1,"Value A:", DEC sensa," B:",Dec sensb ' el valor lo convierte en decimal DEC  y lo desplega
Return
Se entendio....

FIN....
11/08/2010 #344


Respuesta: Curso programacion de pic en bsic pro
Muchas gracias compañeros, he puesto en práctica lo de los condensadores pero sigo notando el mal comportamiento, lo que me parece extraño es que funcione bien cuando se programe para controlar un solo pin mientras que al tratar de hacerlo con otros, no funciona bien. También puedo darme cuenta del ruido pues coloqué un led en la salida del módulo receptor y éste parpadea con swicheos, bajones de luz, etc sin afectar los pines programados, entonces será investigar más a fondo y estar atento aquí en el foro porque lo que yo pretendía era colocarselo a mi moto para activar una alarma y un bloqueo de la llanta trasera pero... ahora lo veo como peligroso, imaginen una alta velocidad y un bloqueo espontáneo con una tractomula detrás!!!.
11/08/2010 #345


Respuesta: Curso programacion de pic en bsic pro
he puesto en práctica lo de los condensadores pero sigo notando el mal comportamiento,
mmm... se pone interesante que pic estas usando???? ya lo mencionaste???

hay algo raro con el cmcon=7

porque lo pusiste????

lo del bloqueo de la llanta si me parece peligroso pero podrias bloquar la corriente o la gasolina o que se yo!!!! y lo mas importante el saber que esta pasando....
11/08/2010 #346


Respuesta: Curso programacion de pic en bsic pro
Hola amigo Lubeck,
Yo siempre utilizo el 16f628a. Francamente no sé a qué se debe el problema, en una ocasión anterior cuando pretendía utilizarlo para mostrar los números de un teclado, el pin a5 que es el mclr, no lo dejaba funcionar bien, nuestro compañero mecatrodatos me dió la mano con eso, por tal motivo es que dudo que sea ruido pero tampoco puedo asertar con la respuesta al problema.

El cmcon para la conversión análogo a digital de portA será lo que está afectando???
A probar enseguida.
11/08/2010 #347


Respuesta: Curso programacion de pic en bsic pro
edite mi mensaje viste lo del cmcon=7

porque lo pones???

no domino muy bien el puertoA pero creo que lo estas poniendo como comparador y debe ser digital....

revisamos eso???? o estas seguro que asi va???
11/08/2010 #348


Respuesta: Curso programacion de pic en bsic pro
Si claro,pero para este pic el cmcon=7 apaga los comparadores y los convierte a digitales, además quité la línea y probé, la falla se sigue manifestando, sigo interesado en el bloqueo para complicarle la vida a los ladrones, si se diera el caso, trabándoles la moto para que no puedan llevarsela apagada.
11/08/2010 #349

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
dale un tiempo variable con la entrada de los pulsadores hazle contar los pulsos y eso le haces proporcional al tiempo que vayan cambiando los bits de salida para cada bobina del motor
11/08/2010 #350


Respuesta: Curso programacion de pic en bsic pro
Saludos atricio

... creo que estas hablando del otro caso de los motores.... disculpa si me equivoco...

el problema de viggiani es este
http://www.forosdeelectronica.com/f2...tml#post342750

viggiani
y si pruebas cambiarlo de puerto al B o C u otro que no sea el A

dejame verificarlo pero segun yo es con el ADCON1 con lo que se define si es digital...

Viggiani...

Tienes toda la razon es CMCON=7 para ese micro...
descartado eso...

hablas de una transmision de RF, no???
ya descartaste que sea eso verdad.... o sea que no esta conectado cuando se vuelve inestable...
12/08/2010 #351


Respuesta: Curso programacion de pic en bsic pro
Pues no sé si serán los módulos rf los que presenten problema (FSI000A-CDR03A), hasta ahora los veo funcionando bien y como te comenté anteriormente, cuando programo para un solo pin parece funcionar bien por lo que creo que el problema no es tan trivial como parece. Voy a probar con un solo pin durante todo el día a ver si se mantiene y lo estoy comentando aquí nuevamente esta noche, de lo contrario, pues me tocaría desechar la idea del bloqueo con rf y pensarlo con teclado directamente en la moto para mayor seguridad.

Gracias.
13/08/2010 #352

Avatar de atricio

Respuesta: Curso programacion de pic en bsic pro
ahi si que me declaro ignorante no se como debenhacer eso lo que yo he hecho es con los modulos de rf mover a un robot como un control remoto pero solo a un solo canal no en diferentes si alguien si lo sabe seria bueno q lo poste por favor
13/08/2010 #353


Respuesta: Curso programacion de pic en bsic pro
Pues eso si que sería bueno, he probado el mismo código para el pic16f819 y con sorpresa observo el mismo problema, funciona bien para un canal, el otro se apaga en menos de 10 minutos, le dejo esa inquietud a los más expertos porque ya me cansé de darle por un lado y el otro sin buenos resultados, entonces no sé cómo será para implementar el ejemplo que brinda el señor Christian Bodington en su edición gratuita de "Basic para Microcontroladores Pic", específicamente el proyecto N°41 sobre un control de 8 canales, cuya única diferencia está en que utiliza la instrucción toggle (que usé con el mismo resultado) y el pic16f877.
13/08/2010 #354


Respuesta: Curso programacion de pic en bsic pro
Pues yo no soy experto pero yo haria una prueba con esto en el codigo si no funciona casi podria asegurar que el codigo no es... con reserva de la cuestion de definir los osciladores...
Código:
TX-------
Include "modedefs.bas" 
CMCON=7  
TRISA=6
TRISB=0
BOTON1 var PORTA.1
BOTON2 VAR  PORTA.2
I VAR BYTE ' no se para que la declara
C VAR BYTE ' no se para que la declara
LED1 VAR PORTA.3
LED2 VAR PORTA.4

INICIO: 
if boton1=0 then gosub ACTIVAR_ALARMA 
IF BOTON2=0 THEN GOSUB  OPCION_BLOQUEO
goto INICIO 

ACTIVAR_ALARMA:
serout portb.0,N2400,[$FF,$FF,"OK","C"] 
return

OPCION_BLOQUEO:
serout portb.0,N2400,[$FF,$FF,"OK","D"]
return

end

RX------
Include "modedefs.bas"           'para usar serin
CMCON=7
TRISB=%11110011
     
datos var byte 
LED1 var PORTB.2
LED2 VAR PORTB.3 
ENTRADA VAR PORTB.0
X VAR BYTE ' no se para que  define esta variable
 
inicio:
serin ENTRADA,N2400,["OK"],datos 
If datos="C" then gosub ACTIVACION_ALARMA
IF DATOS="D" THEN gosub ACTIVACION_BLOQUEO
Goto Inicio

ACTIVACION_ALARMA:  
if LED1=0 then 
high led1
else
low led1
endif
return

ACTIVACION_BLOQUEO:
if LED2=0 then 
high led2
else
low led2
endif
return
end
tienes algun esquema????
13/08/2010 #355

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
hola, buenas quisiera dar un pequeño aporte y ver si me pueden dar sus criticas constructivas al respecto y por supuesto si hay alguna mejora.
se trata de un minutero programable muy parecido al de un microhondas, me lo mandaron como un proyecto de la univ. con compuertas y demas pero quise no enrollarme y hable con el profe y me permitio utilizar un pic siempre y cuando cumpliera el cometido osea programar un tiempo en minutos y que al culminar osea llegar a cero este envie una alarma pues como ven es bien sencillo mas el programita me salio algo largo y me costo ya que a pesar de tener conosiendo al pic mas de un año a penas he logrado utilizar unos 30 comandos del pbp de los mas de 50 que se pueden usar. mas que todo debido a que no he tenido tiempo para ponerme mas de lleno con el pbp. en fin el programa, me gustaria saber si esta bien o se puede mejorar utilizando otras instrucciones...de atemano muchas gracias...
Archivos Adjuntos
Tipo de Archivo: rar minutero.rar (23,4 KB (Kilobytes), 322 visitas)
13/08/2010 #356


Respuesta: Curso programacion de pic en bsic pro
Para Lubeck,
No, no tengo esquema pero es bien básico pues lo único que tengo conectado a las salidas en el receptor son un par de leds, nada más, éste sería el punto de partida para mi pequeño proyecto.

Estoy probando los cambios que sugeriste y creo que funciona efectivamente, parece ser el retorno a inicio lo que afectaba la segunda salida, de cualquier forma mañana lo someto a prueba durante un largo periodo y con mucho ruido.

Por cierto, trisa=6 que significa?

Muchas gracias.
13/08/2010 #357

Avatar de HADES

Respuesta: Curso programacion de pic en bsic pro
viggiani1975 dijo: Ver Mensaje
Para Lubeck,
No, no tengo esquema pero es bien básico pues lo único que tengo conectado a las salidas en el receptor son un par de leds, nada más, éste sería el punto de partida para mi pequeño proyecto.

Estoy probando los cambios que sugeriste y creo que funciona efectivamente, parece ser el retorno a inicio lo que afectaba la segunda salida, de cualquier forma mañana lo someto a prueba durante un largo periodo y con mucho ruido.

Por cierto, trisa=6 que significa?

Muchas gracias.
eh, saludos compañero sera que podrias darme algunos datos??? si es claro que no los has dado ya por ejemplo:

que modelo de pic estas usando?
que cristal estas usando?
condensadores de cuantos picofaradios estas usando y cuantos para el cristal?

saludos!

HADES

reyvilla dijo: Ver Mensaje
hola, buenas quisiera dar un pequeño aporte y ver si me pueden dar sus criticas constructivas al respecto y por supuesto si hay alguna mejora.
se trata de un minutero programable muy parecido al de un microhondas, me lo mandaron como un proyecto de la univ. con compuertas y demas pero quise no enrollarme y hable con el profe y me permitio utilizar un pic siempre y cuando cumpliera el cometido osea programar un tiempo en minutos y que al culminar osea llegar a cero este envie una alarma pues como ven es bien sencillo mas el programita me salio algo largo y me costo ya que a pesar de tener conosiendo al pic mas de un año a penas he logrado utilizar unos 30 comandos del pbp de los mas de 50 que se pueden usar. mas que todo debido a que no he tenido tiempo para ponerme mas de lleno con el pbp. en fin el programa, me gustaria saber si esta bien o se puede mejorar utilizando otras instrucciones...de atemano muchas gracias...
Disculpa que lenguaje estas usando pregunto porque decis que usas pbp
entonces???

saludos!

HADES
14/08/2010 #358


Respuesta: Curso programacion de pic en bsic pro
Saludo amigo Hades,

Utilizo el 16f628a
Cristal de 4Mhz
cerámicos para el cristal de 18pf

Utilizo una fuente variable con lm317 con filtros de 2500 mf que parece funcionar bien y un regulador en el board de 5v con otro pequeño filtro de 470mf y uno de 100nf sobre las entradas del pic.
14/08/2010 #359


Respuesta: Curso programacion de pic en bsic pro
Por cierto, trisa=6 que significa?
Utilizas el puerto 1 y 2 del A como entrada

asi que:
TRISA=6 es lo mismo que TRISA=%0000110

Saludos
14/08/2010 #360

Avatar de reyvilla

Respuesta: Curso programacion de pic en bsic pro
Utilizo el picbasic pro "pbp"
¿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.