Autor Tema: Contar 10 pulsos y encender led  (Leído 23064 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
Contar 10 pulsos y encender led
« en: 10 de Septiembre de 2005, 16:22:00 »
Hola a todos


Tengo una inquietud, quiero contar por ejemplo 15 pulsos en RB0 y una vez contados se encienda un led en RB7, alquien me puede dar una idea o algun codigo de ejemplo.

Saludos
Morfeus

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #1 en: 11 de Septiembre de 2005, 00:04:00 »
Hola:

quieres contar pulsos generados por ti desde el pic...? o quieres contar pulsosprovenientes de algun circuito al pic....?

Si quieres generar tu los pulsos desde le pic revisa el tema que tu abriste con el titulo EXCELENTE alli ya te pusieron una respuesta o si quieres contar pulsos provenientes desde afuera comentame un poquito mas que es lo que quieres hacer exactamente... que te envia esos pulsos por ejemplo porque podrias utilizar funciones como COUNT ...

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: Contar 10 pulsos y encender led
« Respuesta #2 en: 11 de Septiembre de 2005, 19:49:00 »
Hola LordLafebre,

Mira lo que yo quiero es contar 10 pulsos mediante un pulsador conectado a RB0 y que unas vez contados se encienda RB7, además quiero que los pulsos que se vayan contando se almacenen en la eeprom para evitar que el conteo empiece de nuevo si por ejemplo quito el voltaje al pic.

Gracias

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #3 en: 11 de Septiembre de 2005, 20:21:00 »
Hola:

pues dejame te hago un ejemplo en proteus y mañana en la mañana hora de Ecuador lo cuelgo... ahora estoy un poco ocupado pero mañana prometo pasarte el ejemplo...

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #4 en: 11 de Septiembre de 2005, 20:59:00 »
Hola:

Pues no llegue hasta mañana aqui te paso el codigo:

Es una resistencia a VCC y el pulsante a GND entre la resistencia y el pulsante va a RB0, de tal manera que cuando pulsas se produce un cero...

Codigo:
Cont    var byte

TRISB=%00000001
cont=0
PORTB=0

read 0,cont

loop:
    if PORTB.0=0 then
        cont=cont+1
        write 0,cont
        pause 200
        if cont = 10 then
            high 7
            cont=10
        endif
    endif
    goto loop
end


Solo cuenta hasta diez y luego se queda encendido, no me has dicho que quieres encerarlo y si es asi cuando seria...?


Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #5 en: 13 de Septiembre de 2005, 23:07:00 »
Hola:

Pues el codigo que te e puesto ya almacena los datos en la eeprom... y con lo de encerar quiero decir que cuando quieres que vuelva a cero el conteo... xq en ese ejemplo solamente vas a poder contar una sola ves hasta 10 y como veras en el codigo cuando el valor excede a 10 le asigno nuevamente 10... osea que si pulsas unas 5 veces, apagas el circuito y lo enciendes tendras que pulsar 5 veces mas para que el led se prenda, pero una ves llegado hasta alli aun asi apagues el circuito una ves que lo vuelvas a conectar el contador va a estar en 10 y el led va a estar prendido... por eso te decia que cuando quieres que el valor del contador retorne a cero para que puedas nuevamente hacer el conteo de 10 pulsaciones para encender el led nuevamente... Sonrisa Gigante

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: Contar 10 pulsos y encender led
« Respuesta #6 en: 15 de Septiembre de 2005, 19:13:00 »
Hola LordLafebre,

A ver si te entiendo, si por ejemplo el conteo va en 7 y apago el pic, cuando lo prenda este va seguir el conteo en 7 hasta llegar a 10 y prende el led cierto?.

La idea es que se almacene en la eeprom el ultimo conteo y cuando se encienda el pic este arranque desde este ultimo cuando termine encienda el led.

Estoy muy agradecido contigo por la ayuda que me has dado.

Saludos

Morfeus

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #7 en: 15 de Septiembre de 2005, 22:49:00 »
Hola:

Lo que preguntas es cierto.

Ahora lo que no entiendo es si el codigo te sirve o no, o quieres hacer otra cosa...

Esta claro lo que te estoy diciendo...? con tu ultimo comentario me confundiste un poco y no se si es una pregunta... Sonrisa Gigante, pues como decia ese ejemplo ya almacena los datos en la eeprom, en que quieres aplicar este ejemplo o para que.... Sonrisa Gigante

Te sirve esto...? ya esta acabado...? RollEyes

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #8 en: 18 de Septiembre de 2005, 12:22:00 »
Hola:

Pana morfeus desde que puse el ejemplo te comente que ya guarda en la eeprom el numero de veces que ha contado, esto no lo he simulado sino ya lo he probado en un protoboard, hice lo siguiente:

Alimente el circuito y pulse 4 veces y desconecte el circuito, le quite la alimentacion y como se registro en la eeprom el valor de 4 lo que hace nuevamente al conectar el circuito es contar 6 pulsos mas que es lo que le falta para llegar a 10 y encender el led, has probado esto ya o no todavia...? pruebalo y comentame que te parece ok? Sonrisa Gigante

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: Contar 10 pulsos y encender led
« Respuesta #9 en: 18 de Septiembre de 2005, 14:43:00 »
Hola amigo,

Pues te comento que monte el circuito pero hay algo que está mal porque cuando lo apago y pulso no sucede nada y lo he revisado una y otra vez. Voy a probarlo de nuevo y te cuento. Perdona la molestia.

Saludos

morfeus

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #10 en: 19 de Septiembre de 2005, 22:17:00 »
Hola:

Que pena contigo pana morfeus, cometi un error mas que grande me acabo de dar cuenta que el codigo que puse arriba no es el que te sirve ese es el primero y el que estaba haciendo las primeras pruebasAvergonzado.... el que te pongo a continuacion es el que te va a servir y por si las dudas este hoy lo probe y lo reprobe y dunciona ok, ahora si no hay pretextos.... ji ji ji Sonrisa Gigante, una disculpa nuevamente...Avergonzado

Codigo:
define OSC 4

Cont    var byte
temp    var byte

TRISB=%00000001
PORTB=0

eeprom 0,[0]

read 0,temp

if temp=0 then grabar
read 1,cont
if cont >= 9 then
    gosub EncenderLED
endif

loop:
    if PORTB.0=0 then
        cont=cont+1
        write 1,cont
        pause 200
        if cont >= 9 then
            gosub EncenderLED
        endif
    endif
    goto loop

grabar:
    write 0,1
    write 1,0
    goto loop  

EncenderLED:
            high 7
            cont=9
            return
end

Desconectado morfeus

  • PIC12
  • **
  • Mensajes: 78
RE: Contar 10 pulsos y encender led
« Respuesta #11 en: 21 de Septiembre de 2005, 18:47:00 »
Hola amigo,

Disculpame por no haberte respondido antes pero he estado ocupado, voy a montar el circuito para probralo.

De nuevo muchas gracias por tu valiosa ayuda.

Saludos

Morfeus

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #12 en: 21 de Septiembre de 2005, 22:57:00 »
Hola:

solo tendrias que poner un or entre el puerto que ya tienes y el que quieres y cuando activas el puerto B7 tambien tendrias que activat el B6...

Algo asi:

"---------------------------------------------------
TRISB=%00000011

"---------------------------------------------------
if (PORTB.0=0)OR(PORTB.1=0) then
        cont=cont+1
        write 1,cont
        pause 200
        if cont >= 9 then
            gosub EncenderLED
        endif
    endif

"---------------------------------------------------
EncenderLED:
            high 7
            high 6
            cont=9
            return

Eso es lo que tendrias que cambiar, nada mas.

Una pregunta solo por simple curiosidad.... en que estas utilizando este codigo...? o pra hacer que...? Sonrisa Gigante

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #13 en: 22 de Septiembre de 2005, 09:34:00 »
Hola:

Que bien, entonces lo que puse anteriormente no sirve, lo que tienes que hacer es declarar tres variables mas y hacer lo mismo pero que cuenten hasta los numeros que necesitas, recuerda tambien aumentar la posicion en la eeprom, intenta hacerlo ahora tu, y si tienes algun inconveniente, postea el codigo de lo que has hecho para ayudarte.... Sonrisa Gigante

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
RE: Contar 10 pulsos y encender led
« Respuesta #14 en: 22 de Septiembre de 2005, 10:04:00 »
Hola:

A ver vamos con lo de la eeprom esta parte no la cambies eeprom 0,[0] esto te sirve para saber si es la primera ves que se esta ejecutando el programa, lo de la eeprom si revisas la ayuda tienes que dice lo siguiente con respecto a esa funcion:

EEPROM {Location,}[Constant{,Constant...}]
" Store 10, at location 5
EEPROM 5,[10]

el primer parametro es la localizacion de la eeprom y el segundo el valor que deseas guardar en la misma posicion... esto te puede ayudar mas para que puedas hacer el codigo, trata de hacer el programa en base a la estructura que puse, si te fijas bien no es mucho lo que tienes que cambiar o mejor dicho añadir, lo que me gustaria es que tu lo intentes para que veas que no es tan complicado... Sonrisa Gigante


 

anything