Guías · 18 min de lectura

Diferencia entre Raspberry Pi y Arduino: cuál elegir y por qué

Diferencia entre Raspberry Pi y Arduino: ordenador Linux frente a microcontrolador en arranque, consumo, GPIO, entradas analógicas, lenguaje, precio y código.

La diferencia entre Raspberry Pi y Arduino cabe en una frase: la Raspberry Pi es un ordenador (una computadora) del tamaño de una tarjeta de crédito que ejecuta un sistema operativo Linux, mientras que Arduino es una placa con microcontrolador que ejecuta una y otra vez el único programa que le cargas. A la Pi puedes conectarle teclado, ratón y monitor, navegar por internet, procesar imágenes de una cámara con Python o montar un pequeño servidor en casa. Arduino, en cambio, empieza a funcionar en cuanto le das corriente, lee sensores con precisión de microsegundos, controla motores y LED sin un solo tropiezo y puede funcionar días con pilas.

En resumen, la Raspberry Pi es mejor opción para proyectos que necesitan cámara, procesamiento de imagen, interfaz gráfica o servicios de red, mientras que Arduino gana cuando necesitas sensores, motores, temporización precisa y bajo consumo. En esta guía comparamos las dos plataformas con cifras reales: tiempo de arranque, consumo, GPIO y entradas analógicas, lenguaje de programación, tiempo real y precio. Después te mostramos en una tabla cuál elegir para cada proyecto, te damos código de ejemplo para que ambas trabajen juntas por un cable USB y te explicamos dónde encaja la Raspberry Pi Pico, que a pesar de su nombre se parece mucho más a un Arduino.

Placa Arduino Uno R3 con microcontrolador
Arduino Uno R3: no tiene sistema operativo; el ATmega328P de 16 MHz ejecuta el único programa que cargaste en cuanto recibe corriente.

¿Qué es una Raspberry Pi y qué es un Arduino?

La Raspberry Pi es un ordenador de placa única (SBC) desarrollado por la Raspberry Pi Foundation del Reino Unido. La Raspberry Pi 5 tiene un procesador Arm Cortex-A76 de cuatro núcleos a 2,4 GHz, de 1 a 16 GB de RAM, dos salidas HDMI 4K, USB 3.0, Ethernet Gigabit, Wi-Fi y Bluetooth. En lugar de disco duro usa una tarjeta microSD (o un SSD NVMe con una placa adicional) y en ella se instala Raspberry Pi OS, basado en Debian. Es decir, tienes delante un hermano pequeño y barato de tu ordenador de escritorio; la única diferencia es el conector GPIO de 40 pines de su borde, que te permite conectar directamente LED, pulsadores y sensores.

Arduino, por su parte, es una plataforma de microcontroladores de código abierto nacida en Italia. Su placa más popular, el Arduino Uno R3, lleva en su corazón un ATmega328P de 8 bits a 16 MHz: el procesador, 2 KB de RAM, 32 KB de memoria de programa y el convertidor analógico-digital están dentro del mismo chip. No hay sistema operativo, ni sistema de archivos, ni salida de vídeo. El código que escribes en el Arduino IDE de tu ordenador se compila y se guarda en la memoria flash de la placa; cada vez que se enciende, setup() se ejecuta una vez y luego loop() se repite para siempre. Para conocer mejor la plataforma, lee ¿Qué es Arduino?.

Respuesta rápida: ¿cuál conviene en cada caso?

Tu situaciónElección¿Por qué?
Empiezas en la electrónicaArduino UnoSencillo, robusto, compatible directamente con módulos de 5 V
Cámara, reconocimiento facial o de objetosRaspberry PiPotencia de cálculo, RAM, OpenCV y soporte de cámara
Coche robot, servo, motor paso a pasoArduinoTemporización precisa y sin interrupciones
Servidor web, base de datos, centro domóticoRaspberry PiLinux, servicios de red, almacenamiento
Sensor que funcionará días con pilasArduino o PicoConsumo de milivatios, no de vatios
Dispositivo con pantalla, teclado y ratónRaspberry PiEscritorio, navegador, HDMI
Aprender Python y controlar hardwareRaspberry Pi Pico o Raspberry PiMicroPython o Python completo
Procesamiento de imagen y control de motores a la vezRaspberry Pi + ArduinoLa Pi decide, Arduino ejecuta

Tabla comparativa: Raspberry Pi 5, Arduino Uno y Raspberry Pi Pico

