Autor Tema: interesante (proyecto con pic y led)  (Leído 57682 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #60 en: 12 de Agosto de 2008, 14:10:44 »
Así es el microcode solo sirve para pbp  en protón no es necesario ya que el editor viene integrado.
El mikro basic  alguna  ves estuve tentada a utilizarlo tiene una  interfase muy llamativa
Pero al investigar  resulta que  tiene muchos bugs  por lo que no es muy confiable así que no te lo recomiendo.
No te apresures en comprar algo que no sabes  si te va a venir bien con la versión demo por ahora es suficiente.

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #61 en: 12 de Agosto de 2008, 14:11:41 »
Bueno esta es la corrección al ejercicio  según yo debería funcionar  dedícale tiempo para que entiendas en que estas mal  estas obligando al micro a  realizar procesos  similares  sin ningún sentido o fin practico.
Ojo  hay algunos cambios en en las conexiones de los puertos
E detectado cual es tu problema y es que no entiendes como funciona internamente un microcontrolador  hay que estudiar   como funciona un micro internamente (, puertos, registros  ets.) y al mismo tiempo el compilador uno va de la mano con el otro si te dedicas únicamente al compilador no la vas a hacer.
 Si de verdad te interesa dominar la programación de microcontroladores deja de pensar en el mejor amigó de tu novio y ponte a estudiar.
Este es un camino largo donde la mayor virtud es la paciencia es como mi gran master
 Me decía “Sandra un microcontrolador es como un niño de 3 años al que le tienes que decir que tiene que hacer”.   Un  algoritmo es tan tonto o inteligente como quien lo programa, no hay algoritmos malos solo malos programadores.




**********************definicion de variables*******************
 x var Byte  'variable del for
 nveces var Byte
 
buffer_boton1 var Byte  ' buffer usado por el boton



 
'************** defino alias a los diferentes puertos/pines***************
'Symbol boton1 = PORTB.0     'boton1 es mi unico pulsador
'symbol RB1 = PORTB.1       
'symbol RB2 = PORTB.2      'BR1,RB2 Y RB3 son mis 3 dip sw
'symbol RB3 = PORTB.3
Symbol boton1 = PORTB.4
Symbol led = PORTB.7      'defino LED en el puerto PORTB.7
 
'**********************definicion de puertos************************
TRISB = %00001111         'defino entrada de botones y todas salidas
PORTB = 0                 ' pongo el puerto a "0"
 
'*********************pongo las variables a "0"**********************
x=0        'inicio todas las variables en "0"


'*************************comienzo del programa********************

       
inicio:
       'pause 10
     
       Button  boton1,1,40,5,buffer_boton1,1,sw   
       GoTo inicio
sw:
    'WHILE 1=1
    nveces = PORTB.LowByte 'Nveces es igual ala parte baja del portb  rb0 a rb3 o en  binario de 0000 a 1111
     'if  RB1=0 and RB2=0 and RB3=0 and boton1=1 then   
      ' nveces=1
       'gosub titilar
        For x=1 To nveces        'enciendo  nveces el led
           led = 1
           pause 500
           led = 0
           pause 500
           Next
           x=0
       GoTo inicio
       End
       'endif
     'if  RB1=0 and RB2=0 and RB3=1 and boton1=1 then   
       'nveces=2
       'gosub titilar
       'endif
     'if  RB1=0 and RB2=1 and RB3=0 and boton1=1 then   
       'nveces=3
       'gosub titilar
       'endif
      'if  RB1=0 and RB2=1 and RB3=1 and boton1=1 then   
       'nveces=4
       'gosub titilar
       'endif
      'if  RB1=1 and RB2=0 and RB3=1 and boton1=1 then   
       'nveces=5
       'gosub titilar
       'endif
      'if  RB1=1 and RB2=0 and RB3=1 and boton1=1 then   
       'nveces=6
       'gosub titilar
       'endif
      'if  RB1=1 and RB2=1 and RB3=0 and boton1=1 then   
       nveces=7
       'gosub titilar
       'endif
      'if  RB1=1 and RB2=1 and RB3=1 and boton1=1 then   
       'nveces=8
       'gosub titilar
       'endif
       'WEND
         
             
 
'titilar:
     'For x=1 To nveces        'enciendo  nveces el led
           'led = 1
           'pause 500
           'led = 0
           'pause 500
           'Next
           'x=0
           'RETURN
          ' goto inicio   'si dejo este goto no es nesesario apagar y encender
                         'todo el dispositivo cuando cambie los dip sw de posicion,
                         ' si lo quito tendria que apagar el circuito y volver
                         ' a encenderlo para que el cambio de los dip sw surtan efecto
'End     




 
 


El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #62 en: 12 de Agosto de 2008, 22:27:49 »
hola tardes madrina,buenas tardes firepic buenas tardes atodos  :-/  asi es como funciona bien por que el ejemplo que tu me pusiste sandrita no trabaja bien(plan con maña verdad?) se confunde el portb .
aver que les parece en PROTON y adjunto el archivo para proteus


'***********************************************************
 Device = 16F84A
 XTAL = 4
      
'**********************definicion de variables*******************
Dim x As Byte  'variable del for
Dim nveces As  Byte
 
Dim buffer_boton1 As Byte  ' buffer usado por el boton

 

 
'************** defino alias a los diferentes puertos/pines***************

Symbol boton1 = PORTA.0
Symbol led = PORTA.1     'defino LED en el puerto PORTB.7
 
'**********************definicion de puertos************************
TRISA = %00000001
PORTA =0
TRISB = %11111111         'defino entrada de botones y todas salidas
PORTB = 0                 ' pongo el puerto a "0"
 
'*********************pongo las variables a "0"**********************
x=0        'inicio todas las variables en "0"


'*************************comienzo del programa********************

       
inicio:
       'DelayMS 10
     
       Button  boton1,1,40,5,buffer_boton1,1,sw   
       GoTo inicio
sw:
   
    nveces = PORTB  'Nveces es igual ala parte baja del portb  rb0 a rb3 o en  binario de 0000 a 1111
   
        For x=0 To nveces        'enciendo  nveces el led
           led = 1
           pause 500
           led = 0
           pause 500
           Next
           x=0
       GoTo inicio
       End

y no los voy a defraudar les prometo seguir leyendo y lendo y leyendo.......

saludos y besos  :g)


