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.

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?
| Durumun | Seçim | Neden? |
|---|---|---|
| Elektroniğe yeni başlıyorsun | Arduino Uno | Basit, dayanıklı, 5 V modüllerle doğrudan uyumlu |
| Kamera, yüz ya da nesne tanıma | Raspberry Pi | İşlemci gücü, RAM, OpenCV ve kamera desteği |
| Robot araba, servo, step motor | Arduino | Kesintisiz ve hassas zamanlama |
| Web sunucusu, veritabanı, akıllı ev merkezi | Raspberry Pi | Linux, ağ servisleri, depolama |
| Pille günlerce çalışacak sensör | Arduino ya da Pico | Watt değil, miliwatt düzeyinde tüketim |
| Ekran, klavye ve fareyle kullanılan cihaz | Raspberry Pi | Masaüstü, tarayıcı, HDMI |
| Python öğrenip donanım kontrol etmek | Raspberry Pi Pico ya da Raspberry Pi | MicroPython ya da tam Python |
| Görüntü işleme ve motor kontrolü birlikte | Raspberry Pi + Arduino | Pi karar verir, Arduino uygular |
Karşılaştırma tablosu: Raspberry Pi 5, Arduino Uno ve Raspberry Pi Pico
| Özellik | Raspberry Pi 5 | Arduino Uno R3 | Raspberry Pi Pico |
|---|---|---|---|
| Tür | Tek kartlı bilgisayar | Mikrodenetleyici kartı | Mikrodenetleyici kartı |
| İşlemci | BCM2712, 4 çekirdek Cortex-A76, 2,4 GHz | ATmega328P, 8 bit, 16 MHz | RP2040, 2 çekirdek Cortex-M0+, 133 MHz |
| RAM | 1, 2, 4, 8 ya da 16 GB | 2 KB | 264 KB |
| Depolama | microSD kart ya da NVMe SSD | 32 KB flaş | 2 MB flaş |
| İşletim sistemi | Raspberry Pi OS (Linux) | Yok | Yok |
| Açılış süresi | Yaklaşık 15–40 saniye | 1 saniyenin altında | 1 saniyenin altında |
| Güç tüketimi | Boşta yaklaşık 3 W, yükte 7–8 W | Yaklaşık 0,25 W (50 mA) | Yaklaşık 0,1 W (20–25 mA) |
| Besleme | USB-C, 5 V 5 A önerilir | USB 5 V ya da 7–12 V jak | USB 5 V ya da VSYS'ten 1,8–5,5 V |
| Mantık gerilimi | 3,3 V (5 V'a dayanıksız) | 5 V | 3,3 V (5 V'a dayanıksız) |
| GPIO | 40 pinlik konnektörde 28 GPIO | 20 (14 dijital + 6 analog) | 26 |
| Analog giriş (ADC) | Yok (harici ADC gerekir) | 6 kanal, 10 bit | 3 kanal, 12 bit |
| Donanımsal PWM | 4 pinde (GPIO 12, 13, 18, 19) | 6 pin | Tüm GPIO'larda, 16 kanal |
| Kablosuz | Wi-Fi 5 + Bluetooth 5.0 | Yok | Yok (Pico W'de Wi-Fi + Bluetooth) |
| Görüntü ve ses | 2 × 4K HDMI, 2 kamera girişi | Yok | Yok |
| Programlama | Python, C/C++, Node.js ve Linux'taki neredeyse her dil | Arduino C/C++ | MicroPython, C/C++ SDK, Arduino |
| Gerçek zamanlılık | Yok (Linux zamanlaması) | Var, mikrosaniye düzeyinde | Var, PIO ile çok daha hassas |
| Elektrik aniden kesilirse | SD kart bozulabilir | Sorun olmaz | Sorun 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.
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.
| Kart | Tipik tüketim | 10 000 mAh powerbank ile |
|---|---|---|
| Raspberry Pi 5 (boşta) | Yaklaşık 3 W | Yaklaşık 10 saat |
| Raspberry Pi 5 (tam yük) | 7–8 W | Yaklaşık 4 saat |
| Raspberry Pi Zero 2 W | Yaklaşık 0,6 W | Yaklaşık 2 gün |
| Arduino Uno R3 | Yaklaşık 0,25 W | Yaklaşık 5 gün |
| Raspberry Pi Pico | Yaklaşık 0,1 W | Yaklaşık 12 gün (powerbank kapanmazsa) |
| Uyku modunda Arduino Pro Mini (LED ve regülatör sökülmüş) | Mikroamper düzeyi | Doğrudan pille aylarca |
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.
| Konu | Raspberry Pi | Arduino Uno | Raspberry Pi Pico |
|---|---|---|---|
| Mantık seviyesi | 3,3 V | 5 V | 3,3 V |
| Pin başına akım | Birkaç mA, en fazla yaklaşık 16 mA | 20 mA önerilen, 40 mA mutlak sınır | Varsayılan 4 mA, 12 mA'e kadar ayarlanır |
| Analog okuma | Yok; MCP3008 ya da ADS1115 gerekir | analogRead(), 0–1023 | ADC(26).read_u16(), 0–65535 |
| PWM | 4 pinde donanımsal, diğerlerinde yazılımsal | 6 pinde analogWrite() | Tüm pinlerde donanımsal |
| Pin numarası | GPIO numarası fiziksel pinden farklıdır (GPIO17 = pin 11) | Kartta yazan numara | GP numarası (GP15 = pin 20) |
| HC-SR04 gibi 5 V modüller | Gerilim bölücü şart | Doğrudan | Gerilim 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:
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 eventsButonu 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.
Hangi proje için hangisi?
| Proje | En uygun kart | Neden? |
|---|---|---|
| Yüz ya da nesne tanıyan kamera | Raspberry Pi 5 | OpenCV, Picamera2, yapay zeka hızlandırıcıları |
| Wi-Fi'li güvenlik kamerası, fotoğraf gönderme | ESP32-CAM ya da Raspberry Pi Zero 2 W | Basit çekim için ESP32-CAM yeter, akış ve kayıt için Pi |
| Engelden kaçan ya da çizgi izleyen robot | Arduino | Sensör ve motorlar için hassas, kesintisiz döngü |
| Kamerayla yön bulan robot | Raspberry Pi + Arduino | Pi görür ve karar verir, Arduino motorları sürer |
| Otomatik bitki sulama | Arduino ya da ESP32 | Analog nem sensörü, düşük tüketim, anında açılış |
| Akıllı ev merkezi (Home Assistant) | Raspberry Pi | Sürekli çalışan sunucu, veritabanı, web arayüzü |
| Hava istasyonu | ESP32 ya da Pico W | Wi-Fi ve düşük tüketim bir arada |
| Retro oyun konsolu, medya oynatıcı | Raspberry Pi | HDMI, ses, USB oyun kolu |
| Pille çalışan veri kaydedici | Arduino Pro Mini ya da Pico | Uyku modunda çok düşük tüketim |
| Elektronik dersi, ilk devreler | Arduino Uno | 5 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.




İ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ür | Arduino'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 ortak | Arduino'nun 5 V'luk TX sinyali için gerilim bölücü şart |
| I2C | Pi ana cihaz (master), Arduino 0x08 gibi bir adresle yardımcı cihaz (slave) | Seviye dönüştürücü önerilir |
| Wi-Fi / MQTT | ESP32 ölçümleri ağ üzerinden Pi'deki MQTT sunucusuna gönderir | Kablo yok, ama ağ gecikmesi var |
- Aşağıdaki Arduino kodunu bilgisayarından karta yükle (istersen Pi üzerinde arduino-cli ile de yükleyebilirsin).
- 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.
- pyserial kütüphanesi yüklü değilse sudo apt install python3-serial komutuyla kur.
- Kullanıcın seri porta erişemiyorsa sudo usermod -a -G dialout $USER yaz, ardından oturumu kapatıp yeniden aç.
- 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.
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}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 = yeniArduino 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.
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.

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.
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.
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.
Bu yazıdan sonra yapabileceğin projeler
Tüm projeleri gör
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

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

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

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

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

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

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ı

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
Diğer yazılar
BlueGrays uygulaması
Bu devreyi telefonunda adım adım kur
Devre şeması, kod ve parça listesi tek ekranda. 200'den fazla Arduino, ESP32 ve Pico projesi seni bekliyor.
Telefonunla tara
Kamerayı koda tut; telefonunun uygulama mağazası açılır.
ya da mağazada aç