CaracterísticaRaspberry Pi 5Arduino Uno R3Raspberry Pi Pico
TipoOrdenador de placa únicaPlaca con microcontroladorPlaca con microcontrolador
ProcesadorBCM2712, 4 núcleos Cortex-A76, 2,4 GHzATmega328P, 8 bits, 16 MHzRP2040, 2 núcleos Cortex-M0+, 133 MHz
RAM1, 2, 4, 8 o 16 GB2 KB264 KB
AlmacenamientoTarjeta microSD o SSD NVMe32 KB de flash2 MB de flash
Sistema operativoRaspberry Pi OS (Linux)NingunoNinguno
Tiempo de arranqueUnos 15–40 segundosMenos de 1 segundoMenos de 1 segundo
ConsumoUnos 3 W en reposo, 7–8 W con cargaUnos 0,25 W (50 mA)Unos 0,1 W (20–25 mA)
AlimentaciónUSB-C, se recomiendan 5 V 5 AUSB 5 V o jack de 7–12 VUSB 5 V o 1,8–5,5 V en VSYS
Nivel lógico3,3 V (no tolera 5 V)5 V3,3 V (no tolera 5 V)
GPIO28 GPIO en el conector de 40 pines20 (14 digitales + 6 analógicos)26
Entradas analógicas (ADC)Ninguna (necesita ADC externo)6 canales, 10 bits3 canales, 12 bits
PWM por hardwareEn 4 pines (GPIO 12, 13, 18, 19)6 pinesEn todos los GPIO, 16 canales
InalámbricoWi-Fi 5 + Bluetooth 5.0NoNo (Wi-Fi + Bluetooth en la Pico W)
Vídeo y audio2 × HDMI 4K, 2 conectores de cámaraNoNo
ProgramaciónPython, C/C++, Node.js y casi cualquier lenguaje de LinuxArduino C/C++MicroPython, SDK de C/C++, Arduino
Tiempo realNo (planificación de Linux)Sí, a nivel de microsegundosSí, aún más preciso con PIO
Corte repentino de corrienteLa tarjeta SD puede dañarseSin problemaSin problema
Precio de lista (octubre de 2026)Desde 45 $ (1 GB) hasta más de 300 $ (16 GB)Original unos 25–30 $, clon 5–10 $4 $ (Pico W 6 $, Pico 2 5 $)

Una nota rápida sobre los precios: como el coste de los chips de memoria LPDDR4 que usan la Raspberry Pi 4 y la 5 se ha disparado por la demanda de los centros de datos de IA, Raspberry Pi ha subido los precios varias veces desde diciembre de 2025; en octubre de 2026 la Pi 5 de 2 GB cuesta 77,50 $ de lista. La Pi Zero 2 W, que usa una memoria más antigua, se ha mantenido en 15 $. Además, la Pi necesita una tarjeta microSD, una fuente USB-C de 27 W y, a ser posible, un disipador, que suman otros 20–30 $ al total. Un Arduino Uno o una Pico solo necesitan un cable USB.

La diferencia fundamental entre un ordenador Linux y un microcontrolador

En la Raspberry Pi, el programa en Python que escribes es solo uno de los cientos de procesos que Linux gestiona a la vez. El núcleo (kernel) va repartiendo el procesador entre la conexión de red, la pantalla, los dispositivos USB, los servicios en segundo plano y tu programa. Es un esquema muy potente: puedes guardar registros en archivos, ejecutar a la vez un servidor web y una transmisión de cámara y editar tu código por SSH desde otra habitación. En Arduino, en cambio, lo único que corre en el procesador es tu código. Como no hay sistema operativo de por medio, la orden digitalWrite cambia el pin en pocos microsegundos, y siempre tarda lo mismo. En la práctica, esta diferencia implica lo siguiente:

  • Multitarea: La Pi ejecuta a la vez un navegador, un script de Python y una base de datos; Arduino funciona con un único loop(), y tú mismo organizas varias tareas con millis().
  • Almacenamiento: En la Pi puedes guardar gigabytes de fotos, registros y bases de datos; en el Uno tu programa debe caber en 32 KB y tus variables en 2 KB de RAM.
  • Red: La Pi se conecta a internet por Wi-Fi y Ethernet nada más sacarla de la caja; el Uno no tiene conexión de red, así que necesitas un ESP32 o un módulo adicional.
  • Mantenimiento: Como la Pi es un ordenador, necesita actualizaciones, contraseña de usuario y cuidar la seguridad; a Arduino le cargas el código una vez y funciona igual durante años.
  • Cuando algo falla: Si un programa se cuelga en la Pi, el sistema sigue en pie y puedes leer el mensaje de error; si el código se bloquea en Arduino, la placa se detiene en silencio, aunque un temporizador watchdog puede reiniciarla sola.

Tiempo de arranque y cortes de corriente

En cuanto das corriente a un Arduino, tu programa empieza en menos de un segundo; incluso al pulsar el botón de reset, el bootloader solo espera un instante. La Raspberry Pi primero carga su bootloader, luego el núcleo de Linux y los servicios; según el modelo y la velocidad de la tarjeta SD, tarda entre 15 y 40 segundos en llegar al escritorio. Esto importa en dispositivos que deben funcionar justo después de un corte de luz, como un timbre, una alarma o un sistema de riego. Apagarla es todavía más delicado: Linux escribe constantemente en la tarjeta SD y, si la corriente se corta en mitad de una escritura, el sistema de archivos puede dañarse y la Pi quizá no vuelva a arrancar. Como el programa de Arduino está fijo en la memoria flash, puedes desenchufarlo cuando quieras.

