17 standardMessage(
"Starting PINOUT diagnostic", __FILE__, __FUNCTION__, __DATE__, __TIME__);
23 standardHeaderFull(
"Full diagnostic complete.", __FILE__, __FUNCTION__, __DATE__, __TIME__);
38 standardHeaderFull(
"⚡ Detecting external voltage on ANALOG pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
44 pinMode(pin.
number, OUTPUT);
45 digitalWrite(pin.
number, LOW);
49 pinMode(pin.
number, INPUT);
52 int value = analogRead(pin.
number);
54 float voltage = value * (5.0 / 1023.0);
57 pinMode(pin.
number, OUTPUT);
58 digitalWrite(pin.
number, LOW);
62 pinMode(pin.
number, INPUT);
66 Serial.print(pin.
name);
69 Serial.print(
"] → Voltage: ");
70 Serial.print(voltage,2);
86 standardHeaderFull(
"⚡ Detecting external voltage on GPIO pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
92 pinMode(pin.
number, OUTPUT);
93 digitalWrite(pin.
number, LOW);
96 pinMode(pin.
number, INPUT);
99 int state = digitalRead(pin.
number);
102 Serial.print(pin.
name);
105 Serial.print(
"] → Voltage: ");
108 Serial.println(
"⚡ External voltage detected (HIGH)");
110 Serial.println(
"🔻 No voltage (LOW or connected to GND)");
127 standardHeaderFull(
"⚡ Detecting voltage on PWM pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
133 pinMode(pin.
number, OUTPUT);
134 analogWrite(pin.
number, 0);
137 pinMode(pin.
number, INPUT);
140 int state = digitalRead(pin.
number);
143 Serial.print(pin.
name);
144 Serial.print(
" [Pin ");
146 Serial.print(
"] → Voltage: ");
149 Serial.println(
"⚡ Voltage detected (HIGH)");
151 Serial.println(
"🔻 No voltage (LOW or connected to GND)");
void standardMessage(const char *message, const char *file, const char *function, const char *date, const char *time)
Prints an enriched log message to the serial monitor.
void standardHeaderFull(const char *message, const char *file, const char *function, const char *date, const char *time, uint16_t width=120, char deco='-')
Prints a decorated header with centered text and padding on both sides.
constexpr PinInfo GPIO[]
Pines GPIO (entrada/salida digital general).
constexpr size_t NUM_GPIO
constexpr PinInfo PWM[]
Pines PWM (modulación por ancho de pulso).
constexpr size_t NUM_ANALOG
Número total de pines por familia.
constexpr PinInfo ANALOG[]
Pines analógicos (ADC).
bool isValidGPIO(const PinInfo &pin)
Verifica si un pin pertenece a la familia GPIO.
bool isValidAnalog(const PinInfo &pin)
Verifica si un pin pertenece a la familia ANALOG.
void diagnosePWM()
Detecta la presencia de voltaje externo en pines PWM.
const char * pinFamily(const PinInfo pin)
Devuelve la familia del pin (GPIO, PWM, ANALOG, etc.).
void diagnoseAnalog()
Diagnostica el voltaje presente en los pines analógicos del sistema.
const char * pinName(const PinInfo pin)
Devuelve el nombre del pin.
void fullDiagnosticsPins()
Ejecuta un diagnóstico completo de los pines digitales GPIO, PWM y analógicos.
uint8_t pinNumber(const PinInfo pin)
Devuelve el número físico del pin.
bool isValidPWM(const PinInfo &pin)
Verifica si un pin pertenece a la familia PWM.
void diagnoseGPIO()
Diagnóstico de pines GPIO configurados como entrada.
Representa un pin del sistema con nombre simbólico, número físico y familia funcional.