Rehberler · 13 dk okuma

Raspberry Pi ve Arduino Farkı: Karşılaştırma ve Seçim Rehberi

Raspberry Pi ve Arduino farkı nedir? Linux bilgisayarı mikrodenetleyiciyle açılış, güç, GPIO, analog giriş, dil ve fiyatla kıyasla; proje tablosu ve örnek kod.

Raspberry Pi ve Arduino farkı tek cümleyle şudur: Raspberry Pi, Linux işletim sistemi çalıştıran kredi kartı boyutunda bir bilgisayardır; Arduino ise yüklediğin tek bir programı durmadan çalıştıran bir mikrodenetleyici kartıdır. Pi'ye klavye, fare ve monitör bağlayıp internette gezebilir, Python ile kamera görüntüsü işleyebilir, evinde küçük bir sunucu kurabilirsin. Arduino ise elektriği verdiğin anda çalışmaya başlar, sensörleri mikrosaniye hassasiyetle okur, motorları ve LED'leri hiç takılmadan sürer ve pille günlerce çalışır.

Kısacası kamera, görüntü işleme, ekranlı arayüz ya da ağ servisi gereken projelerde Raspberry Pi; sensör, motor, hassas zamanlama ve düşük güç gereken projelerde Arduino daha doğru seçimdir. Bu rehberde iki platformu açılış süresi, güç tüketimi, GPIO ve analog giriş, programlama dili, gerçek zamanlılık ve fiyat açısından gerçek sayılarla karşılaştırıyoruz. Ardından hangi proje için hangisini seçmen gerektiğini bir tabloyla gösteriyor, ikisini USB kablosuyla birlikte çalıştıran örnek kodu veriyor ve adında Raspberry Pi geçse de aslında Arduino'ya benzeyen Raspberry Pi Pico'nun bu tablodaki yerini anlatıyoruz.

Arduino Uno R3 mikrodenetleyici kartı
Arduino Uno R3: üzerinde işletim sistemi yoktur; 16 MHz'lik ATmega328P, yüklediğin tek programı elektrik verildiği anda çalıştırır.

Raspberry Pi nedir, Arduino nedir?

Raspberry Pi, İngiltere'deki Raspberry Pi Vakfı'nın geliştirdiği tek kartlı bir bilgisayardır (SBC). Raspberry Pi 5'te dört çekirdekli, 2,4 GHz'lik Arm Cortex-A76 işlemci, 1 ile 16 GB arası RAM, iki adet 4K HDMI çıkışı, USB 3.0, Gigabit Ethernet, Wi-Fi ve Bluetooth bulunur. Sabit disk yerine microSD kart (ya da ek kartla NVMe SSD) kullanır ve üzerine Debian tabanlı Raspberry Pi OS kurulur. Yani karşında masaüstü bilgisayarının küçük ve ucuz bir kardeşi vardır; tek farkı kenarındaki 40 pinlik GPIO konnektörüyle LED, buton ve sensörlere doğrudan bağlanabilmesidir.

Arduino ise İtalya'da doğmuş, açık kaynaklı bir mikrodenetleyici platformudur. En yaygın kartı olan Arduino Uno R3'ün kalbinde 16 MHz'te çalışan 8 bitlik ATmega328P vardır: işlemci, 2 KB RAM, 32 KB program belleği ve analog-dijital dönüştürücü aynı küçük yonganın içindedir. İşletim sistemi, dosya sistemi ya da ekran çıkışı yoktur. Bilgisayarında Arduino IDE ile yazdığın kod derlenip kartın flaş belleğine yüklenir; kart her açıldığında önce setup() bir kez, ardından loop() sonsuza kadar çalışır. Platformu daha yakından tanımak için Arduino Nedir? yazısına göz atabilirsin.

Kısa cevap: hangi durumda hangisi?

DurumunSeçimNeden?
Elektroniğe yeni başlıyorsunArduino UnoBasit, dayanıklı, 5 V modüllerle doğrudan uyumlu
Kamera, yüz ya da nesne tanımaRaspberry Piİşlemci gücü, RAM, OpenCV ve kamera desteği
Robot araba, servo, step motorArduinoKesintisiz ve hassas zamanlama
Web sunucusu, veritabanı, akıllı ev merkeziRaspberry PiLinux, ağ servisleri, depolama
Pille günlerce çalışacak sensörArduino ya da PicoWatt değil, miliwatt düzeyinde tüketim
Ekran, klavye ve fareyle kullanılan cihazRaspberry PiMasaüstü, tarayıcı, HDMI
Python öğrenip donanım kontrol etmekRaspberry Pi Pico ya da Raspberry PiMicroPython ya da tam Python
Görüntü işleme ve motor kontrolü birlikteRaspberry Pi + ArduinoPi karar verir, Arduino uygular

Karşılaştırma tablosu: Raspberry Pi 5, Arduino Uno ve Raspberry Pi Pico