No apagues la Raspberry Pi desenchufándola; ejecuta antes sudo poweroff o elige Apagar en el escritorio y espera unos segundos. Si vas a construir un dispositivo que se desenchufará a menudo, puedes poner el sistema en solo lectura con la opción Overlay File System de Performance Options en raspi-config. Usa una fuente USB-C de 5 V 5 A (27 W) para la Pi 5; con una fuente débil aparece un aviso de baja tensión, vcgencmd get_throttled devuelve un valor distinto de 0x0 y la placa puede reiniciarse cuando trabaja con carga.

Consumo y funcionamiento con baterías

En consumo, la diferencia es de 10 a 30 veces. Una Raspberry Pi 5 gasta unos 3 W en reposo y 7–8 W con el procesador a plena carga, y aún más si añades un disco USB y una cámara. Un Arduino Uno consume unos 50 mA, es decir, 0,25 W a 5 V, y una Pico alrededor de 0,1 W. En la tabla de abajo verás los tiempos de funcionamiento aproximados con una batería externa (power bank) de 10 000 mAh. El cálculo es este: los 10 000 mAh de la etiqueta se refieren a celdas de 3,7 V, unos 37 Wh; tras las pérdidas de la conversión a 5 V quedan unos 30 Wh útiles. Divide esa cifra entre el consumo de la placa en vatios. Para tu propio circuito, usa la calculadora de duración de batería.

PlacaConsumo típicoCon una power bank de 10 000 mAh
Raspberry Pi 5 (en reposo)Unos 3 WUnas 10 horas
Raspberry Pi 5 (a plena carga)7–8 WUnas 4 horas
Raspberry Pi Zero 2 WUnos 0,6 WUnos 2 días
Arduino Uno R3Unos 0,25 WUnos 5 días
Raspberry Pi PicoUnos 0,1 WUnos 12 días (si la power bank no se apaga)
Arduino Pro Mini dormido (sin LED ni regulador)Del orden de microamperiosMeses directamente con pilas
La mayoría de las power banks se apagan solas cuando la corriente baja de 50–100 mA, así que los dispositivos de bajo consumo con Pico o Arduino pueden apagarse a los pocos segundos. En estos proyectos usa pilas directamente, una celda 18650 o una power bank con modo "siempre encendido". Para sensores inalámbricos que deben funcionar meses con baterías, el modo deep sleep del ESP32 también es una gran opción.

Pines GPIO y entradas analógicas

El conector de 40 pines de la Raspberry Pi tiene 28 GPIO; GPIO 0 y 1 están reservados para la EEPROM de identificación de las placas HAT y normalmente no se usan. Estos pines trabajan a 3,3 V, no toleran 5 V y solo pueden dar unos pocos miliamperios por pin (como mucho unos 16 mA); puedes encender un LED con una resistencia en serie, pero no deberías mover directamente la bobina de un relé ni un motor. La mayor carencia es la falta de entradas analógicas: en la Pi no existe un equivalente a analogRead, así que para leer un sensor analógico como un potenciómetro, una LDR o un sensor de humedad del suelo necesitas un chip ADC externo. El Arduino Uno tiene 6 entradas analógicas y casi cualquier sensor de 5 V se conecta directamente.

AspectoRaspberry PiArduino UnoRaspberry Pi Pico
Nivel lógico3,3 V5 V3,3 V
Corriente por pinPocos mA, como máximo unos 16 mA20 mA recomendados, 40 mA máximo absoluto4 mA por defecto, ajustable hasta 12 mA
Lectura analógicaNo tiene; necesita MCP3008 o ADS1115analogRead(), 0–1023ADC(26).read_u16(), 0–65535
PWMPor hardware en 4 pines, por software en el restoanalogWrite() en 6 pinesPor hardware en todos los pines
Numeración de pinesEl número GPIO no coincide con el pin físico (GPIO17 = pin 11)El número impreso en la placaNúmero GP (GP15 = pin 20)
Módulos de 5 V como el HC-SR04Divisor de tensión obligatorioDirectoDivisor de tensión obligatorio

Hay dos maneras de conectar un sensor analógico a la Pi. La primera es usar un módulo ADC como el MCP3008 de 8 canales y 10 bits por SPI o el ADS1115 de 4 canales y 16 bits por I2C; la librería gpiozero es compatible con el MCP3008 de serie. La segunda es conectar los sensores a un Arduino o una Pico y enviar las lecturas a la Pi por USB; más abajo tienes el código. Cómo funciona la lectura analógica lo explica el artículo ¿Qué es un ADC?, y los mapas de pines de las placas están en la herramienta Pinout.

Lenguaje de programación y entorno de desarrollo

