Autor Tema: Activar led uno por uno  (Leído 2615 veces)

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

Desconectado Hossman0131

  • PIC10
  • *
  • Mensajes: 2
Activar led uno por uno
« en: 22 de Junio de 2019, 01:29:28 »
Buenas noches compañeros.

Por favor quien me podrá ayudar,
Quiero activar 20 led con pic donde cada vez q pulse se valla activando uno por uno con un tiempo cada uno de 5 min.
Gracias

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:Activar led uno por uno
« Respuesta #1 en: 22 de Junio de 2019, 20:46:20 »
Si necesitas un tiempo entonces necesitas algo que cuente tiempo, puede ser un timer, puede ser una demora. etc. Supongamos que tenes una demora para hacer mas simple

Lo demas es preguntar por el boton si esta presionado o no (con un if)... esto deberia ser relativamente sencillo, solo necesitas leer una entrada. Pero esperar que el boton se suelte (con un while)..

Finalmente activar el led y desactivar el led viejo.

Repetir hasta cansarse, es decir copiar y pegar lo de arriba y cambiar las salidas de los leds.

Es lo mas sencillo. Ahora queda en vos tratar de hacerlo. Obviamente se puede complicar mas y que sea mas corto... O usar otro dispositivos externos como unos shift-register que harian mucho mas simple todo. Ni siquiera necesitarias el micro...

Desconectado elektronik29

  • PIC10
  • *
  • Mensajes: 18
Re:Activar led uno por uno
« Respuesta #2 en: 16 de Agosto de 2019, 21:50:06 »
Podes hacerlo de la siguiente manera:

PIC CCS COMPILER:

Solo led uno encendido:
Código: [Seleccionar]
int i;

for(i=0;i<600;i++){
output_high(LED1);
output_low(LED2);
output_low(LED3);
.........................
output_low(LED20);
delay_ms(500);

Solo el segundo led encendido
Código: [Seleccionar]

for(i=0;i<600;i++){
output_low(LED1);
output_high(LED2);
output_low(LED3);
.........................
output_low(LED20);
delay_ms(500);



500*600=300000 mili segundos dentro del for = 5 minutos.


 

anything