Autor Tema: duda al enceder 3 leds con 1 pulsador  (Leído 1232 veces)

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

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
duda al enceder 3 leds con 1 pulsador
« en: 15 de Marzo de 2023, 22:23:38 »
Buenas amigos, estoy tratando de realizar la siguiente practica que me propuse para un pic 16F84A: Encender 3 leds conectados en PORTB (RB0 - RB2) mediante 1 botón conectado en PORTA (RA0).

Esta practica la hice con ensamblador y ya compile y simule el archivo con proteus 8.13 SP0 y si funciona. Solo me falta grabarlo en un pic y armar el circuito. Mis dudas son las siguientes:

1.- Al definir las variables para el botón y los leds puse directamente el valor para indicar el pin que se usara pero no se si así esta bien o tenga que definir dicho valor como decimal o binario.

2.- Al configurar el PORTB como salida para conectar los 3 leds, los pines restantes, ¿Como debo configurarlos?, ¿Como entrada o como salida? ademas, estos pines, ¿Quedan al aire o tienen que estar conectados a algo?.

3.- Para encender/apagar los 3 leds uso las instrucciones bsf y bcf una para cada led pero siento que estoy repitiendo mucho así que me preguntaba si no habría una mejor manera de hacer esto como por ejemplo algo como esto:
Código: [Seleccionar]
movlw b'111'
movwf PORTB

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?

Espero que puedan ilustrarme amigos.
¿Acaso los microcontroladores son el futuro?

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 571
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #1 en: 15 de Marzo de 2023, 23:04:06 »
Hola, te respondo la 2da. pregunta.
Los pines NO usados, siempre definirlos como salida. Ya que se reduce la posibilidad de interferencias, y lo dejas así sin más, sin conectarlos a nada.

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #2 en: 15 de Marzo de 2023, 23:24:49 »
Hola, te respondo la 2da. pregunta.
Los pines NO usados, siempre definirlos como salida. Ya que se reduce la posibilidad de interferencias, y lo dejas así sin más, sin conectarlos a nada.

Ok entiendo, muchas gracias por responder a una de mis dudas amigo!!!!!!!  ((:-))
¿Acaso los microcontroladores son el futuro?

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #3 en: 16 de Marzo de 2023, 00:25:08 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

« Última modificación: 16 de Marzo de 2023, 00:29:49 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #4 en: 16 de Marzo de 2023, 00:28:24 »
Hola, te respondo la 2da. pregunta.
Los pines NO usados, siempre definirlos como salida. Ya que se reduce la posibilidad de interferencias, y lo dejas así sin más, sin conectarlos a nada.

Eso recomienda el fabricante. O que las configures como entradas y con una resistencia de pull up (a VCC) o de pull down (a GND).

Pero la verdad, nunca he tenido problemas con eso. Tal vez es una mala práctica no hacer caso a al sugerencia del fabricante.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #5 en: 16 de Marzo de 2023, 00:34:59 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

¿Acaso los microcontroladores son el futuro?

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #6 en: 16 de Marzo de 2023, 00:46:49 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

Pues arme el circuito en protoboard, cargue el programa en el pic y si enciende los leds pero no noto algún problema. Tenia entendido que como el pic ejecuta muy rápido el programa, al presionar el botón se encienden los leds pero a simple vista no notas el parpadeo de los leds mientras se estabiliza la señal. Y sobre lo que comentas de la razón de no querer usar retardos pues me preguntaba si en todos los casos es necesario usar retardos para evitar rebotes por muy sencilla que sea la aplicación a desarrollar(en mi caso como solo enciendo unos cuantos leds siento que no es necesario los retardos a menos de que el rebote afecte de alguna manera la vida útil de dichos leds).
¿Acaso los microcontroladores son el futuro?

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #7 en: 16 de Marzo de 2023, 01:31:52 »
Hola, te respondo la 2da. pregunta.
Los pines NO usados, siempre definirlos como salida. Ya que se reduce la posibilidad de interferencias, y lo dejas así sin más, sin conectarlos a nada.

Eso recomienda el fabricante. O que las configures como entradas y con una resistencia de pull up (a VCC) o de pull down (a GND).

Pero la verdad, nunca he tenido problemas con eso. Tal vez es una mala práctica no hacer caso a al sugerencia del fabricante.

Ya veo, gracias por el dato, veo que hay mucha información útil en los datasheet que da el fabricante.
¿Acaso los microcontroladores son el futuro?

Desconectado remi04

  • PIC24F
  • *****
  • Mensajes: 657
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #8 en: 16 de Marzo de 2023, 04:42:25 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