Arduino se programa con el lenguaje Arduino, basado en C/C++: escribes el código en el Arduino IDE de tu ordenador, se compila y se carga en la placa por USB. En la Raspberry Pi, el código se escribe y se ejecuta en la propia Pi, sin un paso de carga aparte. El lenguaje más usado es Python, y Raspberry Pi OS trae ya instalados el editor Thonny y la librería gpiozero. También puedes usar cualquier lenguaje que funcione en Linux, como C, C++, Node.js, Go o Java. Así queda en Python en la Pi un programa de "el LED se enciende mientras pulsas el botón":

Python
1from gpiozero import LED, Button
2from signal import pause
3
4led = LED(17)       # GPIO17 = fiziksel pin 11 / GPIO17 = physical pin 11
5buton = Button(27)  # GPIO27 = fiziksel pin 13, dahili pull-up açık / physical pin 13, internal pull-up on
6
7buton.when_pressed = led.on    # Basınca LED yanar / LED on when pressed
8buton.when_released = led.off  # Bırakınca söner / LED off when released
9
10pause()  # Programı açık tut, olayları bekle / keep running and wait for events

Conecta el pulsador entre GPIO27 y GND, y el LED a GPIO17 con una resistencia de 220 Ω; la clase Button activa por sí sola la resistencia pull-up interna. Guarda el archivo como buton_led.py y ejecútalo escribiendo python3 buton_led.py en el terminal. Ojo: en la Raspberry Pi 5 los GPIO se gestionan a través del nuevo chip RP1, por lo que la antigua librería RPi.GPIO no funciona y falla con "RuntimeError: Cannot determine SOC peripheral base address"; usa gpiozero en los proyectos nuevos. Si en Raspberry Pi OS actual pip install da el error "externally-managed-environment", instala el paquete con sudo apt install python3-... o crea un entorno virtual (venv). En la Raspberry Pi Pico aprovechas los mismos conocimientos de Python con MicroPython.

Tiempo real: ¿por qué Arduino para motores y sensores?

Como Linux reparte el procesador entre programas, tu código en Python puede quedarse en pausa unos milisegundos de vez en cuando, y no puedes saber cuándo ocurrirá. Para una página web da igual, pero para el hardware que depende de la temporización es un problema serio. Algunos ejemplos concretos:

  • Sensor de distancia HC-SR04: El sonido tarda unos 58 µs en ir y volver por cada centímetro de distancia. Si se cuela un retraso de 100 µs mientras mides el eco, la lectura se desvía 1,7 cm; en la Pi estas desviaciones son habituales.
  • Servomotor: Un servo se posiciona con un pulso de 1–2 ms dentro de una señal de 50 Hz, y 1 grado equivale a unos 5,5 µs. Un servo controlado con PWM por software desde la Pi tiembla; con Arduino se queda quieto.
  • Tira LED WS2812B: Cada bit dura 1,25 µs y la temporización exige una precisión de 0,15 µs; la Pi solo lo consigue con el hardware SPI o PWM y DMA, mientras que Arduino y la Pico la controlan directamente.
  • Motores paso a paso y encoders: Miles de pulsos de paso por segundo o las señales rápidas de un encoder se capturan sin perder ninguno en Arduino gracias a las interrupciones.
Si de verdad necesitas una temporización precisa en la Pi, usa los pines de PWM por hardware (GPIO 12, 13, 18, 19) o una placa controladora de servos PCA9685 de 16 canales. La solución más limpia es dejar la temporización a un Arduino o una Pico y que la Pi solo intercambie órdenes; los bloques PIO de la Pico están diseñados justo para eso (consulta PIO y doble núcleo de la Pico).

¿Cuál elegir para cada proyecto?

ProyectoMejor placa¿Por qué?
Cámara que reconoce caras u objetosRaspberry Pi 5OpenCV, Picamera2, aceleradores de IA
Cámara de seguridad Wi-Fi, envío de fotosESP32-CAM o Raspberry Pi Zero 2 WPara fotos sencillas basta la ESP32-CAM; para streaming y grabación, la Pi
Robot que esquiva obstáculos o sigue líneasArduinoBucle preciso e ininterrumpido para sensores y motores
Robot que se orienta con cámaraRaspberry Pi + ArduinoLa Pi ve y decide, Arduino mueve los motores
Riego automático de plantasArduino o ESP32Sensor de humedad analógico, bajo consumo, arranque inmediato
Centro domótico (Home Assistant)Raspberry PiServidor siempre encendido, base de datos, interfaz web
Estación meteorológicaESP32 o Pico WWi-Fi y bajo consumo a la vez
Consola retro, reproductor multimediaRaspberry PiHDMI, audio, mando USB
Registrador de datos con bateríasArduino Pro Mini o PicoConsumo muy bajo en modo reposo
Clase de electrónica, primeros circuitosArduino Uno5 V, pines robustos, muchísimos ejemplos