ÖzellikRaspberry Pi 5Arduino Uno R3Raspberry Pi Pico
TürTek kartlı bilgisayarMikrodenetleyici kartıMikrodenetleyici kartı
İşlemciBCM2712, 4 çekirdek Cortex-A76, 2,4 GHzATmega328P, 8 bit, 16 MHzRP2040, 2 çekirdek Cortex-M0+, 133 MHz
RAM1, 2, 4, 8 ya da 16 GB2 KB264 KB
DepolamamicroSD kart ya da NVMe SSD32 KB flaş2 MB flaş
İşletim sistemiRaspberry Pi OS (Linux)YokYok
Açılış süresiYaklaşık 15–40 saniye1 saniyenin altında1 saniyenin altında
Güç tüketimiBoşta yaklaşık 3 W, yükte 7–8 WYaklaşık 0,25 W (50 mA)Yaklaşık 0,1 W (20–25 mA)
BeslemeUSB-C, 5 V 5 A önerilirUSB 5 V ya da 7–12 V jakUSB 5 V ya da VSYS'ten 1,8–5,5 V
Mantık gerilimi3,3 V (5 V'a dayanıksız)5 V3,3 V (5 V'a dayanıksız)
GPIO40 pinlik konnektörde 28 GPIO20 (14 dijital + 6 analog)26
Analog giriş (ADC)Yok (harici ADC gerekir)6 kanal, 10 bit3 kanal, 12 bit
Donanımsal PWM4 pinde (GPIO 12, 13, 18, 19)6 pinTüm GPIO'larda, 16 kanal
KablosuzWi-Fi 5 + Bluetooth 5.0YokYok (Pico W'de Wi-Fi + Bluetooth)
Görüntü ve ses2 × 4K HDMI, 2 kamera girişiYokYok
ProgramlamaPython, C/C++, Node.js ve Linux'taki neredeyse her dilArduino C/C++MicroPython, C/C++ SDK, Arduino
Gerçek zamanlılıkYok (Linux zamanlaması)Var, mikrosaniye düzeyindeVar, PIO ile çok daha hassas
Elektrik aniden kesilirseSD kart bozulabilirSorun olmazSorun olmaz
Liste fiyatı (Ekim 2026)45 $ (1 GB) ile 300 $ üzeri (16 GB) arasıOrijinal yaklaşık 25–30 $, klon 5–10 $4 $ (Pico W 6 $, Pico 2 5 $)

Fiyatlar için küçük bir not: Raspberry Pi 4 ve 5'te kullanılan LPDDR4 bellek yongalarının fiyatı yapay zeka veri merkezlerinin talebiyle hızla yükseldiği için Raspberry Pi, Aralık 2025'ten bu yana fiyatları birkaç kez artırdı; Ekim 2026 itibarıyla 2 GB'lık Pi 5'in liste fiyatı 77,50 $'dır. Eski tip bellek kullanan Pi Zero 2 W ise 15 $'da kaldı. Ayrıca Pi'yi çalıştırmak için microSD kart, 27 W'lık USB-C adaptör ve tercihen bir soğutucu gerekir; bunlar toplam maliyete 20–30 $ daha ekler. Arduino Uno ve Pico ise yalnızca bir USB kablosuyla çalışır.

Linux bilgisayar ile mikrodenetleyici arasındaki temel fark

Raspberry Pi'de senin yazdığın Python programı, Linux'un aynı anda yönettiği yüzlerce işlemden yalnızca biridir. Çekirdek (kernel) ağ bağlantısını, ekranı, USB aygıtlarını, arka plandaki servisleri ve senin programını sırayla işlemciye alır. Bu çok güçlü bir yapıdır: dosyaya kayıt yapabilir, aynı anda web sunucusu ve kamera akışı çalıştırabilir, kodunu SSH ile başka bir odadan düzenleyebilirsin. Arduino'da ise işlemcide çalışan tek şey senin kodundur. Arada bir işletim sistemi olmadığı için digitalWrite komutu pinin durumunu birkaç mikrosaniye içinde değiştirir ve bu süre her seferinde aynıdır. Bu farkın pratikteki sonuçları şunlardır:

  • Çoklu görev: Pi aynı anda tarayıcı, Python betiği ve veritabanı çalıştırır; Arduino tek bir loop() döngüsüyle çalışır, birden fazla işi millis() ile kendin sıraya koyarsın.
  • Depolama: Pi'de gigabaytlarca fotoğraf, kayıt ve veritabanı tutabilirsin; Uno'da programın 32 KB'a, değişkenlerin 2 KB RAM'e sığmalıdır.
  • Ağ: Pi kutudan çıktığı gibi Wi-Fi ve Ethernet ile internete bağlanır; Uno'nun ağ bağlantısı yoktur, bunun için ESP32 ya da ek bir modül gerekir.
  • Bakım: Pi bir bilgisayar olduğu için güncelleme, kullanıcı şifresi ve güvenlik ister; Arduino'ya bir kez kod yüklersin, yıllarca aynı şekilde çalışır.
  • Hata durumu: Pi'de bir program çökse bile sistem ayakta kalır ve hata mesajını okursun; Arduino'da kod takılırsa kart sessizce durur, ama watchdog (bekçi zamanlayıcı) ile kendini yeniden başlatabilir.

Açılış süresi ve ani elektrik kesintisi

Arduino'ya elektrik verdiğin anda programın bir saniyeden kısa sürede çalışmaya başlar; reset düğmesine bastığında bile önyükleyici (bootloader) yalnızca bir an bekler. Raspberry Pi ise önce önyükleyiciyi, sonra Linux çekirdeğini ve servisleri yükler; kartın modeline ve SD kartın hızına göre masaüstüne gelmesi 15–40 saniye sürer. Kapı zili, alarm ya da sulama sistemi gibi elektrik kesintisinden sonra hemen çalışması gereken cihazlarda bu fark önemlidir. Daha kritik olan ise kapanıştır: Linux, SD karta sürekli bir şeyler yazar ve yazma sırasında elektrik kesilirse dosya sistemi bozulabilir, Pi bir daha açılmayabilir. Arduino'nun programı flaşta sabit durduğu için fişini istediğin an çekebilirsin.

Raspberry Pi'yi kapatmak için fişi çekme; önce sudo poweroff komutunu çalıştır ya da masaüstünden Kapat'ı seç ve birkaç saniye bekle. Fişi sık sık çekilecek bir cihaz yapıyorsan raspi-config içinde Performance Options bölümündeki Overlay File System ayarıyla sistemi salt okunur moda alabilirsin. Pi 5 için 5 V 5 A'lik (27 W) bir USB-C adaptör kullan; zayıf adaptörde ekranda düşük gerilim uyarısı çıkar, vcgencmd get_throttled komutu 0x0 dışında bir değer döndürür ve kart yük altında yeniden başlayabilir.

Güç tüketimi ve pille çalışma

Güç tarafında fark 10 ile 30 kat arasındadır. Raspberry Pi 5 boştayken yaklaşık 3 W, işlemci tam yükteyken 7–8 W harcar; USB disk ve kamera eklendiğinde bu değer daha da artar. Arduino Uno yaklaşık 50 mA, yani 5 V'ta 0,25 W, Pico ise 0,1 W civarında çeker. Aşağıdaki tabloda 10 000 mAh'lik bir powerbank ile yaklaşık çalışma sürelerini görebilirsin. Hesap şöyle yapılır: etiketteki 10 000 mAh, 3,7 V'luk hücreler içindir ve yaklaşık 37 Wh eder; 5 V'a dönüştürme kayıplarından sonra kullanılabilir enerji 30 Wh civarında kalır. Bu değeri kartın watt cinsinden tüketimine bölersin. Kendi devren için pil ömrü hesaplama aracını kullanabilirsin.

KartTipik tüketim10 000 mAh powerbank ile
Raspberry Pi 5 (boşta)Yaklaşık 3 WYaklaşık 10 saat
Raspberry Pi 5 (tam yük)7–8 WYaklaşık 4 saat
Raspberry Pi Zero 2 WYaklaşık 0,6 WYaklaşık 2 gün
Arduino Uno R3Yaklaşık 0,25 WYaklaşık 5 gün
Raspberry Pi PicoYaklaşık 0,1 WYaklaşık 12 gün (powerbank kapanmazsa)
Uyku modunda Arduino Pro Mini (LED ve regülatör sökülmüş)Mikroamper düzeyiDoğrudan pille aylarca
Çoğu powerbank, çekilen akım 50–100 mA'in altına düşünce kendini kapatır; bu yüzden Pico ya da Arduino ile yaptığın düşük tüketimli cihazlar birkaç saniye sonra sönebilir. Bu tür projelerde powerbank yerine doğrudan pil, 18650 hücre ya da "her zaman açık" modu olan bir powerbank kullan. Pille aylarca çalışacak kablosuz sensörler için ESP32 derin uyku modu da iyi bir seçenektir.

GPIO pinleri ve analog giriş

Raspberry Pi'nin 40 pinlik konnektöründe 28 GPIO bulunur; GPIO 0 ve 1, HAT kartlarının kimlik belleğine ayrıldığı için genellikle kullanılmaz. Bu pinler 3,3 V ile çalışır, 5 V'a dayanıklı değildir ve pin başına yalnızca birkaç miliamper (en fazla 16 mA civarı) akım verebilir; bir LED'i seri dirençle yakabilirsin, ama röle bobinini ya da motoru doğrudan sürmemelisin. En büyük eksik ise analog girişin olmamasıdır: Pi'de analogRead benzeri bir komut yoktur, potansiyometre, LDR ya da toprak nem sensörü gibi analog çıkış veren bir sensörü okumak için harici bir ADC yongası gerekir. Arduino Uno'da ise 6 analog giriş vardır ve 5 V'luk sensörlerin neredeyse hepsi doğrudan bağlanır.

KonuRaspberry PiArduino UnoRaspberry Pi Pico
Mantık seviyesi3,3 V5 V3,3 V
Pin başına akımBirkaç mA, en fazla yaklaşık 16 mA20 mA önerilen, 40 mA mutlak sınırVarsayılan 4 mA, 12 mA'e kadar ayarlanır
Analog okumaYok; MCP3008 ya da ADS1115 gerekiranalogRead(), 0–1023ADC(26).read_u16(), 0–65535
PWM4 pinde donanımsal, diğerlerinde yazılımsal6 pinde analogWrite()Tüm pinlerde donanımsal
Pin numarasıGPIO numarası fiziksel pinden farklıdır (GPIO17 = pin 11)Kartta yazan numaraGP numarası (GP15 = pin 20)
HC-SR04 gibi 5 V modüllerGerilim bölücü şartDoğrudanGerilim bölücü şart

Pi'ye analog sensör bağlamanın iki yolu vardır. Birincisi, SPI ile bağlanan 8 kanallı, 10 bitlik MCP3008 ya da I2C ile bağlanan 4 kanallı, 16 bitlik ADS1115 gibi bir ADC modülü kullanmaktır; gpiozero kütüphanesi MCP3008'i hazır olarak destekler. İkincisi ise sensörleri bir Arduino ya da Pico'ya bağlayıp ölçümleri USB üzerinden Pi'ye göndermektir; aşağıda bunun kodunu vereceğiz. Analog okumanın mantığını ADC nedir? yazısında, kartların pin haritalarını ise Pinout aracında bulabilirsin.

Programlama dili ve geliştirme ortamı

Arduino, C/C++ tabanlı Arduino diliyle programlanır: kodu bilgisayarında Arduino IDE'de yazarsın, kod derlenir ve USB üzerinden karta yüklenir. Raspberry Pi'de ise kod doğrudan Pi'nin üzerinde yazılır ve çalıştırılır; ayrı bir yükleme adımı yoktur. En çok kullanılan dil Python'dır ve Raspberry Pi OS'te Thonny editörü ile gpiozero kütüphanesi hazır gelir. C, C++, Node.js, Go ya da Java gibi Linux'ta çalışan her dili de kullanabilirsin. "Butona basınca LED yansın" programı Pi'de Python ile şöyle görünür:

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

Butonu GPIO27 ile GND arasına, LED'i 220 Ω'luk dirençle GPIO17'ye bağla; Button sınıfı dahili pull-up direncini kendisi açar. Dosyayı buton_led.py adıyla kaydedip terminalde python3 buton_led.py yazarak çalıştırırsın. Dikkat: Raspberry Pi 5'te GPIO'lar yeni RP1 yongası üzerinden yönetildiği için eski RPi.GPIO kütüphanesi çalışmaz ve "RuntimeError: Cannot determine SOC peripheral base address" hatası verir; yeni projelerde gpiozero kullan. Güncel Raspberry Pi OS'te pip install komutu "externally-managed-environment" hatası verirse paketi sudo apt install python3-... biçiminde kur ya da bir sanal ortam (venv) aç. Raspberry Pi Pico'da ise aynı Python bilgisini MicroPython ile kullanırsın.

Gerçek zamanlılık: motor ve sensörde neden Arduino?

Linux işlemciyi programlar arasında paylaştırdığı için Python kodun bazen birkaç milisaniye bekletilebilir ve bunun ne zaman olacağını önceden bilemezsin. Bu bir web sayfası için önemsizdir, ama zamanlamaya dayalı donanımlar için ciddi bir sorundur. Birkaç somut örnek:

  • HC-SR04 mesafe sensörü: Ses, her 1 cm'lik mesafe için gidiş-dönüş yaklaşık 58 µs yol alır. Echo süresini ölçerken araya 100 µs'lik bir gecikme girerse ölçüm 1,7 cm sapar; Pi'de bu tür sapmalar sık görülür.
  • Servo motor: Servo, 50 Hz'lik sinyalde 1–2 ms genişliğindeki darbeyle konumlanır ve 1 derece yaklaşık 5,5 µs'ye karşılık gelir. Pi'de yazılımsal PWM ile sürülen servo titrer, Arduino'da sabit durur.
  • WS2812B LED şerit: Her bit 1,25 µs sürer ve zamanlama 0,15 µs hassasiyet ister; Pi bunu ancak SPI ya da PWM donanımı ve DMA ile yapabilir, Arduino ve Pico ise doğrudan sürer.
  • Step motor ve enkoder: Saniyede binlerce adım darbesi ya da enkoderden gelen hızlı sinyaller Arduino'da kesme (interrupt) ile kaçırılmadan yakalanır.
Pi'de mutlaka hassas zamanlama gerekiyorsa donanımsal PWM pinlerini (GPIO 12, 13, 18, 19) ya da 16 kanallı PCA9685 servo sürücü kartını kullan. Daha temiz çözüm ise zamanlama işini bir Arduino ya da Pico'ya bırakıp Pi ile yalnızca komut alışverişi yapmaktır; Pico'nun PIO birimleri tam da bu iş için tasarlanmıştır (bkz. Pico PIO ve iki çekirdek).

Hangi proje için hangisi?

ProjeEn uygun kartNeden?
Yüz ya da nesne tanıyan kameraRaspberry Pi 5OpenCV, Picamera2, yapay zeka hızlandırıcıları
Wi-Fi'li güvenlik kamerası, fotoğraf göndermeESP32-CAM ya da Raspberry Pi Zero 2 WBasit çekim için ESP32-CAM yeter, akış ve kayıt için Pi
Engelden kaçan ya da çizgi izleyen robotArduinoSensör ve motorlar için hassas, kesintisiz döngü
Kamerayla yön bulan robotRaspberry Pi + ArduinoPi görür ve karar verir, Arduino motorları sürer
Otomatik bitki sulamaArduino ya da ESP32Analog nem sensörü, düşük tüketim, anında açılış
Akıllı ev merkezi (Home Assistant)Raspberry PiSürekli çalışan sunucu, veritabanı, web arayüzü
Hava istasyonuESP32 ya da Pico WWi-Fi ve düşük tüketim bir arada
Retro oyun konsolu, medya oynatıcıRaspberry PiHDMI, ses, USB oyun kolu
Pille çalışan veri kaydediciArduino Pro Mini ya da PicoUyku modunda çok düşük tüketim
Elektronik dersi, ilk devrelerArduino Uno5 V, dayanıklı pinler, bol örnek

Kamera ve görüntü işleme, Raspberry Pi'nin en güçlü olduğu alandır. 12 MP'lik, otomatik odaklı Camera Module 3 kartın kamera girişine şerit kabloyla bağlanır; rpicam-still -o foto.jpg komutuyla fotoğraf çekebilir, Picamera2 ve OpenCV kütüphaneleriyle Python'da hareket algılama, renk takibi, QR kod okuma ya da yüz tanıma yapabilirsin. Daha ağır yapay zeka modelleri için AI HAT+ gibi hızlandırıcı kartlar ya da görüntüyü kameranın içinde işleyen AI Camera kullanılabilir. Raspberry Pi 5'in kamera girişleri eski modellere göre daha küçük (22 pinlik) olduğundan eski kameralar için uygun bir adaptör kablo gerekir. Arduino Uno'nun 2 KB RAM'i ise tek bir küçük fotoğrafı bile tutamaz; yalnızca fotoğraf çekip Telegram'a göndermek istiyorsan ucuz ESP32-CAM iyi bir ara çözümdür.

Sensör ve motor tarafında ise Arduino'nun rakibi yok gibidir. 5 V ile çalıştığı için HC-SR04, röle modülleri, L298N motor sürücü ve karakter LCD gibi piyasadaki modüllerin çoğu ek devre gerektirmeden bağlanır; motor sürücü, röle ve sensör shield'ları doğrudan kartın üstüne takılır. Bir robot arabada Arduino, mesafe sensörünü saniyede onlarca kez okur ve engeli gördüğü anda motorları durdurur; bu tepki süresi hiçbir zaman işletim sisteminin yoğunluğuna bağlı değildir. Servo motorlar ve step motorlar da aynı nedenle Arduino'da düzgün çalışır.

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

İkisini birlikte kullanmak: Raspberry Pi + Arduino

Gelişmiş projelerin çoğunda en iyi çözüm, ikisini birlikte kullanmaktır. Bunu insan vücudu gibi düşünebilirsin: Raspberry Pi beyindir; kamerayı işler, internete bağlanır, kayıt tutar ve karar verir. Arduino ise omurilik ve kaslardır; sensörleri okur, motorları sürer ve acil bir durumda Pi'ye sormadan refleksle tepki verir. Örneğin kameralı bir robot arabada Pi görüntüdeki çizgiyi bulup "sola dön" komutu gönderir; Arduino bu komutu motor hızlarına çevirir ve önünde engel belirirse kendisi durur. İki kartı bağlamanın yaygın yolları şunlardır:

BağlantıNasıl yapılır?Dikkat edilecekler
USB seri (en kolay)Arduino'yu Pi'nin USB portuna tak; /dev/ttyACM0 ya da /dev/ttyUSB0 olarak görünürArduino'yu da Pi besler, seviye dönüştürücü gerekmez
UART (GPIO 14 ve 15)Pi TX → Arduino RX, Arduino TX → Pi RX, GND'ler ortakArduino'nun 5 V'luk TX sinyali için gerilim bölücü şart
I2CPi ana cihaz (master), Arduino 0x08 gibi bir adresle yardımcı cihaz (slave)Seviye dönüştürücü önerilir
Wi-Fi / MQTTESP32 ölçümleri ağ üzerinden Pi'deki MQTT sunucusuna gönderirKablo yok, ama ağ gecikmesi var
  1. Aşağıdaki Arduino kodunu bilgisayarından karta yükle (istersen Pi üzerinde arduino-cli ile de yükleyebilirsin).
  2. Arduino'yu USB kablosuyla Pi'ye bağla ve terminalde ls /dev/ttyACM* /dev/ttyUSB* yazarak port adını bul. Orijinal Uno genellikle /dev/ttyACM0, CH340 yongalı klonlar /dev/ttyUSB0 olarak görünür.
  3. pyserial kütüphanesi yüklü değilse sudo apt install python3-serial komutuyla kur.
  4. Kullanıcın seri porta erişemiyorsa sudo usermod -a -G dialout $USER yaz, ardından oturumu kapatıp yeniden aç.
  5. Python kodunu pi_arduino.py adıyla kaydedip python3 pi_arduino.py ile çalıştır; Arduino IDE'nin seri port ekranı açıksa önce onu kapat.
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

Arduino her 500 ms'de bir "A0:512" biçiminde bir satır gönderir ve satır sonuyla biten "LED1" ya da "LED0" komutlarını dinler; millis() kullandığı için komut beklerken ölçümü aksatmaz. Python tarafında time.sleep(2) satırı önemlidir: Pi seri portu açtığında Arduino otomatik olarak yeniden başlar ve ilk iki saniyede gönderilen veriler kaybolur. Eşik değeri olan 300'ü kendi sensörüne göre değiştir; LDR'yi hangi yönde bağladığına göre karanlıkta değer artabilir ya da azalabilir. Seri haberleşmenin ayrıntıları için Arduino ve Python seri haberleşme ile UART nedir? yazılarına bakabilirsin.

Arduino'yu USB yerine Pi'nin GPIO 14 (TX) ve GPIO 15 (RX) pinlerine bağlayacaksan, Arduino'nun TX hattı 5 V verir ve Pi'nin RX pinini bozabilir. Araya bir gerilim bölücü koy: Arduino TX'ten seri 1 kΩ, Pi RX ile GND arasına 2 kΩ bağlarsan 5 × 2 / (1 + 2) = 3,33 V elde edersin. Pi'nin 3,3 V'luk TX sinyalini Arduino genellikle doğru okur; I2C ve SPI için ise bir lojik seviye dönüştürücü kullan.

Raspberry Pi Pico'nun yeri: adı Raspberry Pi, kendisi mikrodenetleyici

En sık karıştırılan konu budur. Raspberry Pi Pico, Raspberry Pi tarafından üretilmesine rağmen bir bilgisayar değil, Arduino gibi bir mikrodenetleyici kartıdır: işletim sistemi yoktur, anında açılır, 0,1 W civarında harcar ve gerçek zamanlı çalışır. Kalbinde Raspberry Pi'nin kendi tasarladığı çift çekirdekli RP2040 yongası (Pico 2'de 150 MHz'lik RP2350) bulunur. Arduino Uno'ya göre çok daha fazla RAM'e (264 KB), 12 bitlik ADC'ye ve zamanlama işleri için PIO birimlerine sahiptir; MicroPython, C/C++ ya da Arduino IDE ile programlanır. 4 $'lık fiyatıyla Arduino Uno'dan ucuzdur, ama 3,3 V ile çalıştığı için 5 V'luk modüllere dikkat etmek gerekir. Ayrıntılar için Raspberry Pi Pico Nedir? yazısını okuyabilirsin.

Raspberry Pi Pico mikrodenetleyici kartı
Raspberry Pi Pico: adında Raspberry Pi geçse de işletim sistemi çalıştırmaz; Arduino gibi tek bir programı çalıştıran, 3,3 V'luk bir mikrodenetleyici kartıdır.

Pico'nun bu karşılaştırmadaki en büyük avantajı, Raspberry Pi ile aynı 3,3 V seviyesinde çalışmasıdır: UART pinlerini seviye dönüştürücü olmadan doğrudan Pi'ye bağlayabilir ya da USB'ye takıp Arduino gibi kullanabilirsin. Aşağıdaki MicroPython kodu, yukarıdaki Arduino koduyla aynı "A0:değer" biçiminde veri gönderir ve aynı LED komutlarını dinler; böylece Pi'deki Python betiği hiç değişmeden çalışır. Kodu Thonny ile Pico'ya main.py adıyla kaydet, sonra Thonny'yi kapat ki seri port Pi'deki betiğe kalsın.

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))

