Arduino & Raspberry Pi
Robotik projelerin iki temel kartını baştan sona tanıyın: hangisini ne zaman seçeceğinizi, mikrodenetleyiciyi nasıl programlayacağınızı, sensörleri hangi protokollerle bağlayacağınızı ve bir devre şemasını nasıl okuyacağınızı tek sayfada, örnek kodlarla öğrenin.
Hangisini seçmeliyim?
Kısa cevap: elektronikle başlıyorsanız Arduino, yazılım ve görüntü işleme ağırlıklıysa Raspberry Pi.
Arduino mu, Raspberry Pi mi?İki farklı dünya, iki farklı iş
En sık sorulan soru bu, ama aslında iki kart birbirinin rakibi değil. Arduino bir mikrodenetleyici kartıdır: tek bir işi, çok hızlı ve güvenilir şekilde, işletim sistemi olmadan yapar. Raspberry Pi ise tek kartlı bir bilgisayardır: Linux çalıştırır, ekran, klavye, kamera ve internetle çalışır.
Basit bir benzetme: Raspberry Pi robotun beyni, Arduino ise omuriliğidir. Beyin "ileri git, karşıdaki nesneyi tanı" gibi kararları verir; omurilik motorlara milisaniye hassasiyetinde sinyal gönderir ve sensörleri dinler. Gelişmiş robotlarda ikisi birlikte kullanılır.
| Özellik | Arduino Uno R3 | Arduino Uno R4 Minima | Raspberry Pi Pico | Raspberry Pi 5 |
|---|---|---|---|---|
| Tür | Mikrodenetleyici kartı | Mikrodenetleyici kartı | Mikrodenetleyici kartı | Tek kartlı bilgisayar |
| İşlemci | ATmega328P, 8 bit, 16 MHz | Renesas RA4M1, 32 bit Arm Cortex-M4, 48 MHz | RP2040, çift çekirdek Cortex-M0+, 133 MHz | BCM2712, 4 çekirdek Cortex-A76, 2,4 GHz |
| Bellek | 32 KB flash, 2 KB SRAM | 256 KB flash, 32 KB SRAM | 2 MB flash, 264 KB SRAM | GB seviyesinde RAM, microSD veya SSD |
| İşletim sistemi | Yok | Yok | Yok | Raspberry Pi OS (Linux) |
| Mantık gerilimi | 5V | 5V | 3,3V | 3,3V |
| Analog giriş | 6 adet, 10 bit | 6 adet, 14 bite kadar | 3 adet, 12 bit | Yok (harici ADC gerekir) |
| Programlama | C/C++ (Arduino IDE) | C/C++ (Arduino IDE) | MicroPython, C/C++ | Python, C/C++ ve neredeyse her dil |
| Açılış süresi | Anında | Anında | Anında | Onlarca saniye |
| Güç tüketimi | Çok düşük | Çok düşük | Çok düşük | Yüksek (5V 5A adaptör önerilir) |
Arduino seçin, eğer…
- Sensör okuyup LED, motor veya röle kontrol edecekseniz
- Zamanlama kritikse (servo, adım motoru, PWM)
- Proje pil ile uzun süre çalışacaksa
- Elektriği kesilip geri geldiğinde anında çalışmalıysa
- Elektroniğe yeni başlıyorsanız (bozulmaya daha dayanıklı)
Raspberry Pi seçin, eğer…
- Kamera ile görüntü işleme veya nesne tanıma yapacaksanız
- Yapay zeka modelleri çalıştıracaksanız
- Web sunucu, veri tabanı veya internet bağlantısı gerekiyorsa
- Ekran, klavye ve fare ile kullanılacak bir sistem kuruyorsanız
- ROS gibi Linux tabanlı robotik yazılımlar kullanacaksanız
Popüler kartlar ve kullanım alanları
Arduino Uno R3
- Çip
- ATmega328P
- Pin
- 14 dijital (6 PWM), 6 analog
- Seviye
- 5V
Eğitimlerin ve kütüphanelerin büyük kısmı bu kart için yazılmıştır. İlk kart olarak en güvenli seçimdir.
Arduino Nano
- Çip
- ATmega328P
- Pin
- 14 dijital, 8 analog
- Seviye
- 5V
Uno ile aynı kodu çalıştırır, ama doğrudan breadboard'a takılır. Robot araç ve giyilebilir projeler için idealdir.
Arduino Mega 2560
- Çip
- ATmega2560
- Pin
- 54 dijital (15 PWM), 16 analog
- Bellek
- 256 KB flash, 8 KB SRAM
Çok sayıda servo, sensör ve ekran kullanan robot kolu ve 3D yazıcı gibi projeler için.
ESP32 DevKit
- Çip
- Çift çekirdek, 240 MHz'e kadar
- Kablosuz
- Wi-Fi ve Bluetooth
- Seviye
- 3,3V
Arduino IDE ile programlanır. Telefondan kontrol, IoT ve internete veri gönderen projeler için en popüler kart.
Raspberry Pi Pico
- Çip
- RP2040 (Pico 2'de RP2350)
- Dil
- MicroPython, C/C++
- Seviye
- 3,3V
Python ile mikrodenetleyici programlamak isteyenler için uygun fiyatlı bir başlangıç. Wi-Fi'lı "W" sürümleri de vardır.
Raspberry Pi 5
- İşlemci
- 4 çekirdek, 2,4 GHz
- GPIO
- 40 pin, 3,3V
- Bağlantı
- Wi-Fi, Bluetooth, Ethernet, 2× kamera
Görüntü işleme, yapay zeka, ROS ve masaüstü kullanım için. Kararlı çalışması için resmi 27W güç adaptörü önerilir.
Mikrodenetleyici Programlamaİlk koddan bellek yönetimine
Mikrodenetleyici (MCU), işlemci, bellek ve giriş/çıkış birimlerinin tek bir çipe sığdırıldığı küçük bir bilgisayardır. Çamaşır makinenizden arabanızın kapı kilidine kadar etrafınızda yüzlercesi çalışır. Arduino kartı, bu çipi kolayca programlayabilmeniz için USB bağlantısı, voltaj regülatörü ve pin başlıkları ekler.
Arduino IDE kurulumu ve ilk yükleme
IDE'yi indirin
arduino.cc adresinden işletim sisteminize uygun Arduino IDE 2 sürümünü indirip kurun. Kurulum sırasında sürücü yükleme isteklerini onaylayın.
Kartı bağlayın
Arduino'yu USB kablosuyla bilgisayara takın. Yeşil ON ışığı yanmalı. Bazı klon kartlar CH340 sürücüsü ister; port görünmüyorsa bu sürücüyü kurun.
Kartı ve portu seçin
Üst kısımdaki açılır menüden kartınızı (Arduino Uno) ve görünen portu (Windows'ta COM3 gibi, macOS'ta /dev/cu.usbmodem…) seçin.
Örnek kodu açın
Dosya › Örnekler › 01.Basics › Blink yolunu izleyin. Bu kod kart üzerindeki LED'i yakıp söndürür.
Yükleyin
Sağ ok (→) düğmesine basın. IDE kodu önce derler, sonra karta gönderir. "Yükleme tamamlandı" mesajından sonra kart üzerindeki L LED'i saniyede bir yanıp sönmelidir.
Bir Arduino kodunun (sketch) yapısı
Her Arduino programı iki zorunlu fonksiyondan oluşur. setup() kart açıldığında veya resetlendiğinde bir kez çalışır; pin ayarları ve başlangıç işlemleri buraya yazılır. loop() ise setup bittikten sonra kart kapanana kadar sonsuz döngüde tekrar eder.
// 1) Kütüphaneler ve sabitler en üste yazılır
const int ledPin = 13; // Kart üzerindeki dahili LED
// 2) Global değişkenler: her yerden erişilebilir
int sayac = 0;
// 3) setup(): kart açıldığında BİR kez çalışır
void setup() {
pinMode(ledPin, OUTPUT); // Pini çıkış yap
Serial.begin(9600); // Bilgisayarla haberleşmeyi başlat
}
// 4) loop(): setup bittikten sonra SÜREKLİ tekrar eder
void loop() {
digitalWrite(ledPin, HIGH);
delay(500);
digitalWrite(ledPin, LOW);
delay(500);
sayac++; // sayac = sayac + 1
Serial.print("Tur: ");
Serial.println(sayac);
}
Temel fonksiyonlar
| Fonksiyon | Ne yapar? | Örnek |
|---|---|---|
| pinMode() | Pini giriş, çıkış veya dahili pull-up'lı giriş olarak ayarlar. | pinMode(2, INPUT_PULLUP); |
| digitalWrite() | Çıkış pinini HIGH (5V) veya LOW (0V) yapar. | digitalWrite(13, HIGH); |
| digitalRead() | Giriş pinindeki değeri HIGH veya LOW olarak okur. | int b = digitalRead(2); |
| analogRead() | Analog pindeki 0–5V gerilimi 0–1023 arası sayıya çevirir. | int v = analogRead(A0); |
| analogWrite() | ~ işaretli pinlerden 0–255 arası PWM sinyali üretir. | analogWrite(9, 128); |
| delay() | Programı belirtilen milisaniye kadar durdurur. | delay(1000); |
| millis() | Kart açıldığından beri geçen süreyi ms olarak verir; programı durdurmaz. | unsigned long t = millis(); |
| map() | Bir değeri bir aralıktan diğerine orantılı taşır. | map(v, 0, 1023, 0, 180); |
| Serial.println() | Bilgisayardaki Seri Port Ekranına yazı gönderir. | Serial.println(v); |
Veri tipleri ve bellek
Arduino Uno'nun yalnızca 2 KB çalışma belleği (SRAM) vardır. Bu yüzden değişkenlere doğru veri tipini seçmek, masaüstü programlamadan çok daha önemlidir.
| Tip | Boyut (Uno) | Değer aralığı | Ne zaman kullanılır? |
|---|---|---|---|
| bool | 1 bayt | true / false | Açık-kapalı durumları |
| byte | 1 bayt | 0 – 255 | PWM değeri, küçük sayaçlar |
| char | 1 bayt | −128 – 127 | Tek karakter |
| int | 2 bayt | −32.768 – 32.767 | Pin numaraları, sensör okumaları |
| unsigned int | 2 bayt | 0 – 65.535 | Negatif olmayan sayaçlar |
| long | 4 bayt | ±2,1 milyar | Büyük sayılar, mesafe hesapları |
| unsigned long | 4 bayt | 0 – 4,29 milyar | millis() ve micros() sonuçları |
| float | 4 bayt | 6–7 basamak hassasiyet | Sıcaklık, voltaj gibi ondalıklı değerler |
int 4 bayttır. Kodunuzu farklı kartlarda çalıştıracaksanız boyutu kesin olması gereken yerlerde int16_t, uint32_t gibi tipleri tercih edin. Ayrıca sabit metinleri Serial.println(F("Merhaba")); şeklinde yazarak SRAM yerine flash bellekte saklayabilirsiniz.delay() yerine millis() kullanmak
delay(1000) çalışırken Arduino bir saniye boyunca hiçbir şey yapamaz: buton basışlarını kaçırır, sensörleri okuyamaz. Birden fazla işi aynı anda yürütmek için "zamanı geldi mi?" diye soran millis() yöntemi kullanılır. Bu, robotik projelerin olmazsa olmaz tekniğidir.
// delay() kullanmadan iki LED'i farklı hızlarda yakıp söndürme
const int led1 = 8;
const int led2 = 9;
unsigned long onceki1 = 0;
unsigned long onceki2 = 0;
bool durum1 = LOW;
bool durum2 = LOW;
void setup() {
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
unsigned long simdi = millis();
// 1. görev: her 500 ms'de bir
if (simdi - onceki1 >= 500) {
onceki1 = simdi;
durum1 = !durum1;
digitalWrite(led1, durum1);
}
// 2. görev: her 120 ms'de bir
if (simdi - onceki2 >= 120) {
onceki2 = simdi;
durum2 = !durum2;
digitalWrite(led2, durum2);
}
// Buraya buton okuma, sensör ölçme gibi başka görevler eklenebilir
}
Kodunuz karta nasıl ulaşır?
Ön işleme
IDE, yazdığınız .ino dosyasına fonksiyon tanımlarını ve
Arduino.hbaşlığını ekleyerek onu standart bir C++ dosyasına dönüştürür.Derleme
Uno için avr-gcc derleyicisi C++ kodunu işlemcinin anladığı makine koduna çevirir ve bir .hex dosyası üretir. Yazım hataları bu aşamada yakalanır.
Yükleme
avrdude programı .hex dosyasını USB üzerinden gönderir. Çipin içindeki küçük bootloader programı veriyi alıp flash belleğe yazar.
Çalışma
Kart yeniden başlar; bootloader kısa bir süre yeni kod bekler, gelmezse sizin programınızı çalıştırır. Kod flash bellekte kalıcıdır, elektrik kesilse bile silinmez.
Kütüphane kullanımı
Kütüphaneler, sensör ve modüllerle konuşmak için başkalarının yazdığı hazır kod paketleridir. IDE'de sol taraftaki kitap simgesine (Kütüphane Yöneticisi) tıklayıp modülün adını aratarak kurabilirsiniz. Kurduktan sonra #include satırıyla kodunuza eklenir. Kütüphanenin örnek kodlarına Dosya › Örnekler menüsünden ulaşabilirsiniz; yeni bir modülü denerken her zaman önce bu örneklerle başlayın.
Raspberry Pi ile Python programlama
Raspberry Pi'de kod doğrudan kartın üzerinde, Linux altında çalışır. Derleme ve yükleme adımı yoktur; Python dosyasını kaydedip çalıştırmanız yeterlidir. GPIO pinlerini kontrol etmek için Raspberry Pi OS ile birlikte gelen gpiozero kütüphanesi önerilir.
İşletim sistemini yazın
Raspberry Pi Imager programıyla microSD karta Raspberry Pi OS yükleyin. Ayarlar ekranında kullanıcı adı, Wi-Fi ve SSH'yi şimdiden tanımlayabilirsiniz.
Kartı başlatın
microSD kartı takın, ekran ve klavyeyi bağlayın, en son güç kablosunu takın. İlk açılış birkaç dakika sürebilir.
Sistemi güncelleyin
Terminali açıp
sudo apt updateve ardındansudo apt full-upgradekomutlarını çalıştırın.Kodu yazıp çalıştırın
Thonny editöründe aşağıdaki kodu yazıp Run düğmesine basın veya terminalden
python3 led_buton.pykomutuyla çalıştırın.
# Raspberry Pi: butona basınca LED yanar
# LED: GPIO17 (fiziksel pin 11) -> 330 ohm direnç -> LED -> GND
# Buton: GPIO2 (fiziksel pin 3) ile GND arasına
from gpiozero import LED, Button
from signal import pause
led = LED(17)
buton = Button(2) # Dahili pull-up otomatik açılır
buton.when_pressed = led.on
buton.when_released = led.off
print("Hazir. Cikmak icin Ctrl+C")
pause() # Programın kapanmasını engeller
LED(17) fiziksel 11 numaralı pindir. Ayrıca eski RPi.GPIO kütüphanesi Raspberry Pi 5'te çalışmaz; yeni projelerde gpiozero kullanın.Raspberry Pi Pico ile MicroPython
Pico bir mikrodenetleyicidir ama Python'un küçültülmüş hali olan MicroPython ile programlanabilir. Thonny editöründe sağ alttan yorumlayıcıyı "MicroPython (Raspberry Pi Pico)" olarak seçmeniz yeterli. Dosyayı Pico'ya main.py adıyla kaydederseniz kart her açıldığında otomatik çalışır.
# Raspberry Pi Pico: dahili LED'i yakıp söndürme
from machine import Pin, ADC
import time
led = Pin("LED", Pin.OUT) # Kart üzerindeki LED
pot = ADC(26) # GP26 = ADC0, potansiyometre orta bacağı
while True:
deger = pot.read_u16() # 0 - 65535
bekleme = 0.05 + deger / 65535 # 0,05 - 1,05 saniye
led.toggle()
time.sleep(bekleme)
Sensör BağlamaDoğru pin, doğru gerilim, doğru protokol
Sensörler robotun duyu organlarıdır. Bir sensörü bağlamadan önce üç soruyu cevaplamanız gerekir: Kaç volt ile beslenir? Çıkışı ne tür bir sinyaldir? Hangi protokolle haberleşir? Bu üç cevap, sensörün hangi pinlere ve nasıl bağlanacağını belirler.
Sinyal türleri
| Tür | Nasıl çalışır? | Arduino'da okuma | Örnek sensörler |
|---|---|---|---|
| Dijital | Sadece iki durum verir: var (HIGH) veya yok (LOW). | digitalRead() | Buton, PIR, eğim sensörü, IR engel sensörü |
| Analog | Ölçülen büyüklüğe göre 0–5V arasında değişen gerilim verir. | analogRead() | LDR, potansiyometre, toprak nem, MQ gaz sensörleri |
| Darbe (pulse) | Bilgiyi bir sinyalin süresiyle iletir. | pulseIn() | HC-SR04 ultrasonik mesafe sensörü |
| Haberleşmeli | Ölçümü sayısal veri paketleri halinde gönderir. | Kütüphane ile (Wire, SPI, Serial) | MPU-6050, BMP280, DS18B20, GPS modülü |
Haberleşme protokolleri
I2C
2 kablo · çok cihazVeri (SDA) ve saat (SCL) hatlarından oluşur. Her cihazın bir adresi vardır, böylece aynı iki kabloya onlarca sensör bağlanabilir. Hatlarda pull-up direnci gerekir; çoğu modülde hazır bulunur.
SPI
4 kablo · çok hızlıMOSI, MISO, SCK ve CS hatlarını kullanır. I2C'den çok daha hızlıdır; SD kart, TFT ekran ve RFID okuyucularda tercih edilir. Her cihaza ayrı bir CS (seçim) pini gerekir.
UART (Seri)
2 kablo · noktadan noktayaTX (gönder) ve RX (al) hatları çapraz bağlanır: birinin TX'i diğerinin RX'ine gider. İki tarafın baud hızı aynı olmalıdır. GPS, Bluetooth (HC-05) ve parmak izi modülleri bu yolla çalışır.
1-Wire
1 kablo · uzun mesafeTek veri hattı ve bir 4,7 kΩ pull-up direnci yeterlidir. Her cihazın fabrikadan gelen benzersiz bir kimliği vardır. En bilinen örneği su geçirmez DS18B20 sıcaklık sensörüdür.
SoftwareSerial kütüphanesiyle başka pinlere bağlamak daha rahattır.Sık kullanılan sensörler
| Sensör | Ölçtüğü | Çıkış / protokol | Besleme | Bağlantı notu |
|---|---|---|---|---|
| LDR | Işık | Analog | 3,3–5V | 10 kΩ ile gerilim bölücü kurulur. |
| HC-SR04 | Mesafe (2–400 cm) | Darbe (Trig / Echo) | 5V | Pi'de Echo hattına gerilim bölücü şarttır. |
| HC-SR501 (PIR) | Hareket | Dijital (3,3V çıkış) | 5V | Açılışta 30–60 sn ısınma süresi ister. |
| DHT11 / DHT22 | Sıcaklık ve nem | Tek hat dijital | 3,3–5V | Veri hattına 10 kΩ pull-up (modüllerde hazır). En fazla saniyede bir okunur. |
| DS18B20 | Sıcaklık | 1-Wire | 3–5,5V | Veri ile VCC arasına 4,7 kΩ direnç. |
| MPU-6050 | İvme ve jiroskop | I2C (0x68) | Modülde 3,3–5V | Denge robotu ve drone projelerinin temeli. |
| BMP280 | Basınç ve sıcaklık | I2C (0x76 / 0x77) veya SPI | 3,3V | Regülatörsüz modülleri 5V'a bağlamayın. |
| Kapasitif toprak nem | Toprak nemi | Analog | 3,3–5V | Dirençli modellere göre çok daha uzun ömürlüdür. |
| MQ-2 | Gaz ve duman | Analog + dijital eşik | 5V | Isıtıcısı yaklaşık 150 mA çeker; ısınma süresi ister. |
5V ve 3,3V: mantık seviyeleri
Arduino Uno ve Mega 5V ile, Raspberry Pi, Pico ve ESP32 ise 3,3V ile çalışır. 3,3V'luk bir karta 5V sinyal göndermek pini, hatta işlemcinin tamamını kalıcı olarak bozabilir. Bu, Raspberry Pi kullanıcılarının en sık yaptığı ve en pahalıya patlayan hatadır.
5V → 3,3V (sinyali düşürmek)
İki dirençle basit bir gerilim bölücü kurun: sinyal hattına seri 1 kΩ, pin ile GND arasına 2 kΩ. Çıkış: 5V × 2k / (1k + 2k) ≈ 3,33V. HC-SR04'ün Echo hattı için idealdir.
Çift yönlü hatlar
I2C gibi iki yönlü veri taşıyan hatlarda gerilim bölücü çalışmaz. Bunun yerine MOSFET tabanlı bir mantık seviyesi dönüştürücü (logic level shifter) modülü kullanın. 3,3V tarafı LV, 5V tarafı HV pinine bağlanır.
Örnek: Arduino ile DHT11 sıcaklık ve nem sensörü
Kütüphane Yöneticisinden DHT sensor library (Adafruit) kütüphanesini kurun; kurulum sırasında istenen Adafruit Unified Sensor kütüphanesini de onaylayın. Modülün VCC pinini 5V'a, GND'yi GND'ye, DATA pinini D2'ye bağlayın.
#include <DHT.h>
#define DHTPIN 2 // DATA pininin bağlı olduğu pin
#define DHTTYPE DHT11 // DHT22 kullanıyorsanız DHT22 yazın
DHT dht(DHTPIN, DHTTYPE);
void setup() {
Serial.begin(9600);
dht.begin();
}
void loop() {
delay(2000); // DHT sensörleri yavaştır, 2 saniye bekle
float nem = dht.readHumidity();
float sicaklik = dht.readTemperature(); // Santigrat
// Okuma başarısızsa NaN (sayı değil) döner
if (isnan(nem) || isnan(sicaklik)) {
Serial.println("Sensor okunamadi, kablolari kontrol edin.");
return;
}
Serial.print("Nem: ");
Serial.print(nem);
Serial.print(" % Sicaklik: ");
Serial.print(sicaklik);
Serial.println(" C");
}
Örnek: Raspberry Pi'de I2C cihazlarını bulmak
Raspberry Pi'de I2C arayüzü varsayılan olarak kapalıdır. Önce etkinleştirip ardından bağlı cihazların adreslerini tarayın. Ekranda tablo içinde 68 görüyorsanız MPU-6050, 76 görüyorsanız BMP280 doğru bağlanmış demektir.
# 1) I2C'yi aç: Interface Options > I2C > Yes, ardından yeniden başlat
sudo raspi-config
# 2) Tarama aracını kur
sudo apt install -y i2c-tools
# 3) 1 numaralı I2C hattındaki cihazları listele
i2cdetect -y 1
Örnek: Raspberry Pi ile ultrasonik mesafe ölçümü
HC-SR04'ün VCC'sini 5V'a, Trig'i GPIO23'e bağlayın. Echo pini 5V çıkış verdiği için mutlaka yukarıdaki 1 kΩ / 2 kΩ gerilim bölücü üzerinden GPIO24'e bağlanmalıdır.
# Raspberry Pi + HC-SR04 mesafe ölçümü
from gpiozero import DistanceSensor
from time import sleep
# max_distance metre cinsindendir
sensor = DistanceSensor(echo=24, trigger=23, max_distance=2)
while True:
cm = sensor.distance * 100
print(f"Mesafe: {cm:.1f} cm")
sleep(0.5)
Raspberry Pi 40 pin GPIO haritası
Raspberry Pi 2'den 5'e kadar bütün modellerde aynı 40 pinlik dizilim kullanılır. Pin 1, kartın köşesine en yakın ve genellikle kare lehim pedine sahip pindir. Soldaki sütun tek, sağdaki sütun çift numaralı pinlerdir.
pinout yazarak kartınızın pin haritasını doğrudan ekranda da görebilirsiniz.Sensör bağlarken kontrol listesi
- Bağlantıları her zaman güç kapalıyken (USB çıkarılmışken) yapın ve değiştirin.
- Sensörün besleme gerilimini veri sayfasından (datasheet) kontrol edin.
- Tüm cihazların GND'leri birbirine bağlı olmalı; ortak toprak olmadan sinyaller anlamsızlaşır.
- 3,3V'luk kartlara 5V sinyal göndermeyin; gerektiğinde gerilim bölücü veya seviye dönüştürücü kullanın.
- I2C, 1-Wire ve buton girişlerinde pull-up direncinin olup olmadığını kontrol edin.
- Arduino pini başına 20 mA'i geçmeyin; motor ve rölelere doğrudan bağlamayın.
- Yeni bir sensörü önce kütüphanenin örnek koduyla, tek başına test edin.
Devre ŞemalarıSembolleri okumak, değer hesaplamak, doğru kurmak
Devre şeması, bir devrenin elektriksel haritasıdır. Parçaların fiziksel görünüşünü değil, birbirine nasıl bağlandığını gösterir. Breadboard çizimleri (bağlantı diyagramları) başlangıçta kolay görünür, ama karmaşık projelerde şema okumayı bilmek size çok zaman kazandırır ve internetteki binlerce projeyi kurabilmenizi sağlar.
Temel şema sembolleri
Şema okuma kuralları
Bağlantılar
- Kesişen iki çizginin üzerinde nokta varsa bağlıdır, yoksa sadece üst üste geçiyordur.
- Aynı isimli etiketler (örneğin iki ayrı yerdeki "SDA") kablo çizilmese de birbirine bağlıdır.
- Şemadaki her GND sembolü aynı noktaya bağlanır.
Etiketler
- R = direnç, C = kondansatör, D = diyot / LED, Q = transistör, U = entegre, S = anahtar.
4k7= 4,7 kΩ;100n= 100 nF. Harf, ondalık virgülün yerini alır.- Sinyaller genellikle soldan sağa, gerilim yukarıdan aşağıya (VCC üstte, GND altta) akar.
Ohm Kanunu: her şeyin temeli
Bir devredeki gerilim (V, volt), akım (I, amper) ve direnç (R, ohm) arasındaki ilişki V = I × R formülüyle ifade edilir. Gücü ise P = V × I verir. Bu iki formülle robotik projelerde karşılaşacağınız hesapların büyük çoğunluğunu yapabilirsiniz: LED direnci, gerilim bölücü, direnç ve adaptör gücü.
LED direnci hesaplama
LED'e seri bağlanacak direnç: R = (Besleme − LED gerilimi) / Akım. Aşağıdaki hesaplayıcı sonucu en yakın standart (E12) direnç değerine yuvarlar. Yukarı yuvarlamak, LED'in güvenli tarafta kalmasını sağlar.
Direnç renk kodları
4 bantlı dirençlerde ilk iki bant rakamı, üçüncü bant çarpanı (kaç sıfır ekleneceğini), dördüncü bant toleransı gösterir. Toleransı gösteren altın veya gümüş bant sağa gelecek şekilde tutup soldan okuyun.
| Renk | Rakam | Çarpan | Tolerans |
|---|---|---|---|
| Siyah | 0 | ×1 | – |
| Kahverengi | 1 | ×10 | ±%1 |
| Kırmızı | 2 | ×100 | ±%2 |
| Turuncu | 3 | ×1k | – |
| Sarı | 4 | ×10k | – |
| Yeşil | 5 | ×100k | ±%0,5 |
| Mavi | 6 | ×1M | ±%0,25 |
| Mor | 7 | ×10M | ±%0,1 |
| Gri | 8 | – | ±%0,05 |
| Beyaz | 9 | – | – |
| Altın | – | ×0,1 | ±%5 |
| Gümüş | – | ×0,01 | ±%10 |
Projelerde en sık kullanacağınız üç değer: 220 Ω kırmızı-kırmızı-kahverengi, 1 kΩ kahverengi-siyah-kırmızı, 10 kΩ kahverengi-siyah-turuncu. Emin olamadığınızda multimetrenin ohm kademesiyle ölçün.
Breadboard nasıl çalışır?
Örnek şema 1: LED ve pull-down'lı buton
Örnek şema 2: Transistör ile DC motor sürme
Güç beslemesi: kim ne kadar akım verebilir?
| Kaynak / pin | Gerilim | Pratik sınır | Not |
|---|---|---|---|
| Uno G/Ç pini | 5V | 20 mA önerilen, 40 mA mutlak | Tüm pinlerin toplamı yaklaşık 200 mA'i geçmemeli. |
| Uno 5V pini (USB ile) | 5V | USB portunun verebildiği kadar (≈500 mA) | Birkaç sensör ve bir küçük servo için yeterli. |
| Uno 3,3V pini | 3,3V | ≈50 mA | Wi-Fi modülü gibi akım çeken modüller için yetersizdir. |
| Uno DC jak / Vin | 7–12V önerilen | Regülatör ısısıyla sınırlı | Yüksek gerilimde regülatör ısınır. |
| Raspberry Pi 5 | 5V, USB-C | 5A adaptör önerilir | Düşük akımlı adaptörde USB çıkışları kısıtlanır. |
| Raspberry Pi GPIO | 3,3V | Pin başına birkaç mA | Yükleri her zaman sürücü üzerinden bağlayın. |
Şema çizim ve simülasyon araçları
Tinkercad Circuits
Tarayıcıda çalışır, Arduino kodunu sanal olarak çalıştırır. Yeni başlayanlar için en iyi seçenek.
Wokwi
Arduino, ESP32 ve Pico simülasyonu; çok sayıda sensör ve ekran destekler.
Fritzing
Breadboard görünümü, şema ve PCB aynı projede. Dokümantasyon için popüler.
KiCad
Ücretsiz ve açık kaynak, profesyonel seviyede şema ve baskı devre tasarımı.
EasyEDA
Tarayıcıda şema ve PCB çizimi; tasarımı doğrudan üretime gönderebilirsiniz.
En sık yapılan devre hataları
- LED'i dirençsiz bağlamak: LED veya Arduino pini zarar görür.
- 5V ile GND'yi doğrudan birleştirmek (kısa devre): USB portu kapanır veya regülatör yanar.
- Motoru, röleyi veya birden fazla servoyu doğrudan Arduino pininden ya da 5V pininden beslemek.
- Harici güç kaynağı kullanırken GND'leri birleştirmeyi unutmak.
- Elektrolitik kondansatörü ters takmak: ısınır, şişer, hatta patlayabilir.
- Butonu breadboard'da yanlış yönde takıp sürekli kısa devre durumunda bırakmak.
- Raspberry Pi'nin GPIO pinine 5V sinyal göndermek.
Sık Sorulan Sorular
Robotiğe yeni başlayan biri Arduino mu Raspberry Pi mi almalı?
Klon (uyumlu) Arduino kartlar orijinali kadar iyi mi?
Raspberry Pi'ye 5V sensör bağlanabilir mi?
Raspberry Pi analog sensör okuyabilir mi?
Arduino ile Raspberry Pi'yi nasıl haberleştiririm?
Serial.println() ile gönderdiğiniz veriyi Raspberry Pi'de Python'un pyserial kütüphanesiyle /dev/ttyACM0 portundan okuyabilirsiniz. I2C veya UART pinleriyle de bağlanabilir, ancak bu durumda 5V-3,3V seviye farkına dikkat etmeniz gerekir.