La cámara y el procesamiento de imagen son el punto fuerte de la Raspberry Pi. La Camera Module 3 de 12 MP con enfoque automático se conecta al conector de cámara con un cable plano; puedes hacer una foto con rpicam-still -o foto.jpg y, con las librerías Picamera2 y OpenCV, detectar movimiento, seguir colores, leer códigos QR o reconocer caras en Python. Para modelos de IA más pesados existen placas aceleradoras como la AI HAT+ o la AI Camera, que procesa la imagen dentro de la propia cámara. Los conectores de cámara de la Raspberry Pi 5 son más pequeños (22 pines) que en los modelos anteriores, así que las cámaras antiguas necesitan un cable adaptador adecuado. Los 2 KB de RAM del Arduino Uno, en cambio, no bastan ni para una foto pequeña; si solo quieres hacer fotos y enviarlas por Telegram, la barata ESP32-CAM es un buen término medio.

En sensores y motores, en cambio, Arduino prácticamente no tiene rival. Como trabaja a 5 V, la mayoría de los módulos del mercado, como el HC-SR04, los módulos de relé, el driver de motores L298N o las pantallas LCD de caracteres, se conectan sin circuitos adicionales, y los shields de motores, relés y sensores se montan directamente sobre la placa. En un coche robot, Arduino lee el sensor de distancia decenas de veces por segundo y detiene los motores en el instante en que ve un obstáculo; ese tiempo de reacción nunca depende de lo ocupado que esté un sistema operativo. Por el mismo motivo, los servomotores y los motores paso a paso funcionan con suavidad en Arduino.

HC-SR04
HC-SR04
SG90 servo
SG90 servo
L298N
L298N
DHT11
DHT11

Usar las dos juntas: Raspberry Pi + Arduino

En la mayoría de los proyectos avanzados, la mejor solución es combinar ambas. Piénsalo como el cuerpo humano: la Raspberry Pi es el cerebro; procesa la cámara, se conecta a internet, guarda registros y toma decisiones. Arduino es la médula espinal y los músculos; lee los sensores, mueve los motores y, ante una emergencia, reacciona por reflejo sin preguntar a la Pi. Por ejemplo, en un coche robot con cámara, la Pi encuentra la línea en la imagen y envía la orden "gira a la izquierda"; Arduino la convierte en velocidades de motor y se detiene por su cuenta si aparece un obstáculo. Las formas habituales de conectar las dos placas son:

Conexión¿Cómo se hace?A tener en cuenta
Serie por USB (la más fácil)Conecta el Arduino a un puerto USB de la Pi; aparece como /dev/ttyACM0 o /dev/ttyUSB0La Pi también alimenta al Arduino, sin conversor de nivel
UART (GPIO 14 y 15)Pi TX → Arduino RX, Arduino TX → Pi RX, GND comúnDivisor de tensión obligatorio para la señal TX de 5 V del Arduino
I2CLa Pi como maestro, Arduino como esclavo con una dirección como 0x08Se recomienda un conversor de nivel
Wi-Fi / MQTTUn ESP32 envía las lecturas por la red a un broker MQTT en la PiSin cables, pero con algo de latencia de red
  1. Carga en la placa el código de Arduino de abajo desde tu ordenador (también puedes cargarlo desde la Pi con arduino-cli).
  2. Conecta el Arduino a la Pi con un cable USB y averigua el nombre del puerto escribiendo ls /dev/ttyACM* /dev/ttyUSB* en el terminal. Un Uno original suele aparecer como /dev/ttyACM0 y los clones con chip CH340 como /dev/ttyUSB0.
  3. Si la librería pyserial no está instalada, instálala con sudo apt install python3-serial.
  4. Si tu usuario no puede acceder al puerto serie, escribe sudo usermod -a -G dialout $USER y después cierra la sesión y vuelve a entrar.
  5. Guarda el código Python como pi_arduino.py y ejecútalo con python3 pi_arduino.py; si el monitor serie del Arduino IDE está abierto, ciérralo antes.