Sınırlar da giderek bulanıklaşıyor. Arduino, 2025'te iki dünyayı tek kartta birleştiren Arduino UNO Q'yu tanıttı: Uno boyutundaki bu kartta Debian Linux çalıştıran dört çekirdekli bir Qualcomm işlemci ile Arduino kodlarını gerçek zamanlı çalıştıran bir STM32U585 mikrodenetleyici bir arada bulunur. Yani "Pi + Arduino" mimarisi artık tek bir kartta da mümkün. Yine de mantık değişmez: Linux tarafı ağı, görüntüyü ve uygulamayı, mikrodenetleyici tarafı pinleri ve zamanlamayı yönetir. Bu yazıdaki farkları bilen biri, böyle melez kartları da çok daha verimli kullanır.

Sık yapılan hatalar ve yanlış bilinenler

  • "Raspberry Pi Pico küçük bir Raspberry Pi'dir": Değildir; Linux çalıştırmaz, HDMI çıkışı yoktur. Pico bir mikrodenetleyicidir ve Arduino ile aynı sınıftadır.
  • Pi'ye 5 V'luk sinyal bağlamak: HC-SR04'ün ECHO pini ya da Arduino'nun TX hattı doğrudan GPIO'ya bağlanırsa pin, hatta işlemci kalıcı olarak bozulabilir; gerilim bölücü kullan.
  • Pi'de analogRead aramak: Raspberry Pi'de analog giriş yoktur; MCP3008, ADS1115 ya da yardımcı bir Arduino veya Pico kullan.
  • Fişi çekerek kapatmak: SD kartı bozmanın en hızlı yoludur; her seferinde sudo poweroff kullan.
  • Telefon şarj aletiyle Pi 5 çalıştırmak: 5 V 5 A vermeyen bir adaptörde Pi 5, USB portlarının toplam akımını 600 mA ile sınırlar ve yük altında yeniden başlayabilir.
  • "Permission denied: '/dev/ttyACM0'" hatası: Kullanıcın dialout grubunda değildir; usermod komutunu çalıştırıp oturumu yenile. "Device or resource busy" hatasında ise portu başka bir program (Serial Monitor ya da Thonny) tutuyordur.
  • "Arduino eskidi, artık Pi var" düşüncesi: İkisi rakip değil, farklı işlerin aletidir; çamaşır makinesinden otomobile kadar cihazların çoğu bugün hâlâ mikrodenetleyiciyle çalışır.
