Parçalar · 15 dk okuma

Arduino Nano Pinleri: Pin Diyagramı, A6/A7, Güç ve Old Bootloader

Arduino Nano pinleri tek rehberde: D0–D13, A0–A7 (A6/A7 yalnız analog), PWM pinleri, VIN/5V/3V3, CH340 sürücüsü, Old Bootloader ve Uno ile pin eşleme tablosu.

Arduino Nano pinleri, 45 × 18 mm'lik kartın iki uzun kenarına dizilmiş 30 bacaktan oluşur: 14 dijital giriş/çıkış pini (D0–D13), bunlardan PWM verebilen 6 pin (~3, 5, 6, 9, 10, 11), 8 analog giriş (A0–A7) ve VIN, 5V, 3V3, AREF, iki GND ile iki RST'den oluşan güç ve kontrol pinleri. Nano, Arduino Uno ile aynı ATmega328P işlemciyi kullandığı için pin numaraları ve görevleri de aynıdır: Uno için yazılmış bir kod, kart menüsünden Nano'yu seçmen dışında hiçbir değişiklik yapmadan çalışır.

Yine de Nano'yu Uno'dan ayıran birkaç önemli ayrıntı vardır ve yeni başlayanların takıldığı yerler tam olarak bunlardır: A6 ve A7 yalnızca analog çalışır, kartta DC jak yoktur, 3V3 pini çok az akım verir, klon kartlarda USB işini CH340 yongası yapar ve kod yüklemek için çoğu zaman ATmega328P (Old Bootloader) seçmen gerekir. Bu rehberde pinleri tek tek tanıyacak, Nano'yu breadboard'a doğru yerleştirmeyi, Uno ile pin eşlemesini ve Nano Every ile Nano ESP32'nin klasik Nano'dan nasıl ayrıldığını öğreneceksin.

Arduino Nano kartı ve pinleri
Orijinal Arduino Nano: bir uçta mini USB soketi, diğer uçta 2×3'lük ICSP konnektörü, ortada reset düğmesi. D13, 3V3 ve AREF pinleri USB tarafında, VIN ve TX1 karşı uçtadır.

Arduino Nano nedir, Uno'dan farkı ne?

Arduino Nano, Uno'nun bütün temel yeteneklerini 45 × 18 mm'lik, yaklaşık 7 gramlık bir karta sığdırır. Pinleri kartın altına doğru uzandığı için doğrudan breadboard'a takılır; böylece jumper kablo kalabalığı azalır ve devre, bitince bir kutuya ya da kalıcı bir devre kartına kolayca taşınır. İçinde Uno ile aynı 16 MHz'lik ATmega328P vardır, lojik seviyesi 5 V'tur ve aynı kütüphaneler değişmeden çalışır. Orijinal Nano'da USB ile seri haberleşmeyi FT232RL yongası yapar; piyasadaki uygun fiyatlı klonların neredeyse hepsinde ise kartın alt yüzünde CH340G ya da CH340C bulunur. Robot arabalar, giyilebilir projeler, kumandalar ve bir kutuya sığması gereken her devre için Nano, Uno'dan daha pratik bir seçimdir.

