#include <Arduino.h>
#include "system/pinout/pinout.h"
Ir al código fuente de este archivo.
|
| void | fullDiagnosticsPins () |
| | Ejecuta un diagnóstico completo de los pines digitales GPIO, PWM y analógicos.
|
| void | diagnoseAnalog () |
| | Diagnostica el voltaje presente en los pines analógicos del sistema.
|
| void | diagnoseGPIO () |
| | Diagnóstico de pines GPIO configurados como entrada.
|
| void | diagnosePWM () |
| | Detecta la presencia de voltaje externo en pines PWM.
|
| uint8_t | pinNumber (const PinInfo pin) |
| | Devuelve el número físico del pin.
|
| const char * | pinName (const PinInfo pin) |
| | Devuelve el nombre del pin.
|
| const char * | pinFamily (const PinInfo pin) |
| | Devuelve la familia del pin (GPIO, PWM, ANALOG, etc.).
|
| bool | isValidGPIO (const PinInfo &pin) |
| | Verifica si un pin pertenece a la familia GPIO.
|
| bool | isValidPWM (const PinInfo &pin) |
| | Verifica si un pin pertenece a la familia PWM.
|
| bool | isValidAnalog (const PinInfo &pin) |
| | Verifica si un pin pertenece a la familia ANALOG.
|
◆ diagnoseAnalog()
Diagnostica el voltaje presente en los pines analógicos del sistema.
Diagnóstico de pines analógicos.
Recorre todos los pines definidos en Pins::ANALOG, los configura como entrada, estabiliza la señal y realiza una lectura analógica. Convierte el valor leído a voltaje (asumiendo referencia de 5V) y lo muestra por Serial.
- Nota
- Incluye pequeñas demoras para estabilizar la señal.
- Atención
- Asegúrate de que el sistema use referencia de 5V para lecturas precisas.
Definición en la línea 37 del archivo pinout.cpp.
37 {
38 standardHeaderFull(
"⚡ Detecting external voltage on ANALOG pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
39
42
43
44 pinMode(pin.
number, OUTPUT);
45 digitalWrite(pin.
number, LOW);
46 delay(20);
47
48
49 pinMode(pin.
number, INPUT);
50 delay(20);
51
52 int value = analogRead(pin.
number);
53 delay(20);
54 float voltage = value * (5.0 / 1023.0);
55
56
57 pinMode(pin.
number, OUTPUT);
58 digitalWrite(pin.
number, LOW);
59 delay(20);
60
61
62 pinMode(pin.
number, INPUT);
63 delay(20);
64
65 Serial.print("• ");
66 Serial.print(pin.
name);
67 Serial.print(" [#");
69 Serial.print("] → Voltage: ");
70 Serial.print(voltage,2);
71 Serial.println(" V");
72
73 };
74};
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 size_t NUM_ANALOG
Número total de pines por familia.
constexpr PinInfo ANALOG[]
Pines analógicos (ADC).
Representa un pin del sistema con nombre simbólico, número físico y familia funcional.
◆ diagnoseGPIO()
Diagnóstico de pines GPIO configurados como entrada.
Diagnóstico de pines GPIO.
Configura cada pin GPIO como INPUT, estabiliza la señal y lee su estado. Informa si el pin tiene voltaje externo (HIGH) o está en LOW/GND.
- Nota
- Útil para detectar si un pin está conectado a tierra o flotando.
Definición en la línea 85 del archivo pinout.cpp.
85 {
86 standardHeaderFull(
"⚡ Detecting external voltage on GPIO pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
87
90
91
92 pinMode(pin.
number, OUTPUT);
93 digitalWrite(pin.
number, LOW);
94 delay(20);
95
96 pinMode(pin.
number, INPUT);
97 delay(5);
98
99 int state = digitalRead(pin.
number);
100
101 Serial.print("• ");
102 Serial.print(pin.
name);
103 Serial.print(" [#");
105 Serial.print("] → Voltage: ");
106
107 if (state == HIGH) {
108 Serial.println("⚡ External voltage detected (HIGH)");
109 } else {
110 Serial.println("🔻 No voltage (LOW or connected to GND)");
111 }
112 }
113
114}
constexpr PinInfo GPIO[]
Pines GPIO (entrada/salida digital general).
constexpr size_t NUM_GPIO
◆ diagnosePWM()
Detecta la presencia de voltaje externo en pines PWM.
Diagnóstico de pines PWM.
Configura cada pin PWM como entrada, estabiliza la señal y lee su estado digital. Informa si hay voltaje (HIGH) o no (LOW/GND).
- Nota
- No mide voltaje real, solo estado lógico.
-
Para medir voltaje real, usar pines analógicos.
Definición en la línea 126 del archivo pinout.cpp.
126 {
127 standardHeaderFull(
"⚡ Detecting voltage on PWM pins:", __FILE__, __FUNCTION__, __DATE__, __TIME__);
128
131
132
133 pinMode(pin.
number, OUTPUT);
134 analogWrite(pin.
number, 0);
135 delay(20);
136
137 pinMode(pin.
number, INPUT);
138 delay(5);
139
140 int state = digitalRead(pin.
number);
141
142 Serial.print("• ");
143 Serial.print(pin.
name);
144 Serial.print(" [Pin ");
146 Serial.print("] → Voltage: ");
147
148 if (state == HIGH) {
149 Serial.println("⚡ Voltage detected (HIGH)");
150 } else {
151 Serial.println("🔻 No voltage (LOW or connected to GND)");
152 };
153 };
154};
constexpr PinInfo PWM[]
Pines PWM (modulación por ancho de pulso).
◆ fullDiagnosticsPins()
| void fullDiagnosticsPins |
( |
| ) |
|
Ejecuta un diagnóstico completo de los pines digitales GPIO, PWM y analógicos.
Ejecuta todos los diagnósticos de pines.
Esta función:
Útil como prueba inicial del hardware al arrancar el sistema.
Definición en la línea 16 del archivo pinout.cpp.
16 {
17 standardMessage(
"Starting PINOUT diagnostic", __FILE__, __FUNCTION__, __DATE__, __TIME__);
18
22
23 standardHeaderFull(
"Full diagnostic complete.", __FILE__, __FUNCTION__, __DATE__, __TIME__);
24};
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 diagnosePWM()
Detecta la presencia de voltaje externo en pines PWM.
void diagnoseAnalog()
Diagnostica el voltaje presente en los pines analógicos del sistema.
void diagnoseGPIO()
Diagnóstico de pines GPIO configurados como entrada.
◆ isValidAnalog()
| bool isValidAnalog |
( |
const PinInfo & | pin | ) |
|
Verifica si un pin pertenece a la familia ANALOG.
Comprueba si un pin pertenece a la familia ANALOG.
- Parámetros
-
- Devuelve
- true si es ANALOG válido, false si no.
Definición en la línea 234 del archivo pinout.cpp.
234 {
238 {
239 return true;
240 }
241 }
242
243 return false;
244};
◆ isValidGPIO()
| bool isValidGPIO |
( |
const PinInfo & | pin | ) |
|
Verifica si un pin pertenece a la familia GPIO.
Comprueba si un pin pertenece a la familia GPIO.
- Parámetros
-
- Devuelve
- true si es GPIO válido, false si no.
Definición en la línea 196 del archivo pinout.cpp.
196 {
200 {
201 return true;
202 }
203 }
204
205 return false;
206};
◆ isValidPWM()
| bool isValidPWM |
( |
const PinInfo & | pin | ) |
|
Verifica si un pin pertenece a la familia PWM.
Comprueba si un pin pertenece a la familia PWM.
- Parámetros
-
- Devuelve
- true si es PWM válido, false si no.
Definición en la línea 215 del archivo pinout.cpp.
215 {
219 {
220 return true;
221 }
222 }
223
224 return false;
225};
◆ pinFamily()
| const char * pinFamily |
( |
const PinInfo | pin | ) |
|
Devuelve la familia del pin (GPIO, PWM, ANALOG, etc.).
Devuelve la familia funcional del pin.
- Parámetros
-
- Devuelve
- Familia del pin.
Definición en la línea 185 del archivo pinout.cpp.
◆ pinName()
| const char * pinName |
( |
const PinInfo | pin | ) |
|
Devuelve el nombre del pin.
Devuelve el nombre simbólico del pin.
- Parámetros
-
- Devuelve
- Nombre del pin.
Definición en la línea 174 del archivo pinout.cpp.
◆ pinNumber()
| uint8_t pinNumber |
( |
const PinInfo | pin | ) |
|
Devuelve el número físico del pin.
- Parámetros
-
- Devuelve
- Número del pin.
Definición en la línea 163 del archivo pinout.cpp.