Hangisiyle başlayacağına karar veremiyorsan elektroniğin temelini Arduino Uno ile öğren: LED, buton, sensör ve motorla çalışırken akımı, gerilimi ve zamanlamayı birebir görürsün. Kamera, ağ ya da ekran gerektiren bir fikrin olduğunda Raspberry Pi'yi ekle; o noktada Arduino'da öğrendiklerin Pi'nin GPIO'larını güvenle kullanmanı sağlar. Kart seçerken Hangi Arduino'yu almalıyım? ve Arduino mu ESP32 mi? yazıları da işine yarar.

Kısacası Raspberry Pi düşünen ve gören bir bilgisayar, Arduino ise hissettiğini anında harekete çeviren bir denetleyicidir; iyi bir proje çoğu zaman ikisinin güçlü yanlarını birleştirir. Arduino, ESP32 ve Raspberry Pi Pico ile LED'den sensöre, robottan Wi-Fi projelerine kadar onlarca uygulamayı BlueGrays uygulamasında adım adım devre şeması ve hazır kodlarıyla bulabilir, ilk projelerini ücretsiz olanlardan başlayarak kurabilirsin.

Sıkça sorulan sorular

Raspberry Pi ile Arduino arasındaki fark nedir?

Raspberry Pi, Linux işletim sistemi çalıştıran tek kartlı bir bilgisayardır; ekran, klavye, internet ve kamera ile bir PC gibi kullanılır. Arduino ise işletim sistemi olmayan, yüklenen tek programı anında ve gerçek zamanlı çalıştıran bir mikrodenetleyici kartıdır. Pi karmaşık hesaplama ve ağ işlerinde, Arduino sensör, motor ve düşük güç gerektiren işlerde güçlüdür.