ÖzellikArduino Nano (V3)
MikrodenetleyiciATmega328P, 8 bit, 16 MHz (TQFP-32 kılıf)
Lojik (çalışma) gerilimi5 V
VIN giriş gerilimiÖnerilen 7–12 V
Dijital giriş/çıkış14 pin (D0–D13); A0–A5 ile birlikte 20
PWM çıkışı6 pin: D3, D5, D6, D9, D10, D11
Analog giriş8 pin (A0–A7), 10 bit (0–1023)
Pin başına akım20 mA önerilen, 40 mA mutlak sınır
Bellek32 KB flaş (IDE'de 30.720 bayt kullanılabilir), 2 KB SRAM, 1 KB EEPROM
USBMini-B; FT232RL (orijinal) ya da CH340 (klon)
Boyut ve ağırlık45 × 18 mm, yaklaşık 7 g

Arduino Nano pin diyagramı: hangi pin nerede?

Nano'nun 30 pini karşılıklı iki sırada 15'er pin olarak dizilmiştir ve iki sıra arasındaki mesafe 15,24 mm'dir (0,6 inç). Kartı mini USB soketi sana yakın olacak şekilde önüne koyduğunda soketin hemen yanında karşılıklı iki pin görürsün: D12 ve D13. D13'ün bulunduğu sırada 3V3, AREF, A0–A7 ve güç pinleri; D12'nin bulunduğu sırada ise D11'den D2'ye kadar dijital pinler, ardından GND, RST, RX0 (D0) ve TX1 (D1) yer alır. İki sıranın USB'den en uzak ucunda VIN ile TX1 karşı karşıyadır; 2×3'lük ICSP konnektörü de bu uçtadır. Ortadaki reset düğmesinin çevresinde güç LED'i (POW ya da ON), D13'e bağlı L LED'i ve yükleme sırasında yanıp sönen TX ile RX LED'leri bulunur.

Sıra (USB'den)Analog ve güç sırasıDijital sıraNot
1D13 (SCK, L LED'i)D12 (MISO)USB soketinin hemen yanı
23V3~D11 (MOSI)3V3 çok az akım verir
3AREF~D10 (SS)-
4A0~D9-
5A1D8-
6A2D7-
7A3~D6-
8A4 (SDA)~D5I2C veri hattı
9A5 (SCL)D4I2C saat hattı
10A6~D3 (INT1)A6 yalnız analog
11A7D2 (INT0)A7 yalnız analog
125VGND5V ile GND karşılıklı
13RSTRSTİkisi de aynı reset hattı
14GNDD0 (RX0)D0 USB-seri yongaya bağlı
15VIND1 (TX1)ICSP konnektörü bu uçta
Kılavuzlarda ve devre şemalarında Nano'nun pinleri bazen 1'den 30'a kadar fiziksel sırayla numaralanır: 1 numara TX1 (D1), 30 numara VIN'dir. Bu numaralar kodda kullanılmaz. Kodda her zaman kartın üzerinde yazan adı kullanırsın: D7 için 7, A3 için A3 yazarsın. Pin yazılarını kartın üzerinde okumakta zorlanıyorsan pin diyagramı aracını telefonunda açık tutabilirsin.

Dijital pinler (D0–D13), PWM ve özel görevler

Her dijital pin pinMode() ile giriş ya da çıkış yapılır; çıkışta HIGH yaklaşık 5 V, LOW ise 0 V verir. Girişte pini havada bırakmamak için INPUT_PULLUP ile çipin içindeki 20–50 kΩ'luk direnci açabilirsin. Pin başına güvenli akım 20 mA'dir; kırmızı bir LED 220 Ω'luk dirençle yaklaşık 13 mA çeker, doğru direnci LED direnci hesaplayıcı ile bulabilirsin. Bazı pinlerin ek görevleri vardır ve bunları önceden bilmek, projen büyüdüğünde çıkacak çakışmaları önler:

PinEk görevDikkat edilecek nokta
D0 (RX), D1 (TX)Donanım seri portu (Serial)1 kΩ dirençle USB-seri yongaya bağlı; yükleme sırasında boş bırak
D2, D3Harici kesme INT0, INT1attachInterrupt() yalnız bu iki pinde çalışır
~D3, ~D11PWM, Timer2 (yaklaşık 490 Hz)tone() çalarken bu pinlerin PWM'i bozulur
~D5, ~D6PWM, Timer0 (yaklaşık 980 Hz)millis() ve delay() ile aynı zamanlayıcı
~D9, ~D10PWM, Timer1 (yaklaşık 490 Hz)Servo kütüphanesi bu iki pinin PWM'ini kapatır
D10–D13SPI: SS, MOSI, MISO, SCKSPI kullanırken D10 çıkış olarak kalmalı
D13Kart üzerindeki L LED'iLED ve direnci doğrudan pine bağlı

Nano'yu Uno'dan ayıran küçük ama önemli bir ayrıntı D13'tedir. Uno R3'te L LED'i bir op-amp üzerinden sürülür, Nano'da ise LED ve direnci doğrudan pine bağlıdır. D13'ü INPUT_PULLUP ile buton girişi yaparsan LED pini aşağı çeker ve buton basılı olmasa bile LOW okuyabilirsin; bu pini çıkış ya da SPI için ayır. PWM'in nasıl çalıştığını ve analogWrite() değerlerinin anlamını PWM nedir yazısında, kesmeleri de Arduino interrupt yazısında bulabilirsin.

Analog pinler A0–A7: A6 ve A7 neden farklı?

Nano'nun sekiz analog girişi 0–5 V arasındaki gerilimi 10 bit çözünürlükle ölçer: analogRead() 0–1023 arası bir sayı döndürür ve bir adım yaklaşık 4,9 mV'tur. A0–A5 gerektiğinde normal dijital pin gibi de çalışır (A0 = 14 … A5 = 19); A4 ve A5 aynı zamanda I2C hattının SDA ve SCL uçlarıdır. Uno'da bulunmayan A6 ve A7 ise ATmega328P'nin yüzey montaj (TQFP) kılıfında bulunan iki ekstra ADC kanalıdır. Bu iki kanal yalnızca analog-dijital dönüştürücüye bağlıdır; arkalarında bir port yazmacı, çıkış sürücüsü ya da pull-up direnci yoktur. Bu yüzden pinMode(), digitalRead(), digitalWrite() ve INPUT_PULLUP bu iki pinde çalışmaz.

Derleyici digitalRead(A6) satırına hata vermez, ama sonuç anlamsızdır ve bağladığın buton hiç çalışmıyormuş gibi görünür. A6 ve A7'yi potansiyometre, LDR ya da toprak nem sensörü gibi analog kaynaklar için kullan. Buton bağlayacaksan pinden 5V'a giden harici bir 10 kΩ pull-up direnci tak ve pini analogRead() ile oku: değer 300'ün altına düştüğünde butonu basılı say.

A6 ve A7'nin dijital çalışmaması bir dezavantaj gibi görünse de akıllıca kullanılabilir. Bir analog pine farklı değerde dirençlerle bağlanmış birkaç buton koyarsan her buton farklı bir gerilim üretir; böylece tek pinle dört butonu okursun ve dijital pinleri motorlara ve ekranlara ayırırsın. Devrede A6'yı 10 kΩ'luk bir dirençle 5V'a bağla; birinci butonu A6 ile GND arasına doğrudan, diğer üç butonu ise sırasıyla 2,2 kΩ, 4,7 kΩ ve 10 kΩ'luk dirençlerin üzerinden GND'ye bağla.

C++ (Arduino IDE)
1// A6'da 4 buton: 10 kΩ pull-up + farklı seri dirençler / 4 buttons on A6: 10 kΩ pull-up + different series resistors
2const byte LADDER_PIN = A6;    // yalnız analog pin / analog-only pin
3
4byte readButton() {
5  int v = analogRead(LADDER_PIN);
6  if (v < 92)  return 1;       // 0 Ω      -> yaklaşık 0 / about 0
7  if (v < 256) return 2;       // 2,2 kΩ   -> yaklaşık 184 / about 184
8  if (v < 419) return 3;       // 4,7 kΩ   -> yaklaşık 327 / about 327
9  if (v < 767) return 4;       // 10 kΩ    -> yaklaşık 512 / about 512
10  return 0;                    // basılı değil -> 1023 / not pressed -> 1023
11}
12
13void setup() {
14  Serial.begin(9600);
15}
16
17void loop() {
18  static byte lastButton = 0;
19  byte b = readButton();
20  if (b != lastButton) {
21    delay(20);                 // kontak sıçramasını bekle / wait out contact bounce
22    b = readButton();          // değeri doğrula / confirm the value
23    if (b != lastButton) {
24      lastButton = b;
25      if (b != 0) {
26        Serial.print(F("Buton / Button: "));
27        Serial.println(b);
28      }
29    }
30  }
31}
ButonGND'ye giden seri dirençBeklenen analogReadKodda kabul aralığı
Buton 10 Ω (doğrudan)00–91
Buton 22,2 kΩYaklaşık 18492–255
Buton 34,7 kΩYaklaşık 327256–418
Buton 410 kΩYaklaşık 512419–766
Hiçbiri-1023767–1023

Değerler analogRead = 1023 × R / (10 kΩ + R) formülüyle hesaplanır ve eşikler iki komşu değerin tam ortasına konur. Pull-up direnci ve ADC aynı 5 V hattından beslendiği için besleme 4,7 V'a düşse bile okunan sayılar değişmez; bu yönteme oranlı (ratiometrik) ölçüm denir. Aynı anda iki butona basılırsa dirençler paralel bağlanır ve okunan değer düşer: kod daha küçük numaralı bir butonu görür, hatta 3 ile 4 birlikte basılınca 2 okunur. Bu yüzden direnç merdiveni, aynı anda tek tuşa basılan menüler için uygundur. Gerilim bölücü hesabını gerilim bölücü hesaplayıcı ile deneyebilir, analog okumanın ayrıntılarını ADC yazısında okuyabilirsin.

Güç pinleri: VIN, 5V, 3V3 ve GND

PinNe yapar?Sınır ve dikkat
VINKartı 7–12 V ile besler; gerilim regülatörde 5 V'a düşürülürKlonlardaki AMS1117 en çok 15 V kaldırır; 12 V'ta çabuk ısınır
5VKartın 5 V hattı: çıkış olarak sensörleri besler, giriş olarak düzenli 5 V alırUSB'de yaklaşık 4,7 V; dışarıdan asla 5 V'tan fazla verme
3V33,3 V çıkışOrijinalde FT232RL'den, klonlarda CH340'tan gelir; akımı çok sınırlı
GND (2 adet)Ortak toprakHarici kaynakların GND'si mutlaka buraya bağlanmalı
RST (2 adet)LOW yapılınca kartı yeniden başlatırHarici reset düğmesi için; ikisi aynı hattır
AREFAnalog ölçüm için dış referans girişiKullanmadan önce analogReference(EXTERNAL) yaz

Nano'yu üç yoldan besleyebilirsin. USB ile beslediğinde 5 V bilgisayardan bir Schottky diyot üzerinden gelir; diyot yaklaşık 0,3 V düşürdüğü için 5V pininde genellikle 4,6–4,8 V ölçersin ve orijinal karttaki MBR0520 diyotu en çok 500 mA için tasarlanmıştır. VIN pinine 7–12 V verirsen kartın altındaki regülatör (orijinalde LM1117, klonlarda çoğunlukla AMS1117) bunu 5 V'a düşürür. Regülatör fazla gerilimi ısıya çevirir: harcanan güç (VIN − 5 V) × akım kadardır, yani 12 V girişte 150 mA çekersen küçük regülatör yaklaşık 1 W ısı üretir ve elle dokunulamayacak kadar ısınır. Bu yüzden VIN için 7–9 V idealdir. Üçüncü yol 5V pinine dışarıdan düzenli 5 V vermektir; bu durumda regülatör devre dışı kalır, USB tarafındaki diyot da bilgisayarına geri akım gitmesini engeller. 12 V'luk bir kaynaktan çalışacaksan LM2596 voltaj düşürücü ile 5 V elde edip 5V pinine vermek çok daha serin bir çözümdür; tüm besleme yöntemleri Arduino güç besleme yazısında.

3V3 pini Nano'nun en çok yanlış anlaşılan pinidir. Uno'da bu pin ayrı bir regülatörden gelir; klasik Nano'da ise 3,3 V için ayrı bir regülatör yoktur. Orijinal Nano'da 3,3 V, FT232RL yongasının içindeki küçük regülatörden gelir (en çok 50 mA) ve Arduino'nun eski belgelerine göre kart USB'den beslenmiyorsa bu çıkış kullanılamaz. Klonların çoğunda pin CH340'ın kendi iç regülatörüne bağlıdır ve yalnızca birkaç mA'lik yükler için güvenlidir. Bu yüzden nRF24L01, ESP-01 ya da RC522 gibi 3,3 V'luk modülleri bu pinden besleme; 5V pininden beslenen ayrı bir AMS1117-3.3 regülatör kullan. 3,3 V'luk bir modülün giriş pinine Nano'nun 5 V'luk çıkışını bağlarken de araya bir seviye dönüştürücü ya da gerilim bölücü koy.

5V pinine 9 V'luk pil ya da 12 V'luk adaptör bağlamak Nano'yu anında yakar: bu pin regülatörün çıkışıdır ve ATmega328P en çok 6 V'a dayanır. Pili ve adaptörü her zaman VIN pinine bağla. Kutuplara da dikkat et; çoğu Nano'da VIN girişinde ters bağlama koruması yoktur.

USB'de 5V pininin 4,7 V civarında olması analog ölçümleri de etkiler: analogRead() üst sınır olarak besleme gerilimini kullanır, sen ise hesapta 5,0 V yazarsan sonuç yüzde 4–6 kadar sapar. ATmega328P'nin içindeki yaklaşık 1,1 V'luk sabit referansı ölçerek gerçek besleme gerilimini hesaplamak mümkündür. Aşağıdaki ilk test kodu bunu yapar, sekiz analog girişin tamamını gerçek besleme gerilimine göre volta çevirir ve D13'teki L LED'ini yakıp söndürür:

C++ (Arduino IDE)
1// Arduino Nano: A0-A7'yi ve gerçek besleme gerilimini oku / read A0-A7 and the real supply voltage
2const byte ANALOG_PINS[8] = {A0, A1, A2, A3, A4, A5, A6, A7};
3
4long readVccMillivolts() {
5  // Referans AVcc, ölçülen kanal dahili 1,1 V / reference AVcc, measured channel internal 1.1 V
6  ADMUX = _BV(REFS0) | _BV(MUX3) | _BV(MUX2) | _BV(MUX1);
7  delay(2);                                // referansın oturmasını bekle / let the reference settle
8  ADCSRA |= _BV(ADSC);                     // dönüşümü başlat / start the conversion
9  while (bit_is_set(ADCSRA, ADSC)) {}      // bitmesini bekle / wait until it finishes
10  unsigned int raw = ADC;                  // 10 bit sonuç / 10-bit result
11  return 1125300L / raw;                   // 1,1 V x 1023 x 1000 / 1.1 V x 1023 x 1000
12}
13
14void setup() {
15  Serial.begin(9600);
16  pinMode(LED_BUILTIN, OUTPUT);            // D13'teki L LED'i / L LED on D13
17}
18
19void loop() {
20  long vcc = readVccMillivolts();
21  analogRead(A0);                          // kanal değişti, ilk okumayı at / channel changed, discard the first reading
22  Serial.print(F("Vcc: "));
23  Serial.print(vcc);
24  Serial.print(F(" mV |"));
25  for (byte i = 0; i < 8; i++) {
26    int raw = analogRead(ANALOG_PINS[i]);  // A6 ve A7 de okunur / A6 and A7 are read too
27    Serial.print(F(" A"));
28    Serial.print(i);
29    Serial.print(F("="));
30    Serial.print(raw * (vcc / 1000.0) / 1023.0, 2);   // gerçek Vcc ile volta çevir / convert to volts using the real Vcc
31  }
32  Serial.println();
33  digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));   // L LED'ini çevir / toggle the L LED
34  delay(1000);
35}

Kodu yükledikten sonra Seri Monitör'ü 9600 baud ile aç. Vcc değeri USB'de 4600–4800 mV, VIN ile beslerken 5000 mV civarında olmalıdır. Boşta duran analog pinler rastgele değerler gösterir; A0'a bir potansiyometre bağlayıp çevirdiğinde değerin 0 ile Vcc arasında düzgünce değiştiğini görürsün. Dahili referans yongadan yongaya ±%10 farklı olabilir; daha doğru sonuç için 5V pinini multimetreyle ölç ve koddaki 1125300 sabitini ölçtüğün değer / kodun gösterdiği değer oranıyla çarp. Bu kod doğrudan ATmega328P yazmaçlarını kullandığı için Nano Every ve Nano ESP32'de çalışmaz.

Mini USB, CH340 ve sürücü kurulumu

Klasik Nano'da Mini-B USB soketi bulunur; telefonlarda kullanılan Micro-USB ya da USB-C kablo buna uymaz. Bazı yeni klonlarda Micro-USB veya USB-C soket olsa da çoğu hâlâ mini USB'dir. Kartın port listesinde hiç görünmemesinin en sık sebebi yalnızca şarj eden, veri telleri olmayan kablolardır: güç LED'i yanar ama bilgisayar kartı görmez. Kablo sağlamsa kartı ters çevirip USB soketinin yakınındaki yongaya bak. FT232RL yazıyorsa kart orijinal Nano'dur ve sürücüsü işletim sistemlerinde genellikle hazırdır; CH340G ya da CH340C yazıyorsa elindeki bir klondur.

Windows 10 ve 11, CH340 sürücüsünü çoğu zaman Windows Update ile kendisi kurar ve kart Aygıt Yöneticisi'nde USB-SERIAL CH340 (COM3) gibi bir adla görünür. Diğer aygıtlar altında sarı ünlemli bir USB2.0-Serial görüyorsan yonga üreticisi WCH'nin CH341SER sürücüsünü kur ve kartı çıkarıp yeniden tak. macOS'un güncel sürümlerinde sürücü yerleşiktir; port /dev/cu.usbserial-… adıyla görünür ve eski sürücüleri ayrıca kurmak çakışma yaratabilir. Linux'ta sürücü çekirdekte hazırdır; Ubuntu 22.04 ve sonrasında port takılır takılmaz kayboluyorsa ekran okuyucu paketi brltty CH340'ı sahipleniyordur ve kullanmıyorsan sudo apt remove brltty ile kaldırabilirsin. Port ve sürücü sorunlarının tamamı Arduino kod yüklenmiyor, USB-seri yongaların farkları da USB-TTL dönüştürücü yazısında.

Kod yükleme: ATmega328P mi, Old Bootloader mı?

  1. Arduino IDE'de Araçlar > Kart > Arduino AVR Boards > Arduino Nano seç.
  2. Kartı tak ve Araçlar > Port menüsünden yeni beliren portu seç (Windows'ta COM3, macOS'ta /dev/cu.usbserial-… gibi).
  3. Araçlar > Processor menüsünde önce ATmega328P seçeneğiyle Blink örneğini yüklemeyi dene.
  4. Çıktıda programmer is not responding ya da not in sync satırları on deneme boyunca tekrar ediyorsa Processor'ı ATmega328P (Old Bootloader) yapıp yeniden yükle.
  5. Hâlâ olmuyorsa kartı başka bir USB portuna tak, D0 ve D1'deki kabloları çıkar ve reset düğmesine basınca L LED'inin hızlıca yanıp söndüğünü kontrol et.
  6. Hangi seçeneğin çalıştığını bir kenara not et; aynı satıcıdan aldığın diğer Nano'larda da büyük ihtimalle aynı ayar gerekir.

Bu karmaşanın sebebi 2018'de yapılan bir değişikliktir. Arduino, Nano'nun 2 KB'lık eski bootloader'ını (ATmegaBOOT) Uno'da kullanılan 512 baytlık Optiboot ile değiştirdi. Optiboot kodu 115200 baud ile alır, eski bootloader ise 57600 baud bekler; hızlar uyuşmayınca kart hiç cevap vermiyormuş gibi görünür. Klon üreticileri kartları yıllarca eski bootloader ile üretmeye devam ettiği için IDE iki seçeneği de sunar ve yanlış seçim karta hiçbir zarar vermez. İstersen ikinci bir Arduino'yu ArduinoISP olarak kullanıp Nano'ya yeni bootloader'ı yazabilirsin: yüklemeler hızlanır ve eski bootloader'ın watchdog ile resetlenince sonsuz döngüye girme sorunu da ortadan kalkar.

Processor seçeneğiBootloaderYükleme hızıKod için yer
ATmega328POptiboot (2018 sonrası)115200 baud30.720 bayt
ATmega328P (Old Bootloader)ATmegaBOOT (eski)57600 baud30.720 bayt
ATmega168ATmegaBOOT (eski)19200 baud14.336 bayt
Derleme çıktısında Nano için Maximum is 30720 bytes yazar; aynı kod Uno seçiliyken 32.256 baytlık sınıra göre ölçülür. IDE, Nano'da yeni bootloader yüklü olsa bile eski kartlarla uyum için 2 KB'ı ayırır. Kodun bu sınıra yaklaşıyorsa kullanmadığın kütüphaneleri ve gereksiz Serial.print() satırlarını çıkar, büyük tabloları sadeleştir ya da 48 KB flaşı olan Nano Every'ye geç.

Breadboard yerleşimi ve lehimleme

Breadboard ve ortadaki kanal
Breadboard'un ortasındaki kanal iki yarıyı birbirinden ayırır; Nano bu kanalın üzerine oturtulunca her pini ayrı bir şeride düşer.

Nano'yu breadboard'a takarken iki pin sırasını ortadaki kanalın iki yanına gelecek şekilde yerleştir. Böylece her pin kendi şeridine düşer ve şeridin boşta kalan deliklerinden o pine kablo bağlayabilirsin. Kart, kanalın üzerini ve pinlerin arasındaki delikleri kapattığı için her pinin yanında yalnızca birkaç delik kalır; yaygın 830 delikli breadboard'larda kartı kanala ortalarsan bir tarafta 2, diğer tarafta 3 boş delik olur. USB soketini breadboard'un kısa kenarına bakacak şekilde koyarsan kablo rahat takılır. Ardından Nano'nun 5V ve GND pinlerini breadboard'un kırmızı ve mavi güç hatlarına bağla ki sensörleri oradan besleyebilesin. Breadboard'un iç bağlantılarını hatırlamak istersen breadboard nedir yazısına göz at.

  • Başlıkları lehimlemek: Pinleri ayrı gelen klonlarda erkek pin başlıklarını önce breadboard'a tak, Nano'yu üzerlerine oturt ve öyle lehimle; breadboard başlıkları dik ve tam 0,6 inç aralıkta tutar. Tekniği lehim nasıl yapılır yazısında bulabilirsin.
  • Çıkarırken: Kartı tek uçtan kaldırmak pinleri büker; iki ucu sırayla azar azar kaldır ya da altına düz bir tornavida sokup eşit kuvvetle çıkar.
  • Gevşek temas: Eski ya da ucuz breadboard'larda yaylar gevşer; Nano ara sıra resetlenir ya da sensör arada bir kaybolur. Kartı breadboard'un başka bir bölgesine taşıyıp dene.
  • Nano genişletme kartı: Kalıcı bir projede her pin için sinyal, 5V ve GND çıkışı veren vidalı ya da 3 pinli bir Nano I/O shield kablo karmaşasını büyük ölçüde azaltır.
  • Mini breadboard: 170 delikli küçük breadboard'larda güç hattı yoktur; 5V ve GND'yi ayrı şeritlere taşıyıp kablo renkleriyle işaretle.
Nano'yu şeritli delikli plakete (stripboard) lehimliyorsan karşılıklı pinlerin aynı bakır şeride düşmediğinden emin ol. Şeritler iki pin sırası arasında kesilmezse 12. sıradaki 5V ile GND, 15. sıradaki VIN ile TX1 birbirine kısa devre olur ve USB'yi taktığın anda kart ile bilgisayarın portu zorlanır. Şeritleri iki sıranın arasında matkap ucuyla kes; ayrıntılar kalıcı devre kurma yazısında.

Arduino Uno ile Nano pin eşleme tablosu

GörevArduino Uno R3Arduino NanoNot
Dijital G/ÇD0–D13D0–D13Numaralar ve görevler aynı
PWM~3, 5, 6, 9, 10, 11~3, 5, 6, 9, 10, 11Frekanslar ve zamanlayıcılar aynı
Analog girişA0–A5A0–A7A6 ve A7 yalnız Nano'da ve yalnız analog
I2C SDA / SCLA4 / A5 (AREF yanında kopyası var)A4 / A5Nano'da ayrı SDA/SCL pini yok
SPI SS / MOSI / MISO / SCK10 / 11 / 12 / 1310 / 11 / 12 / 13İkisinde de ICSP konnektöründe kopyası var
Harici kesmeD2, D3D2, D3Aynı
Dahili LEDD13 (op-amp tamponlu)D13 (doğrudan pine bağlı)Nano'da D13'ü giriş yaparken dikkat
Besleme girişiDC jak ve Vin, 7–12 VYalnız VIN pini, 7–12 VNano'da jak yok
USBUSB-B; ATmega16U2 ya da CH340Mini-B; FT232RL ya da CH340Kablolar farklı
3.3V çıkışıAyrı regülatör, 50 mAUSB yongasından, çok sınırlıNano'da modül besleme
IOREFVarYokShield uyumu için
Kod için yer32.256 bayt30.720 baytIDE Nano için 2 KB ayırır
Shield takmaDoğrudanAdaptör ya da genişletme kartıyla-

Tablodan da gördüğün gibi Uno için kurulmuş bir devreyi Nano'ya taşırken kabloları aynı numaralı pinlere bağlaman yeterlidir: Uno'da D9'a giden servo Nano'da da D9'a, A4/A5'teki I2C ekran yine A4/A5'e gider. Kodda tek değişiklik Araçlar > Kart menüsünden Arduino Nano'yu seçmektir. Uno'ya doğrudan takılan shield'lar ise Nano'ya takılmaz; bunun için Nano'yu Uno pin dizilimine çeviren adaptör kartlar vardır. Her pinin Uno'daki ayrıntılı görevlerini Arduino Uno pinleri, kart seçimini de hangi Arduino'yu almalıyım yazısında bulabilirsin.

Nano Every ve Nano ESP32: klasik Nano'dan farkları

ÖzellikKlasik Nano (V3)Nano EveryNano ESP32
İşlemciATmega328P, 8 bit, 16 MHzATmega4809, 8 bit, IDE'de 16 MHz (20 MHz'e kadar)ESP32-S3, çift çekirdek, 32 bit, 240 MHz
Flaş / SRAM32 KB / 2 KB48 KB / 6 KB16 MB / 512 KB (+8 MB PSRAM)
Lojik gerilim5 V5 V3,3 V (5 V'a dayanıksız)
USBMini-BMicro-BUSB-C
VIN aralığı7–12 V önerilen7–21 V6–21 V
PWM pinleriD3, D5, D6, D9, D10, D11D3, D5, D6, D9, D10 (D11'de yok)Hemen tüm dijital pinler
A6 / A7Yalnız analogAnalog ve dijitalAnalog ve dijital
Harici kesmeYalnız D2, D3Tüm dijital pinlerTüm pinler
D0 / D1 seri hattıUSB ile paylaşılır (Serial)USB'den ayrı (Serial1)USB'den ayrı (Serial0)
KablosuzYokYokWi-Fi ve Bluetooth LE
IDE kart paketiArduino AVR BoardsArduino megaAVR BoardsArduino ESP32 Boards

Nano Every, klasik Nano'nun aynı boyda ve aynı pin diziliminde daha güçlü bir sürümüdür. İçinde ATmega4809 vardır, 5 V ile çalışır ve 48 KB flaş ile 6 KB SRAM sunar; yani klasik Nano'nun RAM yüzünden zorlandığı OLED ve LED şerit projeleri rahatlar. USB tarafında bir SAMD11 yongası köprü görevi görür ve kod UPDI arayüzüyle yüklenir, bu yüzden Old Bootloader derdi yoktur. Kartı kullanmak için Kart Yöneticisi'nden Arduino megaAVR Boards paketini kurman gerekir. Dikkat etmen gereken farklar şunlardır: PWM yalnızca D3, D5, D6, D9 ve D10'dadır (D11 PWM vermez), A6 ve A7 dijital olarak da çalışır, her dijital pin harici kesme olarak kullanılabilir ve D0 ile D1, USB'den bağımsız Serial1 portudur. Araçlar > Registers emulation > ATMEGA328 ayarı PORTB gibi port yazmaçlarını taklit eder, ama zamanlayıcı ve ADC yazmaçlarına doğrudan yazan eski kodlar yine çalışmaz. Aşağıdaki kod Every'nin iki farkını birlikte gösterir: Seri Monitör açıkken D0/D1'deki bir modülle konuşur ve A7'yi dahili pull-up'lı buton girişi olarak kullanır.

C++ (Arduino IDE)
1// Nano Every: Serial = USB, Serial1 = D0 (RX) ve D1 (TX) / Serial = USB, Serial1 = D0 (RX) and D1 (TX)
2const byte BUTTON_PIN = A7;            // Every'de A7 dijital de çalışır / A7 also works as digital on the Every
3
4bool lastState = HIGH;
5
6void setup() {
7  Serial.begin(9600);                  // Seri Monitör / Serial Monitor
8  Serial1.begin(9600);                 // D0/D1'deki modül, ör. HC-05 / module on D0/D1, e.g. HC-05
9  pinMode(BUTTON_PIN, INPUT_PULLUP);   // klasik Nano'nun A7'sinde çalışmaz / does not work on the classic Nano's A7
10}
11
12void loop() {
13  if (Serial1.available()) {
14    Serial.write(Serial1.read());      // modülden bilgisayara / module to computer
15  }
16  if (Serial.available()) {
17    Serial1.write(Serial.read());      // bilgisayardan modüle / computer to module
18  }
19  bool state = digitalRead(BUTTON_PIN);
20  if (state != lastState) {            // durum değişince bildir / report when the state changes
21    lastState = state;
22    Serial1.println(state == LOW ? "Buton basildi / Button pressed" : "Buton birakildi / Button released");
23    delay(20);                         // kontak sıçraması / contact bounce
24  }
25}

Nano ESP32 ise aynı kart boyutunda bambaşka bir dünyadır: u-blox NORA-W106 modülündeki ESP32-S3 işlemci 240 MHz'te çalışır, Wi-Fi ve Bluetooth LE sunar. En önemli fark gerilimdir: tüm pinler 3,3 V ile çalışır ve 5 V'a dayanıklı değildir; klasik Nano'ya doğrudan bağladığın 5 V çıkışlı bir sensör Nano ESP32'yi bozabilir. Klasik Nano'daki 5V pininin yerinde VBUS vardır ve yalnızca kart USB'den beslenirken 5 V verir; VIN'den beslerken bu pin boştur. AREF'in ve analog taraftaki RST pininin yerinde ise BOOT0 ve BOOT1 bulunur. Kart Arduino ESP32 Boards paketiyle programlanır ve Araçlar > Pin Numbering menüsünde iki seçenek vardır: varsayılan By Arduino pin ayarında kartın üzerindeki D ve A adları geçerlidir, By GPIO number ayarında ise sayılar ESP32'nin GPIO numaralarıdır. Örneğin D2 aslında GPIO5'tir; GPIO modunda pinMode(2, OUTPUT) yazarsan A1 pinini ayarlamış olursun. Pinleri her zaman D2 ve A0 gibi adlarla yazarsan kod iki modda da doğru çalışır.

C++ (Arduino IDE)
1// Nano ESP32: Araçlar > Pin Numbering > By Arduino pin (default)
2// Nano ESP32: Tools > Pin Numbering > By Arduino pin (default)
3bool ledOn = false;
4
5void setup() {
6  Serial.begin(115200);                // USB-C üzerinden / over USB-C
7  pinMode(LED_BUILTIN, OUTPUT);        // D13 = GPIO48
8  pinMode(LED_RED, OUTPUT);
9  pinMode(LED_GREEN, OUTPUT);
10  pinMode(LED_BLUE, OUTPUT);
11  digitalWrite(LED_RED, HIGH);         // RGB LED ters mantık: HIGH = sönük / active low: HIGH = off
12  digitalWrite(LED_GREEN, HIGH);
13  digitalWrite(LED_BLUE, HIGH);
14  analogReadResolution(12);            // 0-4095 arası / range 0-4095
15}
16
17void loop() {
18  int raw = analogRead(A0);            // 12 bit ham değer / 12-bit raw value
19  int mv = analogReadMilliVolts(A0);   // kalibre edilmiş milivolt / calibrated millivolts
20  Serial.printf("A0: %d  (%d mV)\n", raw, mv);
21  digitalWrite(LED_GREEN, mv > 1650 ? LOW : HIGH);   // 1,65 V üstünde yeşil / green above 1.65 V
22  digitalWrite(LED_RED, mv > 1650 ? HIGH : LOW);     // altında kırmızı / red below
23  ledOn = !ledOn;
24  digitalWrite(LED_BUILTIN, ledOn ? HIGH : LOW);     // D13 LED'ini yakıp söndür / blink the D13 LED
25  delay(500);
26}

Nano ESP32'nin analog girişleri 12 bitlik ölçüm yapar ve 0–4095 arası değer döndürür; analogReadMilliVolts() ise yonganın kalibrasyon verisini kullanarak sonucu doğrudan milivolt olarak verir. Kart üzerindeki RGB LED ters mantıkla çalışır, yani LOW yazınca yanar. Kod yüklenmiyor ve kart port listesinden kayboluyorsa reset düğmesine art arda iki kez hızlıca basarak kartı bootloader moduna alabilirsin. ESP32'nin Wi-Fi tarafını öğrenmek için ESP32 nedir, kart seçimini netleştirmek için Arduino mu ESP32 mi yazısına bakabilirsin. Ailenin diğer üyelerinden Nano R4, Uno R4 ile aynı 48 MHz'lik Renesas RA4M1 işlemciyi 5 V'luk Nano boyutuna taşır ama pin başına yalnızca 8 mA verir; Nano 33 IoT ve Nano 33 BLE ise Nano ESP32 gibi 3,3 V'luk kartlardır.

Arduino Nano ile proje fikirleri

  • Cep termometresi: DHT11 ile ölçtüğün sıcaklığı küçük bir OLED ekranda göster; Nano ve ekran bir kibrit kutusuna sığar.
  • Mini robot araba: Nano'nun küçük boyu şasi üzerinde yer kazandırır; motorları L298N ile sür, adımlar için robot araba yapımı yazısına bak.
  • Çizgi izleyen robot: Sekiz analog giriş, beşli bir sensör dizisini okumaya fazlasıyla yeter; ayrıntılar çizgi izleyen robot yazısında.
  • Bluetooth kumanda: HC-05 modülünü SoftwareSerial ile D8 ve D7'ye bağla, telefondan LED ya da röle kontrol et; D0 ve D1 yükleme için boş kalır.
  • Giyilebilir ışık: Pille beslenen bir Nano ve birkaç WS2812B LED ile yaka kartı ya da çanta ışığı yap.
  • Tek pinde tuş takımı: Yukarıdaki direnç merdivenini hem A6'ya hem A7'ye kurarak sekiz butonlu bir menü yap, dijital pinleri ekran ve motorlara ayır.
  • USB klavye mi istiyorsun? Klasik Nano'nun ATmega328P'sinde yerleşik USB olmadığı için bilgisayara klavye ya da fare gibi görünemez; bu iş için Leonardo ve Pro Micro gibi ATmega32U4'lü kartlar gerekir.

Sık yapılan hatalar ve çözümleri

BelirtiSebepÇözüm
Port listesinde Nano görünmüyorYalnızca şarj eden kablo ya da eksik CH340 sürücüsüVeri kablosu kullan, CH341SER sürücüsünü kur; Linux'ta brltty'yi kaldır
Yükleme "not in sync" hatasıyla duruyorKartta eski bootloader varAraçlar > Processor > ATmega328P (Old Bootloader)
A6 ya da A7'deki buton hiç tepki vermiyorBu pinlerde digitalRead ve dahili pull-up yokHarici 10 kΩ pull-up tak, analogRead ile eşik kullan
D13'e bağlı buton hep basılı görünüyorL LED'i ve direnci pini aşağı çekiyorButonu başka bir pine taşı
3V3'ten beslenen modül kararsız ya da hiç çalışmıyor3V3 pini çok az akım verir5V'tan beslenen ayrı bir 3,3 V regülatör kullan
Analog ölçümler yüzde birkaç fazla çıkıyorUSB'de 5V pini yaklaşık 4,7 VGerçek Vcc'yi ölç ya da kartı VIN'den besle
VIN'e 12 V verince kart çok ısınıyorRegülatör (12 − 5) × akım kadar ısı üretiyorVIN'e 7–9 V ver ya da buck modülle 5V pinini besle
Servo bağlayınca D9/D10'daki LED kısılmıyorServo kütüphanesi Timer1'i kullanıyorLED'i D3, D5, D6 ya da D11'e taşı
Bir Nano projesine başlamadan önce pin planını kâğıda yaz: önce I2C (A4/A5), SPI (D10–D13), kesme (D2/D3) ve PWM isteyen parçaları yerleştir, analog sensörleri A0–A3 ile A6–A7'ye, butonları kalan dijital pinlere dağıt, D0 ve D1'i en sona bırak. Kart beklenmedik şekilde yeniden başlıyorsa Arduino resetleniyor yazısındaki teşhis adımları işine yarar.

Arduino Nano, Uno'da öğrendiğin her şeyi küçük ve kalıcı projelere taşımanın en kolay yoludur; A6/A7, 3V3 ve bootloader farklarını bildiğin sürece sürprizle karşılaşmazsın. Temellere dönmek istersen Arduino nedir yazısıyla başlayabilirsin. BlueGrays uygulamasında LED yakma, buton ile LED, LDR ile ışık ölçümü, HC-SR04 ile mesafe, DHT11 ile sıcaklık ve nem, RGB LED, potansiyometre ile servo ve iki Arduino arasında seri haberleşme projelerini devre şemaları ve hazır kodlarıyla adım adım bulabilirsin; hepsi Nano'da da aynı pin numaralarıyla çalışır.

Sıkça sorulan sorular

Arduino Nano'da kaç pin var?

Klasik Arduino Nano'da iki sıra hâlinde toplam 30 pin bulunur. Bunların 14'ü dijital giriş/çıkış (D0–D13), 8'i analog giriş (A0–A7), geri kalanı VIN, 5V, 3V3, AREF, iki GND ve iki RST pinidir. A0–A5 dijital olarak da kullanılabildiği için 20 dijital pin elde edilir; A6 ve A7 ise yalnızca analog okur.

Arduino Nano'da PWM pinleri hangileri?

PWM pinleri D3, D5, D6, D9, D10 ve D11'dir; kart üzerinde ya da pin şemalarında numaranın yanında ~ işaretiyle gösterilir. D5 ve D6 yaklaşık 980 Hz, diğerleri yaklaşık 490 Hz frekansla çalışır. Servo kütüphanesi D9 ve D10'un, tone() fonksiyonu D3 ve D11'in PWM'ini etkiler.

Arduino Nano A6 ve A7 dijital pin olarak kullanılabilir mi?

Hayır. A6 ve A7, ATmega328P'nin yalnızca analog-dijital dönüştürücüye bağlı iki kanalıdır; pinMode, digitalRead, digitalWrite ve dahili pull-up bu pinlerde çalışmaz. Buton okumak istersen harici bir 10 kΩ pull-up direnci takıp analogRead() ile eşik karşılaştırması yapabilirsin. Nano Every ve Nano ESP32'de ise A6 ve A7 dijital olarak da kullanılabilir.

Arduino Nano'ya kaç volt verilir?

Nano'yu USB'den, VIN pinine 7–12 V vererek ya da 5V pinine düzenli 5 V vererek besleyebilirsin. Klon kartlardaki AMS1117 regülatörü 15 V'u aşan gerilimde bozulabilir ve 12 V'ta bile çabuk ısınır, bu yüzden VIN için 7–9 V idealdir. 5V pinine asla 5 V'tan yüksek gerilim verme.

Arduino Nano'da Old Bootloader ne demek?

Arduino, 2018'de Nano'nun bootloader'ını daha küçük ve hızlı Optiboot ile değiştirdi; yeni bootloader 115200, eskisi 57600 baud ile haberleşir. Piyasadaki klon Nano'ların çoğunda hâlâ eski bootloader olduğundan Araçlar > Processor menüsünden ATmega328P (Old Bootloader) seçmezsen yükleme not in sync hatasıyla durur. Yanlış seçim karta zarar vermez, iki seçeneği sırayla deneyebilirsin.

Arduino Nano ile Uno arasındaki fark nedir?

İkisi de 16 MHz'lik ATmega328P kullanır, bu yüzden pin numaraları, PWM pinleri, I2C (A4/A5) ve SPI (D10–D13) hatları ile kodlar aynıdır. Nano daha küçüktür, breadboard'a takılır ve iki fazla analog girişi (A6, A7) vardır, ama DC jakı ve shield yuvası yoktur. Ayrıca Nano mini USB kullanır ve IDE'de kod için 30.720 bayt yer ayırır; Uno'da bu sınır 32.256 bayttır.

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
Buton İle Led Yakma (Push)
#9Başlangıç

Buton İle Led Yakma (Push)

Kapı zili gibi: bastığın sürece ışık yanar, bırakınca söner. Arduino butonu sürekli dinler; butona basılıyken LED'i yakar, elini çektiğin an söndürür. Kartın dışarıdan gelen bir dokunuşu nasıl hissett

4.8(113)
229
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
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
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
RGB Led Kullanımı
#39Başlangıç
Premium

RGB Led Kullanımı

Tek bir LED'in içinde üç renk saklı: RGB LED önce kırmızı, sonra yeşil, sonra mavi yanar; her renk yarım saniye yanıp yarım saniye söner ve sıra baştan başlar. Arduino'ya bir RGB LED ve üç direnç bağl

4.9(73)
98
Potansiyometre İle Servo Motor Kullanım
#36Başlangıç
Premium

Potansiyometre İle Servo Motor Kullanım

Potansiyometrenin düğmesini çevirdikçe servo motorun kolu da onunla birlikte döner; düğmenin bir ucu sıfır dereceye, öbür ucu yarım tura karşılık gelir. Arduino düğmenin konumunu sürekli okur ve servo

4.6(37)
52
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