Las mujeres podemos cambiar al mundo.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #63 en: 13 de Agosto de 2008, 16:14:22 »
Hola  mi pequeña flor de  senpasuchilt pues por fin as comprendido huffffff ya puedo descansar en paz  por poco pensé en meterte el manual por las orejotas. :x :x
Pues lo de plan con maña la verdad es que no, debería funcionar así  :shock:
Nveces= portb.lowbyte  la idea de hacerlo así es que se puedan usar  la parte alta del portb  (rb4……rb7) para otra cosa e incluso como salidas.
Ya que asiéndolo así nveces=portb  todo el puerto b esta dedicado exclusivamente   a leer (todo el puerto de ve ser como entradas) y si se te ocurre conectar otros botones al resto del puerto ( RB4…….RB7) para otra función que no sea incrementar o decrementar  la variable nveces tendrías lecturas equivocadas y como principiante no sabrías por donde viene la falla.
Así que ojo como lo tienes ahora   nveces=portb  estas leyendo todo el puerto completo
Parte baja (rb0….rb3) y parte alta ( rb4….rb7) aunque no estés tomando en cuenta la parte  alta .como te digo no e mirado la simulación y no se si tienes 4  u 8 dip en port b
Pero de todos modos vale la explicación para que te quede mas claro.
Boy a revisar  en donde esta mi error.
No cave duda que al mejor cazador se le va la liebre.
Así es a leer a leer y al leer    no hay de otra.
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: interesante (proyecto con pic y led)
« Respuesta #64 en: 13 de Agosto de 2008, 16:54:34 »
Saludos!
Felicitaciones Kari, estás progresando mucho!  :-/

Este es un camino largo donde la mayor virtud es la paciencia es como mi gran master
 Me decía “Sandra un microcontrolador es como un niño de 3 años al que le tienes que decir que tiene que hacer”.   Un  algoritmo es tan tonto o inteligente como quien lo programa, no hay algoritmos malos solo malos programadores.


Sandrita, palabras sabias son las que has dicho. Estoy en todo de acuerdo contigo.
Por cierto, no sabía que microBasic tenía muchos bugs, no lo volveré a recomendar entonces. En realidad, como mencioné, no lo he usado casi... solo una miradita.

Kari, ya casi lo tienes... sigue estudiando y te harás tan experta como sandrita!
Ok se les aprecia, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #65 en: 13 de Agosto de 2008, 23:50:01 »
Pues bien karina revisando tu programa resulta que esta mal :mrgreen:, a si señorita  resulta que  el led  destella una ves mas que el valor indicado en la variable nveces  o sea que si a nveces le doy el valor de 1 el led destella 2 veces, si le doy el valor a nveces de 2 el led destella 3 veces así que checa el bucle del for que es donde esta el error.

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #66 en: 14 de Agosto de 2008, 13:48:30 »
hola madrina.hola a TODAS Y TODOS  :-/
asi es es madrina es que asi aprobecho todos los bits
si el dip es = 00000000 = 1 y no 0
si el dip es = 11111111 = 256 y no 255  :D
estuve buscando por la red algo acerca de lowbyte y no encontre nada claro.
tambien estuve haciendo pruebas  dejando "portb.lowbyte" y solo "portb" y aparentemente es igual
solo se pueden usar como salidas deifiendo el puerto pero no como entradas  por que entonces los toma como si fueran dipswitch
deja sigo buscando como como partir en 2  o mas el portb para poder conmutar 2  o mas variables diferentes
y otra pregunta cuantos ms es el maximo permitido para delayms?
por que ustedes ya me enseñaron como hacer un timer programable  :-/  con dip switch
con el mismo ejemplo solo cambiando esto:


For x=0 To nveces        'enciendo  nveces el led
           led = 1 
           delayms 10000  ' 10 segundos * nveces hasta  42.666 minutos
           led = 0
           'delayms  500     'quito esta linea y ya temgo timer
           Next
           x=0
       GoTo inicio
       End

si es permitido hacerlo asi? (de esto no espero una catedra como la que me ha dado solo unas cuanta lineas) por que abusando de su generosidad los voy a seguir molestando con todo lo demas de los fantasticos pic´s.
saludos y besos  :g)
PD: despues  les doy una sorpresa , agradable? desagradable? no se
bye.

Las mujeres podemos cambiar al mundo.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #67 en: 14 de Agosto de 2008, 14:19:32 »
Anda mujer a leer en el manual encuentras cual es el valor máximo para delayms 8)  creo recordar que puedes alcanzar tiempos considerablemente largos  pero si no te alcanza anidando rutinas con for puedes conseguir retardos de días meses años según lo que requieras.
Pero pero si  tu aplicación requiere tiempos muy exactos esta no es la técnica a seguir
Tendrás que emplear un rtc.
Anidando delays con el for en unas horas puedes tener retrasos incluso de minutos
Por lo cual no sugiero esta técnica
Respondiendo puntual mente a tu pregunta si es balido como lo tienes pero hay que pulirlo.
Sorpresa  :shock: mmmmmmm  ya se  estas embarazada :mrgreen:

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: interesante (proyecto con pic y led)
« Respuesta #68 en: 14 de Agosto de 2008, 14:28:03 »
Anda mujer a leer en el manual encuentras cual es el valor máximo para delayms 8)  creo recordar que puedes alcanzar tiempos considerablemente largos 

Hola:

Como te lo dice, a leer el manual, en este caso solo mira la ayuda, es más clara que el agua:

Citar
Syntax

DELAYMS Length
 
Overview

Delay execution for length x milliseconds (ms). Delays may be up to 65535ms (65.535 seconds) long.

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #69 en: 14 de Agosto de 2008, 20:24:46 »
perdon,perdon no pense que seria identico que "pause" en pbp y acabo de  bajar el manual de proton+  :lol:   (meresco otro jalon de orejas)
 gracias LordLafebre varias veces pense que los dioses no se comunicaban con los mortales pero este post hecha por tierra mi teoria  :D  gracias espero no sea la unica vez que responda las plegarias de los mortales .
bye  :g)
Las mujeres podemos cambiar al mundo.

Desconectado KARINA83

  • PIC12
  • **
  • Mensajes: 50
Re: interesante (proyecto con pic y led)
« Respuesta #70 en: 14 de Agosto de 2008, 21:13:21 »
haaaa y por cierto no he encontrado nada al respecto de partir el port
ahora si bye.  :g)
Las mujeres podemos cambiar al mundo.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: interesante (proyecto con pic y led)
« Respuesta #71 en: 14 de Agosto de 2008, 21:17:25 »
Hola:

Pero bien puedes utilizar bucles anidados como te lo recomienda Sandra, solo debes tener en cuenta el número de iteraciones y el tiempo que le asignes al comando Delayms, por ejemplo:

For i=0 to 9
    delayms 100
next i

ese bucle tiene 10 iteraciones, desde 0 hasta 9, en cada iteración hay unretardo de 100ms, como son 10 iteraciones, entonces 10*100=1000 ms

Así puedes lograr retardos de varios, varios segundos, horas, etc.

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #72 en: 15 de Agosto de 2008, 18:16:23 »
Así es pequeña a veces los dioses tocan tierra y se mezclan entre los mortales 8) aun que hay algo que no sabes ellos todo lo miran todo lo escuchan están en todas partes :shock:
Bueno volviendo a nuestro asunto para que practiques por ahora esta bien  lo de anidar for  pero existe una mejor forma que es utilizando el taimer del pic en tu caso  el f84 tiene un único taimer que cuenta de 0 a 255 te suena??.
Y la mejor forma de hacerlo es con un rts pero para esto hay que manejar la comunicación serial y algún protocolo como i2c spi,
Pero por ahora olvídate de esto porque si pari gemelos para que me entendieras lo de port b
Con esto me matas.

Sorpresa sorpresa me encantan las sorpresas anda niña cuéntame ya que me matas
El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #73 en: 16 de Agosto de 2008, 15:39:24 »
Karina gracias a tu promoción las lecturas del hilo se está incrementando así que para estar a la altura  vas a tener que ponerte  a trabajar 8)

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas

Desconectado sandra

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 374
Re: interesante (proyecto con pic y led)
« Respuesta #74 en: 19 de Agosto de 2008, 13:05:02 »
Este ejercicio súper básico demuestra como configurar un puerto como salida.
Este ejerció muestra por portb una cuenta ascendente en binario de 0 a 255
Al terminar portb.0 parpadea tres beses y continua con la cuenta de forma indefinida
Este ejercicio complementa los anteriores.
De esta manera se puede entender como configurar  el puerto b  como puerto de entrada o salida

El pesimista se queja del viento
El optimista espera que cambie
El realista ajusta las velas


 

anything