Yeni başlayan biri Raspberry Pi mi Arduino mu almalı?

Elektroniği öğrenmek istiyorsan Arduino Uno ile başla; 5 V modüllerle doğrudan çalışır, hatalara karşı daha dayanıklıdır ve örnek sayısı çok fazladır. Asıl hedefin Linux, Python programlama, kamera ya da sunucu projeleriyse Raspberry Pi daha doğru bir ilk adımdır. Python sevip mikrodenetleyici öğrenmek isteyenler için Raspberry Pi Pico ucuz bir ara yoldur.

Arduino kodu Raspberry Pi'de çalışır mı?

Doğrudan çalışmaz. Arduino kodları ATmega328P gibi mikrodenetleyiciler için derlenir; Raspberry Pi'de aynı işi Python ve gpiozero gibi kütüphanelerle yeniden yazman gerekir. Ancak Raspberry Pi'yi bir bilgisayar gibi kullanıp arduino-cli ile Arduino'ya kod yükleyebilirsin.

Raspberry Pi ve Arduino birlikte kullanılabilir mi?

Evet. En kolay yol, Arduino'yu USB kablosuyla Pi'ye bağlayıp seri port üzerinden veri alışverişi yapmaktır; Python'da pyserial kütüphanesi yeterlidir. Bu düzende Pi kamera, ağ ve karar işlerini, Arduino ise sensör ve motor kontrolünü üstlenir. GPIO üzerinden UART ya da I2C ile bağlanacaksan 5 V ile 3,3 V farkı için gerilim bölücü ya da seviye dönüştürücü kullanmalısın.