C++ (Arduino IDE)
1// Arduino Uno: A0 değerini Pi'ye gönderir, Pi'den gelen komutla LED'i yönetir
2// Arduino Uno: sends the A0 reading to the Pi and drives the LED on the Pi's command
3const int SENSOR_PIN = A0;      // LDR ya da potansiyometre / LDR or potentiometer
4const int LED_PIN = 13;         // Dahili LED / built-in LED
5unsigned long sonGonderim = 0;  // Son gönderim zamanı / time of the last send
6
7void setup() {
8  Serial.begin(115200);         // Pi tarafıyla aynı hız / same baud rate as the Pi
9  pinMode(LED_PIN, OUTPUT);
10}
11
12void loop() {
13  // Pi'den komut geldi mi? / has a command arrived from the Pi?
14  if (Serial.available()) {
15    String komut = Serial.readStringUntil('\n');  // Satır sonuna kadar oku / read up to the newline
16    komut.trim();                                  // Boşluk ve \r karakterlerini sil / strip spaces and \r
17    if (komut == "LED1") digitalWrite(LED_PIN, HIGH);
18    else if (komut == "LED0") digitalWrite(LED_PIN, LOW);
19  }
20
21  // 500 ms'de bir ölçüm gönder, loop'u bekletmeden / send a reading every 500 ms without blocking
22  if (millis() - sonGonderim >= 500) {
23    sonGonderim = millis();
24    int deger = analogRead(SENSOR_PIN);  // 0-1023
25    Serial.print("A0:");
26    Serial.println(deger);               // Örnek: A0:512 / example: A0:512
27  }
28}
Python
1import time
2import serial  # sudo apt install python3-serial
3
4# Orijinal Uno: /dev/ttyACM0, CH340'lı klon: /dev/ttyUSB0 / genuine Uno: /dev/ttyACM0, CH340 clone: /dev/ttyUSB0
5ser = serial.Serial("/dev/ttyACM0", 115200, timeout=1)
6time.sleep(2)             # Port açılınca Arduino yeniden başlar / opening the port resets the Arduino
7ser.reset_input_buffer()  # Eski verileri temizle / drop stale data
8
9ESIK = 300                # Karanlık eşiği, sensörüne göre ayarla / darkness threshold, tune it for your sensor
10led_durum = None
11
12while True:
13    satir = ser.readline().decode("utf-8", errors="ignore").strip()
14    if not satir.startswith("A0:") or not satir[3:].isdigit():
15        continue          # Boş ya da yarım satırı atla / skip empty or partial lines
16    deger = int(satir[3:])
17    print("Sensor:", deger)
18
19    yeni = "LED1" if deger < ESIK else "LED0"  # Karanlıkta LED'i yak / LED on in the dark
20    if yeni != led_durum:                      # Yalnız değişince gönder / send only on change
21        ser.write((yeni + "\n").encode())
22        led_durum = yeni

Cada 500 ms el Arduino envía una línea del tipo "A0:512" y escucha las órdenes "LED1" o "LED0" terminadas en salto de línea; como usa millis(), esperar órdenes nunca retrasa las mediciones. En el lado de Python, la línea time.sleep(2) es importante: cuando la Pi abre el puerto serie, el Arduino se reinicia automáticamente y lo que se envía en los dos primeros segundos se pierde. Ajusta el umbral de 300 a tu sensor; según cómo hayas conectado la LDR, el valor puede subir o bajar en la oscuridad. Para más detalles sobre la comunicación serie, consulta Comunicación serie entre Arduino y Python y ¿Qué es UART?.

Si conectas el Arduino a los pines GPIO 14 (TX) y GPIO 15 (RX) de la Pi en lugar de usar USB, la línea TX del Arduino da 5 V y puede dañar el pin RX de la Pi. Pon un divisor de tensión en medio: con 1 kΩ en serie desde el TX del Arduino y 2 kΩ entre el RX de la Pi y GND obtienes 5 × 2 / (1 + 2) = 3,33 V. El Arduino suele leer bien la señal TX de 3,3 V de la Pi; para I2C y SPI usa un conversor de nivel lógico.

El lugar de la Raspberry Pi Pico: Raspberry Pi de nombre, microcontrolador de naturaleza

Este es el punto que más se confunde. Aunque la fabrica Raspberry Pi, la Raspberry Pi Pico no es un ordenador, sino una placa con microcontrolador como Arduino: no tiene sistema operativo, arranca al instante, consume unos 0,1 W y funciona en tiempo real. En su interior lleva el chip de doble núcleo RP2040 diseñado por la propia Raspberry Pi (la Pico 2 usa el RP2350 a 150 MHz). Frente al Arduino Uno tiene mucha más RAM (264 KB), un ADC de 12 bits y bloques PIO para tareas de temporización, y se programa con MicroPython, C/C++ o el Arduino IDE. Con sus 4 $ es más barata que un Arduino Uno, pero como trabaja a 3,3 V hay que tener cuidado con los módulos de 5 V. Para más detalles, lee ¿Qué es la Raspberry Pi Pico?.

Placa Raspberry Pi Pico con microcontrolador
Raspberry Pi Pico: aunque lleva el nombre Raspberry Pi, no ejecuta un sistema operativo; como un Arduino, es una placa con microcontrolador de 3,3 V que ejecuta un único programa.

La mayor ventaja de la Pico en esta comparación es que trabaja al mismo nivel de 3,3 V que la Raspberry Pi: puedes conectar sus pines UART directamente a la Pi sin conversor de nivel, o enchufarla por USB y usarla igual que un Arduino. El código MicroPython de abajo envía datos con el mismo formato "A0:valor" que el código de Arduino anterior y escucha las mismas órdenes del LED, así que el script de Python de la Pi funciona sin cambiar nada. Guarda el código en la Pico como main.py con Thonny y luego cierra Thonny para que el puerto serie quede libre para el script de la Pi.