Pues arme el circuito en protoboard, cargue el programa en el pic y si enciende los leds pero no noto algún problema. Tenia entendido que como el pic ejecuta muy rápido el programa, al presionar el botón se encienden los leds pero a simple vista no notas el parpadeo de los leds mientras se estabiliza la señal. Y sobre lo que comentas de la razón de no querer usar retardos pues me preguntaba si en todos los casos es necesario usar retardos para evitar rebotes por muy sencilla que sea la aplicación a desarrollar(en mi caso como solo enciendo unos cuantos leds siento que no es necesario los retardos a menos de que el rebote afecte de alguna manera la vida útil de dichos leds).

Con ese programa el efecto rebote no lo vas a percibir apenas.

 Pero si por ejemplo quisieras que una pulsación encienda los leds y otra pulsación los apague, otro gallo cantaría.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #9 en: 16 de Marzo de 2023, 10:21:48 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

Pues arme el circuito en protoboard, cargue el programa en el pic y si enciende los leds pero no noto algún problema. Tenia entendido que como el pic ejecuta muy rápido el programa, al presionar el botón se encienden los leds pero a simple vista no notas el parpadeo de los leds mientras se estabiliza la señal. Y sobre lo que comentas de la razón de no querer usar retardos pues me preguntaba si en todos los casos es necesario usar retardos para evitar rebotes por muy sencilla que sea la aplicación a desarrollar(en mi caso como solo enciendo unos cuantos leds siento que no es necesario los retardos a menos de que el rebote afecte de alguna manera la vida útil de dichos leds).

Presiona el pulsador varias veces, es decir activa y desactiva los leds lo más rápido que puedas presionar con tu dedo el pulsador. Notarás que en algún momento, cuando debe encenderse (o apagarse) no sucederá, será algo así como que "el micro no detecto una pulsación"

También la capacitancia parásita de la proto ayude a eliminar algo el rebote. EN un PCB se notará mucho mejor ese problema.

« Última modificación: 16 de Marzo de 2023, 10:24:39 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #10 en: 16 de Marzo de 2023, 21:19:50 »

4.- ¿Es necesario el uso de retardos para evitar el rebote en el pulsador si solo voy a encender unos leds?


El rebote es como si presionaras varias veces un pulsador en pocos milisegundos, y a al velocidad que se ejecuta el microcontrolador, vas a tener problemas.

Has la prueba con un hardware físico y te vas a dar cuenta.

Puedes usar capacitores para eliminar los rebotes, pero una combinación de ambos es mejor, es decir capacitores más delays

¿Cuál es la razón de no desear usar retardos? ¿La sincronicidad de los mismos?

Pues arme el circuito en protoboard, cargue el programa en el pic y si enciende los leds pero no noto algún problema. Tenia entendido que como el pic ejecuta muy rápido el programa, al presionar el botón se encienden los leds pero a simple vista no notas el parpadeo de los leds mientras se estabiliza la señal. Y sobre lo que comentas de la razón de no querer usar retardos pues me preguntaba si en todos los casos es necesario usar retardos para evitar rebotes por muy sencilla que sea la aplicación a desarrollar(en mi caso como solo enciendo unos cuantos leds siento que no es necesario los retardos a menos de que el rebote afecte de alguna manera la vida útil de dichos leds).

Presiona el pulsador varias veces, es decir activa y desactiva los leds lo más rápido que puedas presionar con tu dedo el pulsador. Notarás que en algún momento, cuando debe encenderse (o apagarse) no sucederá, será algo así como que "el micro no detecto una pulsación"

También la capacitancia parásita de la proto ayude a eliminar algo el rebote. EN un PCB se notará mucho mejor ese problema.

Si tienes razón, lo hice y si se ve que en algunas veces no se prende  apaga al pulsar el botón. Muchas gracias por la observación la tendré en cuenta al momento de programar.
¿Acaso los microcontroladores son el futuro?

Desconectado Robert76

  • PIC24F
  • *****
  • Mensajes: 571
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #11 en: 16 de Marzo de 2023, 22:54:35 »
@vicopic8, con el tiempo te darás cuenta que usar retardos, es y será la peor elección. Sobre todo si el programa realiza múltiples tareas.
Pero tiempo al tiempo. Para empezar todo vale, y los errores te llevarán a perfeccionar las alternativas.

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1937
    • Sicoy
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #12 en: 16 de Marzo de 2023, 22:57:13 »
@vicopic8, con el tiempo te darás cuenta que usar retardos, es y será la peor elección. Sobre todo si el programa realiza múltiples tareas.
Pero tiempo al tiempo. Para empezar todo vale, y los errores te llevarán a perfeccionar las alternativas.

Retardos asincrónicos es la opción.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado vicopic8

  • PIC10
  • *
  • Mensajes: 29
Re:duda al enceder 3 leds con 1 pulsador
« Respuesta #13 en: 16 de Marzo de 2023, 23:34:21 »
Muchas gracias compañeros por aclararme la duda sobre los retardos y sobre mis otras dudas también muchas gracias a los demás compañeros. Veo que los microcontroladores son todo un mucho y aun que queda mucho por aprender. Doy por solucionado el tema!!!
¿Acaso los microcontroladores son el futuro?