Raspberry Pi Pico bir Arduino mu?

Hayır, ama aynı sınıftadır: Pico da Arduino gibi işletim sistemi olmayan bir mikrodenetleyici kartıdır. RP2040 yongası sayesinde Uno'dan daha hızlıdır, daha çok RAM'e sahiptir ve MicroPython ile programlanabilir; istersen Arduino IDE ile de kodlayabilirsin. En önemli farkı, 5 V yerine 3,3 V ile çalışmasıdır.

Robot yapmak için Raspberry Pi mi Arduino mu daha iyi?

Engelden kaçan, çizgi izleyen ya da kumandayla giden bir robot için Arduino yeterli ve daha güvenilirdir; motorları ve sensörleri gecikmesiz yönetir. Robot kamerayla nesne tanıyacak, harita çıkaracak ya da internetten kontrol edilecekse Raspberry Pi gerekir. Gelişmiş robotlarda genellikle ikisi birlikte kullanılır: Pi karar verir, Arduino motorları sürer.

Tüm projeleri gör
Led Yakma
#1Başlangıç

Led Yakma

Elektroniğin ilk merhabası: tek bir LED'i yakıp söndürmek. Arduino LED'i çok kısa aralıklarla yakıp söndürür, ışık hızlı hızlı göz kırpar. Kartın bir ışığı nasıl yönettiğini en sade haliyle görür, son

