Estoy haciendo un programa simple con mi PIC ( PIC24FJ1024GB610 ).
Cuando se presiona un botón, el LED se enciende, cuando se suelta, el LED se apaga.
Supuse que los pines de entrada tienen una resistencia pull-up conectada dentro del microcontrolador de forma predeterminada, porque cuando medí el voltaje en el pin cuando estaba flotando, era 3.3V
simular este circuito : esquema creado con CircuitLab
En una configuración pull-up, Vinput es de 3,3 V cuando se suelta el botón y de 0 V cuando se presiona el botón.
Sin embargo, cuando se presiona o suelta el botón, medí el mismo valor que es 3.3V
Estoy usando una placa de prueba para diseñar el circuito y una placa de desarrollo pic: Explorer16/32
Agregué el código FYI.
#include "System.h"
#include <xc.h>
/*
P44 is input RB15
P88 is output RF1 5V tolerant
*/
#define ANALOG 1
#define DIGITAL 0
#define INPUT 1
#define OUTPUT 0
//BTN RB15
#define BTN_ANS ANSBbits.ANSB15
#define BTN_TRIS TRISBbits.TRISB15
#define _INPUT PORTBbits.RB15
//LED RF1
#define LED_TRIS TRISFbits.TRISF1
#define _OUTPUT _LATF1
int main (void)
{
//LED_ANS = DIGITAL;
LED_TRIS = OUTPUT;
_OUTPUT = 0;
BTN_ANS = DIGITAL;
BTN_TRIS = INPUT;
while(1)
{
if(_INPUT == 1)
_OUTPUT = 1;
else
_OUTPUT = 0;
}
return 0;
}
Los botones rara vez hacen un contacto eléctrico confiable con las placas de prueba.
Según los comentarios, ese parece haber sido su problema, junto con posibles problemas de calidad en el botón mismo.
A veces hay cosas que puedes hacer para hacer que algo funcione lo suficientemente bien para una prueba rápida, por ejemplo, tenía algunos botones en los que girar cada uno de los pines 90 grados haría que se ajustaran mejor a los contactos de la placa de prueba y funcionaran una fracción útil del tiempo. Pero en realidad, las placas de prueba no son para confiabilidad, especialmente no con nada que no sea un IC DIP o un componente de cable de calibre de cable adecuado.
Sería mejor soldar su botón a una placa de circuito (quizás una placa prototipo prefabricada), o comprar un conjunto de botones prefabricados y conectarlo directamente a su placa MCU.
chris stratton
chris stratton
Embedded_Dude
Embedded_Dude
Embedded_Dude
chris stratton
Embedded_Dude