MicroPython
1import sys, select, time
2from machine import ADC, Pin
3
4sensor = ADC(26)        # GP26 = ADC0 (fiziksel pin 31) / GP26 = ADC0 (physical pin 31)
5led = Pin(25, Pin.OUT)  # Pico dahili LED; Pico W'de Pin("LED") / onboard LED; use Pin("LED") on Pico W
6poll = select.poll()
7poll.register(sys.stdin, select.POLLIN)  # USB'den gelen veriyi dinle / listen for data over USB
8son = time.ticks_ms()
9
10while True:
11    # Pi'den komut var mı? / is there a command from the Pi?
12    if poll.poll(0):
13        komut = sys.stdin.readline().strip()
14        if komut == "LED1":
15            led.on()
16        elif komut == "LED0":
17            led.off()
18
19    # 500 ms'de bir, Arduino ile aynı biçimde gönder / every 500 ms, same format as the Arduino
20    if time.ticks_diff(time.ticks_ms(), son) >= 500:
21        son = time.ticks_ms()
22        deger = sensor.read_u16() >> 6  # 0-65535 -> 0-1023
23        print("A0:" + str(deger))

Además, las fronteras se difuminan cada vez más. En 2025 Arduino presentó el Arduino UNO Q, que une los dos mundos en una sola placa: esta placa con formato Uno lleva un procesador Qualcomm de cuatro núcleos con Debian Linux junto a un microcontrolador STM32U585 que ejecuta sketches de Arduino en tiempo real. Es decir, la arquitectura "Pi + Arduino" ya cabe en una única placa. Aun así, la lógica no cambia: la parte Linux se ocupa de la red, la imagen y la aplicación, y la parte del microcontrolador de los pines y la temporización. Quien entiende las diferencias de este artículo saca mucho más partido a estas placas híbridas.

Errores frecuentes y falsos mitos

  • "La Raspberry Pi Pico es una Raspberry Pi pequeña": No lo es; no ejecuta Linux ni tiene salida HDMI. La Pico es un microcontrolador y pertenece a la misma categoría que Arduino.
  • Conectar una señal de 5 V a la Pi: Si el pin ECHO del HC-SR04 o la línea TX del Arduino van directos a un GPIO, el pin o incluso el procesador pueden dañarse para siempre; usa un divisor de tensión.
  • Buscar analogRead en la Pi: La Raspberry Pi no tiene entradas analógicas; usa un MCP3008, un ADS1115 o un Arduino o una Pico como ayudante.
  • Apagar desenchufando: Es la forma más rápida de estropear una tarjeta SD; usa sudo poweroff siempre.
  • Alimentar una Pi 5 con el cargador del móvil: Con una fuente que no da 5 V 5 A, la Pi 5 limita la corriente total de los puertos USB a 600 mA y puede reiniciarse con carga.
  • El error "Permission denied: '/dev/ttyACM0'": Tu usuario no está en el grupo dialout; ejecuta el comando usermod y vuelve a iniciar sesión. Con "Device or resource busy", otro programa (el monitor serie o Thonny) está ocupando el puerto.
  • Pensar que "Arduino está anticuado, ya existe la Pi": No son rivales, sino herramientas para trabajos distintos; la mayoría de los aparatos, desde una lavadora hasta un coche, siguen funcionando hoy con microcontroladores.
Si no sabes por cuál empezar, aprende las bases de la electrónica con un Arduino Uno: trabajando con LED, pulsadores, sensores y motores verás de primera mano la corriente, la tensión y la temporización. Cuando tengas una idea que necesite cámara, red o pantalla, añade una Raspberry Pi; para entonces, lo aprendido con Arduino te permitirá usar los GPIO de la Pi con seguridad. Para elegir placa también te servirán ¿Qué Arduino comprar? y ¿Arduino o ESP32?.

En resumen, la Raspberry Pi es un ordenador que piensa y ve, y Arduino un controlador que convierte al instante lo que percibe en acción; un buen proyecto suele combinar los puntos fuertes de ambos. En la app BlueGrays encontrarás decenas de proyectos con Arduino, ESP32 y Raspberry Pi Pico, desde LED y sensores hasta robots y montajes Wi-Fi, cada uno con su esquema paso a paso y el código listo, y puedes empezar por los gratuitos.

Preguntas frecuentes

¿Cuál es la diferencia entre Raspberry Pi y Arduino?

La Raspberry Pi es un ordenador de placa única con sistema operativo Linux; con pantalla, teclado, internet y cámara se usa como un PC. Arduino es una placa con microcontrolador sin sistema operativo que ejecuta el único programa cargado al instante y en tiempo real. La Pi destaca en cálculo complejo y redes; Arduino, en sensores, motores y tareas de bajo consumo.

¿Raspberry Pi o Arduino para empezar?