4.6(188)
1127
Raspberry Pi Pico Dahili LED Yakma (Pico ve Pico W)
#147Başlangıç

Raspberry Pi Pico Dahili LED Yakma (Pico ve Pico W)

Raspberry Pi Pico serisinin açılış projesi! Pico'nun üzerindeki yeşil dahili LED'i yakıp söndürerek kartın çalıştığını doğruluyoruz — klasik "Hello World" tarzı ilk deney. Harici bileşene ihtiyaç YOK, sadece Pico ve USB kablosu yeterli. Kod MicroPython ile yazıldı (Raspberry Pi Vakfı'nın resmi olarak desteklediği dil). Thonny IDE ile Pico'yu programlarken machine.Pin sınıfı, Pin.OUT mode, led.on()/off() metodları ve time.sleep() fonksiyonlarını kavrarsın. Seri

5.0(1)
10
Ldr İle Işık Şiddeti Okuma
#11Başlangıç

Ldr İle Işık Şiddeti Okuma

Odanın ne kadar aydınlık olduğunu sayıyla görmek ister misin? Işığa duyarlı küçük bir parça olan LDR ortam ışığını ölçer ve Arduino bu değeri yarım saniyede bir bilgisayar ekranına yazar. Elinle üstün

4.6(81)
139
DHT11 İle Sıcaklık Ve Nem
#55Orta

DHT11 İle Sıcaklık Ve Nem

Odan kaç derece, hava nemli mi, kuru mu? DHT11 sensörü sıcaklığı ve nemi ölçer, Arduino da bu değerleri iki satırlık LCD ekrana yazar ve birkaç saniyede bir yeniler. Sensöre bir şey olursa ekranda hat

4.7(47)
73
HC-SR04 Mesafe Ölçme (Serial Ekran)
#27Başlangıç

HC-SR04 Mesafe Ölçme (Serial Ekran)

Yarasalar karanlıkta yollarını nasıl buluyorsa HC-SR04 sensörü de öyle çalışır: duyamadığın bir ses gönderir, yankısını dinler ve önündeki cismin ne kadar uzakta olduğunu ölçer. Arduino bu mesafeyi sa

4.6(46)
71
2 Arduino Tek Yönlü Haberleşme
#57Orta
Premium

2 Arduino Tek Yönlü Haberleşme

İki Arduino'yu tek bir kabloyla konuşturursun: birindeki butona basınca öbüründeki LED yanar, bir daha basınca söner. Gönderen kart butona basıldığını kısa bir mesajla bildirir, alan kart bu mesajı du

4.4(37)
50
Python Yazılımcı Klavyesi
#66Orta
Premium

Python Yazılımcı Klavyesi

Kod yazarken aynı kalıpları tekrar tekrar yazmaktan sıkıldıysan bu küçük klavye tam sana göre. Arduino Leonardo bilgisayara klavye gibi bağlanır; 4x4 tuş takımındaki her tuş koşul, döngü, ekrana yazdı

4.6(35)
45
Akıllı Sulama İstasyonu
#83İleri
Premium

Akıllı Sulama İstasyonu

Tatile gidince çiçeklerin kurumasın diye kendi kendine sulayan bir bahçıvan. Toprak nem sensörü toprağın ne kadar ıslak olduğunu ölçer; toprak kuruyunca Arduino su pompasını birkaç saniye çalıştırır v

5.0(42)
57