TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: MauroSL en 04 de Junio de 2020, 16:14:29

Título: Problema con salida PIC16F873A
Publicado por: MauroSL en 04 de Junio de 2020, 16:14:29
Gente, buenas tardes. Paso un codigo que saque de este foro. 
El problema que tengo en la salida RB4, es que el pic siempre me manda corriente (por ende, el LED queda prendido) esto pasa cuando cuando el led deberia estar apagado, y cuando cierro el circuito (simulando un pulsador cerrado) el led brilla aun mas (en este caso esta bien). Por favor, alguno que me pueda ayudar. Saludos!

Paso una foto de como tengo conectado los pines. Aclaro que en la foto no se ve, pero tengo conectado el cristal de 4 MHz y los dos capacitores de 22pF.

Código: [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include "Config.h"

#define _XTAL_FREQ 4000000

void main() {
       
    TRISB = 0b00000010;
    PORTB = 0b00000000;
    while (1)
    {
    //PORTBbits.RB0 =0;
    if (PORTBbits.RB1 == 0)
    {
      PORTBbits.RB4 = 0;
    }
    else
    {
      PORTBbits.RB4 = 1;
    }
}
}
Título: Re:Problema con salida PIC16F873A
Publicado por: Leon Pic en 04 de Junio de 2020, 22:28:20
Eso pasa porque cuando no pulsas el botón, el pin RB1 queda flotante, y cualquier ruido eléctrico hará que el pic lo detecte como 1 o 0. Por lo tanto, en la velocidad que lo hace, el led brilla poco. Coloca una resistencia de 100k conectado en la pata RB1 y a masa para evitar que esté flotante y garantizarle un negativo cuando el pulsador no está presionado.
Título: Re:Problema con salida PIC16F873A
Publicado por: MauroSL en 05 de Junio de 2020, 00:07:43
Eso pasa porque cuando no pulsas el botón, el pin RB1 queda flotante, y cualquier ruido eléctrico hará que el pic lo detecte como 1 o 0. Por lo tanto, en la velocidad que lo hace, el led brilla poco. Coloca una resistencia de 100k conectado en la pata RB1 y a masa para evitar que esté flotante y garantizarle un negativo cuando el pulsador no está presionado.

Muchisimas gracias, Leon!