Si quieres aprender electrónica, empieza con un Arduino Uno: funciona directamente con módulos de 5 V, perdona más los errores y tiene muchísimos ejemplos. Si tu objetivo principal es Linux, programar en Python, cámaras o proyectos de servidor, la Raspberry Pi es mejor primer paso. Para quien disfruta de Python y quiere aprender microcontroladores, la Raspberry Pi Pico es un camino intermedio y barato.

¿El código de Arduino funciona en una Raspberry Pi?

No directamente. Los sketches de Arduino se compilan para microcontroladores como el ATmega328P; en la Raspberry Pi tienes que reescribir la misma lógica con Python y librerías como gpiozero. Eso sí, puedes usar la Raspberry Pi como ordenador para cargar código en un Arduino con arduino-cli.

¿Se pueden usar Raspberry Pi y Arduino juntos?

Sí. Lo más fácil es conectar el Arduino a la Pi con un cable USB e intercambiar datos por el puerto serie; en Python basta con la librería pyserial. Así, la Pi se encarga de la cámara, la red y las decisiones, y Arduino de los sensores y los motores. Si los conectas por UART o I2C en los GPIO, usa un divisor de tensión o un conversor de nivel por la diferencia entre 5 V y 3,3 V.

¿La Raspberry Pi Pico es un Arduino?

No, pero es de la misma categoría: como Arduino, la Pico es una placa con microcontrolador sin sistema operativo. Gracias al chip RP2040 es más rápida que el Uno, tiene más RAM y se programa con MicroPython; si lo prefieres, también con el Arduino IDE. Su diferencia principal es que trabaja a 3,3 V en lugar de 5 V.

¿Qué es mejor para hacer un robot, Raspberry Pi o Arduino?

Para un robot que esquiva obstáculos, sigue una línea o se maneja con mando, Arduino basta y es más fiable; controla motores y sensores sin retrasos. Si el robot debe reconocer objetos con una cámara, crear un mapa o controlarse por internet, necesitas una Raspberry Pi. Los robots avanzados suelen usar ambos: la Pi decide y Arduino mueve los motores.

Ver todos los proyectos
Parpadeo de LED
#1Principiante

Parpadeo de LED

El primer hola de la electrónica: encender y apagar un solo LED. El Arduino enciende y apaga el LED a intervalos cortos, así que la luz parpadea rápido. Ves de la forma más sencilla cómo la placa cont

4.6(188)
1127
Parpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W)
#147Principiante

Parpadeo LED Integrado Raspberry Pi Pico (Pico y Pico W)

¡El proyecto de apertura de la serie Raspberry Pi Pico! Hacemos parpadear el LED verde integrado para verificar que la placa funciona — un experimento clásico "Hello World". SIN componentes externos, solo Pico y cable USB. El código está escrito en MicroPython (el lenguaje oficialmente respaldado por la Raspberry Pi Foundation). Aprende la clase machine.Pin, el modo Pin.OUT, los métodos led.on()/off() y time.sleep() en Thonny IDE. Sigue cada cambio en vivo en l

5.0(1)
10
Medir la intensidad de luz con LDR
#11Principiante

Medir la intensidad de luz con LDR

¿Quieres ver en números cuánta luz hay en tu habitación? El LDR, una pequeña pieza sensible a la luz, mide la luz ambiente y el Arduino escribe el valor en la pantalla del ordenador cada medio segundo

4.6(81)
139
Temperatura y humedad con DHT11
#55Intermedio

Temperatura y humedad con DHT11

¿Qué temperatura hace en tu habitación, y el aire está húmedo o seco? El sensor DHT11 mide la temperatura y la humedad, y el Arduino escribe los valores en una pantalla LCD de dos líneas, actualizándo

4.7(47)
73
HC-SR04 Medición de distancia (pantalla en serie)
#27Principiante

HC-SR04 Medición de distancia (pantalla en serie)

El sensor HC-SR04 funciona igual que un murciélago que se orienta en la oscuridad: emite un sonido que no puedes oír, escucha el eco y mide a qué distancia está el objeto que tiene delante. El Arduino

4.6(46)
71
Comunicación unidireccional entre 2 Arduino
#57Intermedio
Premium

Comunicación unidireccional entre 2 Arduino

Haces que dos Arduino hablen por un solo cable: pulsas el botón de uno y se enciende el LED del otro, vuelves a pulsar y se apaga. La placa que envía avisa del botón con un mensaje corto, y la que rec

4.4(37)
50
Teclado para desarrolladores de Python
#66Intermedio
Premium

Teclado para desarrolladores de Python

Si te cansa escribir los mismos patrones una y otra vez mientras programas, este pequeño teclado está hecho para ti. El Arduino Leonardo se conecta al ordenador como si fuera un teclado, y cada tecla

4.6(35)
45
Estación de riego inteligente
#83Avanzado
Premium

Estación de riego inteligente

Un jardinero que riega solo tus plantas para que no se sequen mientras estás de vacaciones. Un sensor de humedad mide lo mojada que está la tierra; cuando se seca, el Arduino enciende la bomba de agua

5.0(42)
57