Autor Tema: LEDS y pulsador  (Leído 293 veces)

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

Desconectado Icat

  • PIC10
  • *
  • Mensajes: 30
LEDS y pulsador
« en: 02 de Junio de 2020, 09:49:04 »
Hola buenas, estoy usando el PIC18F4550 y llevo un tiempo mirando de encender y apagar una serie de leds con un pulsador los leds los tengo colocados en el Puerto D y el pulsador en el RB4 se que es analogico pero se puede convertir a digital cosa que e hecho (creo)
 
Código: C
  1. #include <xc.h>
  2. #include "Configuracion.h"
  3. #include "PIC18F4550.h"
  4. #include <htc.h>
  5.  
  6. #define _XTAL_FREQ 20000000
  7.  
  8. void PUERTOS(void)
  9. {
  10. TRISD = 0;//Puerto D como salidas
  11. PORTD = 0;
  12. ADCON1bits.PCFG = 0xFF;
  13. TRISB = 0xFF;
  14. INTCON2bits.RBPU = 0;
  15. }
  16.  
  17. int i = 0;
  18. int i1 = 0;
  19.  
  20. int main() {
  21.    
  22.   PUERTOS();
  23.  
  24. // BUCLE:
  25. while(1)// Bucle infinito condición siempre verdadera!!
  26. {
  27.    
  28.     if(PORTBbits.RB4 == 0){
  29.  
  30.     for( i = 0; i<250;i++)
  31.     {
  32.        
  33.      for(i1 = 0; i1<200;i1++)
  34.      {
  35.      
  36.      }
  37.        
  38.     }
  39.    
  40.     PORTD++;
  41.    
  42.     }
  43.    
  44.    /* else{    for( i = 0; i<250;i++)
  45.     {
  46.        
  47.      for(i1 = 0; i1<200;i1++)
  48.      {
  49.      
  50.      }
  51.        
  52.     }
  53.    
  54.     PORTD++;
  55.    
  56.     }*/
  57.     return 0;
  58. }}

Con este codigo consigo que encienda uno de los LEDS del puerto D pero con muy poquita intensidad sin embargo si quito el IF y dejo que el bucle corra los leds se iluminan con bastante intensidad.

Un saludo a todos y muchas gracias

Desconectado remi04

  • PIC18
  • ****
  • Mensajes: 450
Re:LEDS y pulsador
« Respuesta #1 en: 02 de Junio de 2020, 18:19:13 »
Asegura poner el B4 como digital desde los fuses que por defecto se configura como analógico.

 

 

Desconectado Icat

  • PIC10
  • *
  • Mensajes: 30
Re:LEDS y pulsador
« Respuesta #2 en: 03 de Junio de 2020, 07:44:01 »
Sisi eso lo hice, como puedes ver tengo las instrucciones de ADCON1bits.PCFG = 0xFF el cual nos pone todas las entradas analógicas a digitales y luego la instrucción INTCON2bits.RBPU = 0; que nos activa las resistencias del PULL-UP internas del chip.

Muchas Gracias remi04

Desconectado electroipod

  • PIC16
  • ***
  • Mensajes: 164
Re:LEDS y pulsador
« Respuesta #3 en: 05 de Julio de 2020, 16:04:53 »
El primer error que veo es que has puesto dos compiladores uno xc. h y htc.h solo es necesario que pongas el primero, ademas en vez de los for usa mejor las funciones de delay, ejemplo, __delay_ms(1000) lo cual te da un tiempo de 1 segundo ya que el parámetro tienes que ponerlo en ms, también revisa los fuses, cristal, capacitores de desacople tanto para el pic como para el crystal, resistencia de los leds, conexiones, etc, hay muchos ejemplos en youtube y muy buenos canales también que te pueden enseñar como programar y optimizar tu código, suerte amigo.