PARTE 1 – Preparar el Arduino para enviar datos correctamente
1.1 Conectar el Arduino
- Conectar el cable USB tipo A-B.
- Abrir Arduino IDE.
- Ir a:
Herramientas → Placa → Arduino Mega 2560
Herramientas → Puerto → Seleccionar el puerto COM correcto.
Si no sabes cuál es:
- Desconecta el cable.
- Mira qué puerto desaparece.
- Vuelve a conectar.
- Ese es el correcto.
1.2 Código base para enviar datos estructurados
Es FUNDAMENTAL que los datos tengan formato fijo.
Ejemplo usando un sensor analógico en A0:
void setup() {
Serial.begin(9600);
}void loop() {
int valor = analogRead(A0);
Serial.print("S1;ANALOGICO;");
Serial.println(valor);
delay(2000);
}
Esto genera una línea clara:
S1;ANALOGICO;523
Siempre el mismo patrón. Sin texto decorativo.
Subir el programa.
⚠️ Muy importante:
NO abrir el Monitor Serie después. El puerto solo puede usarse por un programa a la vez.
PARTE 2 – Preparar Windows para capturar datos
Windows no guarda automáticamente lo que sale por USB. Necesitamos un programa que lea el puerto serie y lo escriba en un archivo.
La solución más limpia: Python.
PARTE 3 – Instalar Python en Windows
3.1 Descargar
Ir a:
https://www.python.org/downloads/
Descargar versión para Windows.
3.2 Instalación correcta
Durante la instalación:
✔ Marcar “Add Python to PATH”
✔ Install Now
Finalizar instalación.
PARTE 4 – Instalar librería para comunicación serie
Abrir:
Inicio → escribir “cmd” → Enter
Ejecutar:
pip install pyserial
Si aparece “Successfully installed”, está correcto.
PARTE 5 – Crear el programa que guarda datos
5.1 Crear archivo
En el escritorio:
Crear archivo llamado:
guardar_datos.py
Abrir con Bloc de notas y pegar:
import serial
import csv
from datetime import datetime
# CAMBIAR ESTE PUERTO POR EL CORRECTO
PUERTO = "COM3"
BAUDIOS = 9600
try:
ser = serial.Serial(PUERTO, BAUDIOS, timeout=1)
except:
print("No se puede abrir el puerto. Verifica el COM.")
exit()
archivo = open("datos_sensores.csv", mode="a", newline="")
writer = csv.writer(archivo, delimiter=";")
print("Capturando datos... Presiona Ctrl+C para detener.")
try:
while True:
linea = ser.readline().decode("utf-8").strip()
if linea:
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
datos = linea.split(";")
fila = datos + [timestamp]
writer.writerow(fila)
archivo.flush()
print(fila)
except KeyboardInterrupt:
print("Finalizando captura...")
archivo.close()
ser.close()
Guardar archivo.
PARTE 6 – Ejecutar captura de datos
- Cerrar el Monitor Serie del IDE.
- Abrir CMD.
- Ir al escritorio:
cd Desktop
- Ejecutar:
python guardar_datos.py
Si todo funciona, verás:
[‘S1’, ‘ANALOGICO’, ‘523’, ‘2026-03-02 21:30:10’]
Y se creará automáticamente:
datos_sensores.csv
PARTE 7 – Verificar archivo generado
Abrir el archivo con Excel.
Formato típico:
S1;ANALOGICO;523;2026-03-02 21:30:10
S1;ANALOGICO;517;2026-03-02 21:30:12
Ya tienes registro histórico con timestamp.
Eso significa:
- Persistencia de datos
- Trazabilidad
- Capacidad de análisis
PARTE 8 – Problemas comunes y solución
Error: “Access denied”
→ El Monitor Serie está abierto.
Error: “No se puede abrir el puerto”
→ Puerto incorrecto.
Símbolos extraños
→ Baudrate incorrecto (debe coincidir con Serial.begin).
No se guardan datos
→ El Arduino no está enviando líneas con println.







