Parçalar · 9 dk okuma

USB-TTL Dönüştürücü: CH340, CP2102 Kullanımı ve Bağlantısı

USB-TTL dönüştürücü ne işe yarar? TX-RX çapraz bağlantı, 3,3 V/5 V jumper'ı, sürücü kurulumu, Pro Mini, ESP-01 ve ESP32-CAM programlama, CH340-CP2102 farkı.

USB-TTL dönüştürücü, bilgisayarın USB portunu mikrodenetleyicilerin konuştuğu seri haberleşme (UART) diline çeviren küçük bir karttır. Arduino Pro Mini, ESP-01 ve ESP32-CAM gibi üzerinde USB soketi olmayan kartlara kod yüklemek, bir modülün içinden akan seri mesajları okumak ya da GPS ve Bluetooth modüllerini bilgisayardan doğrudan ayarlamak için bu karta ihtiyaç duyarsın. Aslında her Arduino Uno ve Nano'nun üzerinde bunun bir kopyası zaten vardır; dönüştürücü, o devreyi ayrı ve taşınabilir bir modül hâline getirir.

Bu rehberde dönüştürücünün pinlerini, en sık yapılan hata olan TX-RX bağlantısını, 3,3 V ve 5 V lojik seviyesini seçen jumper'ı ve Windows, macOS ile Linux'ta sürücü kurulumunu öğreneceksin. Ardından Arduino Pro Mini'yi DTR pini sayesinde düğmeye basmadan programlamayı, ESP-01 ve ESP32-CAM'e kod yüklemeyi, dönüştürücüyü ikinci bir seri monitör olarak kullanmayı ve en yaygın üç yonga olan CH340, CP2102 ve FT232'nin farklarını göreceksin.

CP2102 USB-TTL dönüştürücü modülü
CP2102 USB-TTL dönüştürücü: bir uçta USB, diğer uçta GND, TXD, RXD, DTR ve besleme pinleri. Pro Mini, ESP-01 ve ESP32-CAM programlamanın en pratik yolu.

USB-TTL dönüştürücü nedir, ne işe yarar?

Bilgisayar ile mikrodenetleyici farklı diller konuşur. USB; paketler, adresler ve sürücülerle çalışan karmaşık bir protokoldür. Mikrodenetleyicilerin UART birimi ise yalnızca iki hatla çalışır: biri veri gönderir (TX), diğeri veri alır (RX) ve her bayt, belirlenen hızda (baud) sırayla gönderilen bitlerden oluşur. Dönüştürücüdeki yonga bilgisayara bir sanal seri port (Windows'ta COM3, macOS'ta /dev/cu.usbserial..., Linux'ta /dev/ttyUSB0) gibi görünür; bu porta yazdığın her bayt TX pininden UART sinyali olarak çıkar, RX pinine gelen her bayt da bilgisayara iletilir. Adındaki TTL, sinyallerin 0 V ile 5 V ya da 0 V ile 3,3 V arasında değiştiğini anlatır.

  • USB'siz kartları programlamak: Arduino Pro Mini, LilyPad, ESP-01, ESP32-CAM ve bootloader'lı çıplak ATmega328P yongaları.
  • Seri log okumak: Kartın kendi USB'si başka işle meşgulken hata ayıklama mesajlarını ikinci bir pencereden izlemek.
  • Modülleri doğrudan konuşturmak: ESP-01'e AT komutu göndermek, bir GPS modülünün NMEA cümlelerini okumak, Bluetooth modülünün adını değiştirmek.
  • Bozuk kartı kurtarmak: USB yongası yanmış bir Uno ya da Nano'yu D0 ve D1 pinlerinden programlamak.
  • Başka cihazların konsoluna bağlanmak: Modem, 3D yazıcı kartı ya da tek kartlı bilgisayarların seri konsol pinleri.

USB-TTL pinleri: GND, VCC, TXD, RXD, DTR ve RTS

PinGöreviNot
GNDOrtak toprakHer bağlantıda mutlaka bağlanır
5VUSB'den gelen 5 V çıkışGenellikle 500 mA'e kadar, bilgisayarın portuna bağlı
3V33,3 V çıkışYonganın ya da küçük bir regülatörün çıkışı; akımı sınırlı
TXDVeri çıkışı (bilgisayardan karta)Hedef kartın RX pinine gider
RXDVeri girişi (karttan bilgisayara)Hedef kartın TX pinine gider
DTRPort açılınca LOW olan kontrol hattıArduino'larda otomatik reset için kullanılır
RTS / CTSAkış kontrolü hatlarıESP kartlarının otomatik yükleme devresinde RTS kullanılır; CTS çoğu projede boşta kalır

TX-RX çapraz bağlama

En sık yapılan hata TX'i TX'e bağlamaktır. Kural basit: bir cihazın konuştuğu hat, diğerinin dinlediği hatta gitmelidir. Bu yüzden dönüştürücünün TXD pini hedef kartın RX pinine, RXD pini de hedefin TX pinine bağlanır. Bazı kartlarda bu karışıklığı önlemek için etiketler yönü de belirtir: Arduino Pro Mini'de RXI (RX girişi) ve TXO (TX çıkışı) yazar; SparkFun tarzı FTDI kartlarında da etiketler, iki kart düz takıldığında doğru çapraz bağlantıyı oluşturacak şekilde yazılmıştır. Etiketlere güvenemiyorsan bağlantıyı bir kez de ters dene; TX ile RX'in yer değiştirmesi hiçbir şeye zarar vermez, yalnızca haberleşme olmaz.

DönüştürücüHedef kartAçıklama
GNDGNDOrtak toprak, olmazsa olmaz
TXDRX (RXI, U0R)Çapraz: verici alıcıya
RXDTX (TXO, U0T)Çapraz: alıcı vericiye
5V ya da 3V3VCCYalnız hedef kartın başka beslemesi yoksa
DTRDTR / GRN / RSTYalnız otomatik reset gerekiyorsa
Hedef kart zaten kendi adaptöründen ya da pilinden besleniyorsa dönüştürücünün VCC pinini bağlama; yalnızca GND, TXD ve RXD yeterlidir. İki ayrı kaynağın çıkışlarını birbirine bağlamak, birinden diğerine akım akmasına ve dönüştürücünün ya da bilgisayarın USB portunun zarar görmesine yol açabilir. GND ise her durumda bağlanmalıdır; ortak toprak olmadan sinyal seviyeleri anlamsız hâle gelir.

3,3 V / 5 V jumper'ı: lojik seviye nasıl seçilir?

Arduino Uno, Nano ve 5 V'luk Pro Mini 5 V lojikle çalışır; ESP8266, ESP32 ve Raspberry Pi Pico ise 3,3 V lojikle. Bir ESP'nin RX pinine 5 V'luk sinyal göndermek, giriş koruma diyotlarını zorlar ve zamanla pini bozabilir. CH340G'li modüllerin çoğunda bu yüzden üç pinli bir jumper bulunur: jumper yonganın besleme gerilimini seçer, TXD çıkışının seviyesi de bu gerilimi izler. CP2102 her zaman 3,3 V lojikle çalışır ama girişleri 5 V'a dayanıklıdır; bu yüzden hem 3,3 V hem 5 V kartlarla sorunsuz konuşur, çünkü 5 V'luk bir ATmega328P 3 V üzerini zaten HIGH kabul eder. FT232RL modüllerinde de çoğu zaman yonganın giriş-çıkış seviyesini (VCCIO) seçen bir jumper vardır.

Hedef kartJumper ya da lojik seviyeBesleme
Arduino Pro Mini 5 V / 16 MHz5 VDönüştürücünün 5V pininden
Arduino Pro Mini 3,3 V / 8 MHz3,3 V3V3 pininden ya da kendi beslemesinden
ESP-01 / ESP-01S3,3 VAyrı bir 3,3 V regülatör (en az 300 mA)
ESP32-CAM3,3 VDönüştürücünün 5V pininden kartın 5V pinine
Raspberry Pi Pico (UART0)3,3 VPico kendi USB'sinden beslenir; yalnız GND, TX, RX

Elindeki dönüştürücüde jumper yoksa ve 5 V'luk bir TX hattını 3,3 V'luk bir girişe bağlaman gerekiyorsa basit bir gerilim bölücü yeterlidir: TX hattı ile hedefin RX'i arasına 1 kΩ, hedefin RX'i ile GND arasına 2 kΩ koyduğunda 5 V yaklaşık 3,3 V'a düşer. Ayrıntılı hesap gerilim bölücü yazısında. Ters yönde, yani 3,3 V'luk bir TX'i 5 V'luk bir girişe bağlamak genellikle sorunsuzdur.

CH340, CP2102 ve FT232 karşılaştırması

ÖzellikCH340 (G / C)CP2102FT232RL
ÜreticiWCHSilicon LabsFTDI
En yüksek baud2 Mbps1 Mbps (CP2102N: 3 Mbps)3 Mbps
KristalCH340G harici 12 MHz ister; CH340C dahiliDahiliDahili
3,3 V çıkışıModüle göre değişir, çoğunda zayıfVar, yonga dahil yaklaşık 100 mAVar, 50 mA'e kadar
Lojik seviyeBeslemeye göre 5 V ya da 3,3 V3,3 V, girişler 5 V'a dayanıklıVCCIO'ya göre 5 V ya da 3,3 V
DTR ve RTSVarVarVar, tüm modem hatlarıyla
SürücüWindows'ta çoğu zaman otomatik; macOS ve Linux'ta yerleşikWindows'ta çoğu zaman otomatik; macOS ve Linux'ta yerleşikWindows'ta otomatik; macOS ve Linux'ta yerleşik
FiyatEn uygunOrtaEn yüksek
DikkatModüllerin 3V3 pinine fazla yük bağlamaModül pin sıraları üreticiye göre değişirPiyasada sahte yongalar çok; resmi sürücü bazılarını tanımayabilir

Günlük hobi işleri için CH340 ve CP2102 arasında pratikte fark yoktur; ikisi de 115200 baud'da kusursuz çalışır ve Arduino IDE'nin kullandığı hızların hepsini rahatça taşır. CP2102'nin dahili osilatörü ve daha güçlü 3,3 V çıkışı, küçük 3,3 V'luk kartları beslerken ona hafif bir üstünlük sağlar; CH340 ise en ucuz ve en yaygın olanıdır. FT232RL güvenilir ve ayrıntılı ayar yapılabilen bir yongadır ama piyasadaki ucuz FT232 modüllerinin önemli bir kısmında taklit yonga bulunur. Yeni ESP32 kartlarında gördüğün CH9102 ve CH343 de aynı ailenin daha hızlı üyeleridir ve aynı şekilde kullanılır.

CH340 USB-TTL dönüştürücü
CH340 USB-TTL dönüştürücü: en uygun fiyatlı seçenek. Üzerindeki jumper ile 5 V ya da 3,3 V lojik seviyesi seçilir.

Sürücü kurulumu: Windows, macOS ve Linux

İşletim sistemiNe yapmalı?Port adı
Windows 10 / 11Çoğu zaman Windows Update sürücüyü kendisi kurar; kurmazsa CH340 için CH341SER, CP2102 için CP210x VCP sürücüsünü yükleAygıt Yöneticisi > Bağlantı noktaları altında COM3, COM4...
macOSGüncel sürümlerde CH340, CP2102 ve FT232 için sürücü yerleşiktir; eski üretici sürücülerini üst üste kurma/dev/cu.usbserial-..., üretici sürücüsüyle /dev/cu.wchusbserial... ya da /dev/cu.SLAB_USBtoUART
LinuxSürücüler çekirdekte hazır; kullanıcını dialout grubuna ekle, Ubuntu'da CH340 port kayboluyorsa brltty paketini kaldır/dev/ttyUSB0

Windows'ta dönüştürücüyü taktığında Aygıt Yöneticisi'nde Diğer aygıtlar altında sarı ünlemli bir USB2.0-Serial görüyorsan CH340 sürücüsü eksiktir; CP2102 USB to UART Bridge Controller görüyorsan CP2102 sürücüsü eksiktir. Sürücü kurulduktan sonra dönüştürücüyü çıkarıp yeniden tak ve Arduino IDE'de Araçlar > Port menüsüne bak: o an beliren yeni port, dönüştürücünündür. Kart hiç görünmüyorsa önce kabloyu değiştir; şarj kablolarında veri telleri bulunmaz. Port, sürücü ve izin sorunlarının tam listesi Arduino kod yüklenmiyor yazısında.

Loopback testi: dönüştürücü sağlam mı?

  1. Dönüştürücüdeki bütün kabloları çıkar ve bilgisayara tak.
  2. Bir jumper kabloyla dönüştürücünün kendi TXD ve RXD pinlerini birbirine bağla.
  3. Arduino IDE'de dönüştürücünün portunu seç ve Seri Monitör'ü aç; hız bu test için önemli değildir.
  4. Kutucuğa bir şey yazıp gönder. Yazdığın metin aynen geri geliyorsa yonga, sürücü ve kablo sağlamdır; sorun bağlantıda ya da hedef karttadır.
  5. Hiçbir şey dönmüyorsa portu, sürücüyü ve kabloyu kontrol et; dönüştürücünün TX ve RX LED'leri yanıp sönüyor mu bak.

Arduino Pro Mini programlama: DTR ile otomatik reset

Arduino Pro Mini kartı
Arduino Pro Mini: USB soketi yoktur. Kısa kenardaki altı pinli BLK, GND, VCC, RXI, TXO ve GRN başlığı USB-TTL dönüştürücü içindir.

Arduino'ya kod yüklenirken önce kart resetlenir; reset sonrasında yaklaşık bir saniye çalışan bootloader, seri porttan yeni program gelip gelmediğine bakar. Uno ve Nano bu reseti kendiliğinden yapar: USB yongasının DTR hattı ile işlemcinin RESET pini arasında 100 nF'lık bir kondansatör vardır. IDE portu açtığı anda DTR HIGH'dan LOW'a iner, kondansatör bu ani düşüşü RESET pinine kısa bir LOW darbesi olarak iletir ve kart resetlenir. Pro Mini'de aynı kondansatör kartın üzerindedir ve başlıktaki GRN (ya da DTR) pinine bağlıdır; dönüştürücünün DTR pinini buraya bağladığında yükleme Uno'daki kadar kolay olur.

USB-TTLPro MiniNot
GNDGND (ya da BLK)Ortak toprak
5V ya da 3V3VCC5 V / 16 MHz sürüme 5V, 3,3 V / 8 MHz sürüme 3V3
TXDRXIÇapraz bağlantı
RXDTXOÇapraz bağlantı
DTRGRN (DTR)Otomatik reset; yoksa elle reset gerekir
  1. Kartın arkasındaki ya da kristalinin üzerindeki yazıdan sürümünü öğren: 16 MHz kristalliler 5 V, 8 MHz olanlar 3,3 V sürümdür.
  2. Dönüştürücünün jumper'ını kart sürümüne uygun konuma al ve kabloları tabloya göre bağla.
  3. Arduino IDE'de Araçlar > Kart > Arduino AVR Boards > Arduino Pro or Pro Mini seç.
  4. Araçlar > Processor menüsünden ATmega328P (5V, 16 MHz) ya da ATmega328P (3.3V, 8 MHz) seçeneğini kartına göre seç.
  5. Dönüştürücünün portunu seç ve aşağıdaki test kodunu yükle; DTR bağlıysa düğmeye basman gerekmez.
C++ (Arduino IDE)
1// Pro Mini + USB-TTL testi: LED yanıp söner, gönderdiğin satır geri gelir
2// Pro Mini + USB-TTL test: the LED blinks and every line you send comes back
3const int LED = 13;                     // Pro Mini'nin dahili LED'i / Pro Mini onboard LED
4unsigned long sonDegisim = 0;
5bool ledAcik = false;
6
7void setup() {
8  Serial.begin(9600);
9  pinMode(LED, OUTPUT);
10  Serial.println(F("Pro Mini hazir / ready"));
11  Serial.print(F("Derlenen saat / compiled clock: "));
12  Serial.print(F_CPU / 1000000UL);      // 16 = 5 V sürüm, 8 = 3,3 V sürüm / 16 = 5 V board, 8 = 3.3 V board
13  Serial.println(F(" MHz"));
14}
15
16void loop() {
17  if (millis() - sonDegisim >= 500) {   // yarım saniyede bir / every half second
18    sonDegisim = millis();
19    ledAcik = !ledAcik;
20    digitalWrite(LED, ledAcik);
21  }
22  if (Serial.available()) {
23    String satir = Serial.readStringUntil('\n');   // satır sonuna kadar oku / read up to the line ending
24    satir.trim();
25    Serial.print(F("Geldi / received: "));
26    Serial.println(satir);
27  }
28}

Yükleme bitince kart üzerindeki LED yarım saniyede bir yanıp söner. Seri Monitör'ü 9600 baud'da ve Yeni Satır ayarıyla açıp bir şey yazdığında metin geri gelir. Koddaki F_CPU satırı küçük ama önemli bir tuzağı yakalar: Pro Mini'nin iki sürümünün bootloader'ı da 57600 baud ile yükleme yaptığı için yanlış Processor seçeneğiyle bile kod yüklenir. Ancak 8 MHz'lik bir kart için 16 MHz seçersen her şey yarı hızda çalışır, LED saniyede bir değişir ve Seri Monitör'de yalnızca anlamsız karakterler görürsün. Dönüştürücünde DTR pini yoksa yüklemeyi elle zamanlayabilirsin: IDE derlemeyi bitirip çıktıda Uploading... yazdığı anda Pro Mini'nin reset düğmesine bas ve bırak.

ESP-01 ve ESP32-CAM'e kod yükleme

ESP8266 ve ESP32'de bootloader yongaya gömülüdür ve açılış anında GPIO 0 pinine bakar: GPIO 0 LOW ise kod bekleyen indirme moduna girer, HIGH ise flaştaki programı çalıştırır. Geliştirme kartlarında DTR ve RTS hatlarını iki transistörle EN ve GPIO 0'a bağlayan bir otomatik yükleme devresi bulunur; esptool bu hatları sırayla oynatarak kartı kendiliğinden indirme moduna alır. Sade bir USB-TTL dönüştürücüde bu devre olmadığı için işi elle yaparsın: GPIO 0'ı GND'ye bağlarsın, kartı resetlersin, kodu yüklersin ve sonra GPIO 0 bağlantısını kaldırıp yeniden resetlersin.

USB-TTL (jumper 3,3 V)ESP-01ESP32-CAM
GNDGNDGND
TXDRXU0R (GPIO 3)
RXDTXU0T (GPIO 1)
BeslemeAyrı 3,3 V regülatörden VCC ve EN (CH_PD)Dönüştürücünün 5V pininden kartın 5V pinine
Yükleme moduGPIO 0 GND'ye, RST'yi kısa süre GND'ye değdirIO0 GND'ye, RST düğmesine bas
Arduino IDE kartıGeneric ESP8266 ModuleAI Thinker ESP32-CAM

ESP-01 Wi-Fi'ye bağlanırken 300 mA'i aşan akım tepeleri çeker; dönüştürücünün 3V3 pini bunu karşılayamaz ve modül sürekli resetlenir. Bu yüzden 5V pininden beslenen bir AMS1117-3.3 regülatör kullan. ESP-01'in bütün bağlantıları ve AT komutları ESP-01 modülü yazısında, ESP32-CAM'in adım adım yüklemesi ise ESP32-CAM kullanımı yazısında. ESP32-CAM'e PIR bağlayıp fotoğrafı telefona gönderen bir proje istersen ESP32-CAM ile Telegram'a fotoğraf yazısına göz at.

ESP8266'nın açılış mesajları alışılmadık bir hızda, 74880 baud ile gönderilir; Seri Monitör'ü bu hıza alırsan modülün indirme modunda mı (boot mode:(1,x)) yoksa normal modda mı (boot mode:(3,x)) açıldığını görürsün. ESP32 ise açılış mesajlarını 115200 baud ile yazar; waiting for download satırı, GPIO 0'ın hâlâ GND'de olduğunu gösterir.

Seri log okuma: ikinci bir seri port olarak USB-TTL

Dönüştürücünün en az bilinen ama en kullanışlı işi, bir karta ikinci bir seri monitör eklemektir. Kartın kendi USB portu bir Python programıyla, Serial Plotter'la ya da başka bir cihazla konuşurken ayrıntılı hata ayıklama mesajlarını ayrı bir porttan izleyebilirsin. ESP32'nin üç donanım UART'ı vardır; aşağıdaki kod UART2'yi GPIO 16 ve 17'ye atar ve dönüştürücüye saniyede bir log satırı gönderir. Dönüştürücüden gelen r harfi sayacı sıfırlar; böylece iki yönlü çalıştığını da görürsün.

C++ (Arduino IDE)
1// ESP32: USB portu Serial'de kalır, ikinci log kanalı USB-TTL'ye gider
2// ESP32: the USB port stays on Serial, a second log channel goes to the USB-TTL
3#define LOG_RX 16                       // USB-TTL TXD buraya / USB-TTL TXD goes here
4#define LOG_TX 17                       // USB-TTL RXD buraya / USB-TTL RXD goes here
5
6unsigned long sayac = 0;
7
8void setup() {
9  Serial.begin(115200);                                  // kartın kendi USB portu / the board's own USB port
10  Serial2.begin(115200, SERIAL_8N1, LOG_RX, LOG_TX);     // UART2: USB-TTL'ye / UART2: to the USB-TTL
11  Serial.println("Ana port / main port");
12  Serial2.println("Log portu hazir / log port ready");
13}
14
15void loop() {
16  sayac++;
17  int deger = analogRead(34);                            // GPIO 34'e bağlı bir sensör / a sensor on GPIO 34
18  Serial2.printf("[%lu ms] #%lu ADC=%d\n", millis(), sayac, deger);   // ayrıntılı log / detailed log
19  if (sayac % 10 == 0) Serial.println(deger);            // ana portta yalnız özet / only a summary on the main port
20
21  while (Serial2.available()) {                          // USB-TTL'den gelen komut / command from the USB-TTL
22    char c = Serial2.read();
23    if (c == 'r') {
24      Serial2.println("Sayac sifirlandi / counter reset");
25      sayac = 0;
26    }
27  }
28  delay(1000);
29}

Bağlantı için dönüştürücünün jumper'ını 3,3 V'a al; TXD'yi GPIO 16'ya, RXD'yi GPIO 17'ye, GND'yi GND'ye bağla. Ardından Arduino IDE'yi ikinci kez açmak yerine PuTTY, macOS ve Linux'ta screen ya da Python ile yazacağın küçük bir okuyucu kullanabilirsin; Python tarafı için Arduino Python seri haberleşme yazısına bak. Raspberry Pi Pico'da da aynı fikir MicroPython ile birkaç satırdır: UART0, GP0 (TX) ve GP1 (RX) pinlerindedir ve kod hem log gönderir hem de gelen baytları geri yollar.

MicroPython
1# Raspberry Pi Pico (MicroPython): UART0 üzerinden USB-TTL'ye log ve yankı
2# Raspberry Pi Pico (MicroPython): log and echo to a USB-TTL over UART0
3from machine import UART, Pin
4import time
5
6uart = UART(0, baudrate=115200, tx=Pin(0), rx=Pin(1))   # GP0 = TX, GP1 = RX
7led = Pin(25, Pin.OUT)                                  # Pico dahili LED / Pico onboard LED (Pico W: "LED")
8sayac = 0
9son = time.ticks_ms()
10
11uart.write("Pico UART0 hazir / ready\r\n")
12while True:
13    if time.ticks_diff(time.ticks_ms(), son) >= 1000:   # saniyede bir log / one log line per second
14        son = time.ticks_ms()
15        sayac += 1
16        led.toggle()
17        uart.write("[%d ms] #%d\r\n" % (time.ticks_ms(), sayac))
18    if uart.any():                                      # USB-TTL'den gelen baytlar / bytes from the USB-TTL
19        veri = uart.read()
20        uart.write(b"Geldi / received: " + veri)
21    time.sleep_ms(10)

Aynı yöntemle bir modülün ne söylediğini, arada hiç Arduino olmadan da dinleyebilirsin. Bir NEO-6M GPS modülünü doğrudan dönüştürücüye bağlayıp 9600 baud'da açtığında NMEA cümlelerinin aktığını görürsün; bir HC-05 modülünü AT modunda 38400 baud'da açıp adını ve şifresini değiştirebilirsin. Seri Monitör'ün satır sonu ve baud ayarlarıyla ilgili her şey Arduino Serial Monitor yazısında.

Sık hatalar ve çözümleri

BelirtiOlası sebepÇözüm
Port listesinde dönüştürücü yokŞarj kablosu, eksik sürücü ya da Linux'ta brlttyVeri kablosu kullan, sürücüyü kur, brltty'yi kaldır
avrdude: stk500_getsync(): not in sync: resp=0x00TX-RX düz bağlı, DTR bağlı değil ya da yanlış kartTX'i RXI'ya, RX'i TXO'ya bağla; DTR'yi GRN'ye bağla ya da Uploading... yazınca reset'e bas
Kod yüklendi ama Seri Monitör'de anlamsız karakterlerBaud hızı uyuşmuyor ya da Pro Mini için yanlış MHz seçildiSeri Monitör'ü koddaki hıza al, Processor menüsünde kartın gerçek sürümünü seç
Failed to connect to ESP8266 / ESP32GPIO 0 açılışta LOW değil ya da TX-RX tersGPIO 0'ı GND'ye bağla, ardından reset at, TX-RX'i kontrol et
ESP sürekli yeniden başlıyorDönüştürücünün 3,3 V çıkışı akım tepelerini karşılayamıyorAyrı bir 3,3 V regülatör ve 100–470 µF kondansatör kullan
Seri Monitör her açıldığında Pro Mini resetleniyorDTR hattı bağlı; port açılınca reset normaldirReset istemiyorsan yüklemeden sonra DTR kablosunu çıkar
Takınca bilgisayar USB portunu kapatıyorKısa devre ya da iki besleme çakışıyorKabloları sök, hedef kendi beslemesindeyse VCC'yi bağlama
Elinde dönüştürücü yoksa bir Arduino Uno'yu geçici olarak onun yerine kullanabilirsin: Uno'nun RESET pinini GND'ye bağla ya da içine boş bir kod yükle. Bu durumda bağlantı çapraz değil düz yapılır: hedefin TX'i Uno'nun D1 (TX), RX'i Uno'nun D0 (RX) pinine gider, çünkü veri Uno'nun işlemcisini değil USB yongasını kullanır. Uno 5 V lojikle çalıştığı için 3,3 V'luk kartlarda D0 hattına gerilim bölücü koymayı unutma.

USB-TTL dönüştürücü, çekmecende duran en küçük ama en sık işine yarayacak araçlardan biridir: USB'siz kartları programlar, modülleri bilgisayardan konuşturur ve projelerin içinde neler olduğunu satır satır gösterir. TX-RX'i çapraz bağlamayı, lojik seviyeyi doğru seçmeyi ve GND'yi ortak tutmayı unutmazsan sorunların neredeyse tamamı ortadan kalkar. BlueGrays uygulamasında iki Arduino'nun seri haberleşmesi, Bluetooth ile telefondan kontrol ve ESP32 Wi-Fi projelerini devre şemaları ve hazır kodlarıyla adım adım bulabilirsin.

Sıkça sorulan sorular

USB-TTL dönüştürücü ne işe yarar?

Bilgisayarın USB portunu mikrodenetleyicilerin kullandığı UART seri haberleşmesine çevirir. Böylece Arduino Pro Mini, ESP-01 ve ESP32-CAM gibi USB'si olmayan kartlara kod yükleyebilir, seri mesajlarını okuyabilir ve GPS ya da Bluetooth gibi modülleri bilgisayardan doğrudan ayarlayabilirsin.

CH340 mı CP2102 mi daha iyi?

Hobi projelerinde ikisi de 115200 baud'da sorunsuz çalışır ve pratikte fark hissedilmez. CP2102'nin dahili osilatörü ve daha güçlü 3,3 V çıkışı vardır, girişleri de 5 V'a dayanıklıdır; CH340 ise daha ucuz ve yaygındır. Güncel macOS ve Linux sürümlerinde ikisinin de sürücüsü yerleşiktir.

USB-TTL dönüştürücüde TX ve RX nasıl bağlanır?

Çapraz bağlanır: dönüştürücünün TXD pini hedef kartın RX pinine, RXD pini de hedefin TX pinine gider. GND her durumda ortak bağlanmalıdır. Hatları ters bağlamak zarar vermez ama haberleşme olmaz; emin değilsen yer değiştirip tekrar dene.

USB-TTL ile Arduino Pro Mini nasıl programlanır?

GND'yi GND'ye, VCC'yi VCC'ye, TXD'yi RXI'ya, RXD'yi TXO'ya ve DTR'yi GRN pinine bağla. Arduino IDE'de Arduino Pro or Pro Mini kartını ve kartının sürümüne uygun ATmega328P (5V, 16 MHz) ya da (3.3V, 8 MHz) seçeneğini seç, ardından kodu normal şekilde yükle. DTR yoksa Uploading... yazdığı anda reset düğmesine bas.

USB-TTL dönüştürücü 3,3 V mu 5 V mu olmalı?

Lojik seviye hedef kartla aynı olmalıdır: Uno, Nano ve 5 V'luk Pro Mini için 5 V; ESP8266, ESP32 ve Raspberry Pi Pico için 3,3 V. Jumper'lı modüllerde bu seçimi jumper ile yaparsın. CP2102 her zaman 3,3 V çıkış verir ve 5 V girişlere dayanıklı olduğundan iki tür kartla da çalışır.

Arduino Uno USB-TTL dönüştürücü olarak kullanılabilir mi?

Evet. Uno'nun RESET pinini GND'ye bağlar ya da boş bir kod yüklersen USB yongası D0 ve D1 üzerinden doğrudan dışarıya açılır. Bu durumda bağlantı düz yapılır: hedefin TX'i D1'e, RX'i D0'a gider. Uno 5 V lojik kullandığı için 3,3 V'luk kartlarda D0 hattına gerilim bölücü koymalısın.

Tüm projeleri gör
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
ESP32 ile LED Yakma
#103Başlangıç

ESP32 ile LED Yakma

ESP32 ile temel GPIO çıkışı kullanımını öğretir. Bir LED'i dijital pinden açıp kapatarak yanıp sönme efekti elde ederiz. Arduino UNO'daki klasik blink projesinin ESP32 versiyonu; Arduino ortamındaki temel blink komutları aynıdır, ancak ESP32'nin pin yerleşimi ve 3,3 V GPIO seviyeleri Arduino UNO'dan farklıdır.

4.7(37)
99
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
2 Arduino Çift Yönlü Haberleşme
#58Orta
Premium

2 Arduino Çift Yönlü Haberleşme

İki Arduino kabloyla birbirine bağlanıp konuşur: birinin butonuna basınca öbürünün ışığı yanar, yeniden basınca söner. İki kartta da aynı program çalışır, yani ikisi de hem haber gönderir hem haber al

4.5(20)
26
Bluetooth İle Telefondan Led Yakma
#34Başlangıç
Premium

Bluetooth İle Telefondan Led Yakma

Telefonundan odadaki ışıkları açıp kapatmanın küçük bir provası. Bluetooth modülü telefondan gelen harfleri Arduino'ya iletir; bir harf kırmızı LED'i, başka bir harf yeşil LED'i yakar, aynı harflerin

4.8(68)
89
ESP32 Wi-Fi STA Bağlantısı (LCD Ekranlı)
#127İleri

ESP32 Wi-Fi STA Bağlantısı (LCD Ekranlı)

Bu projede ESP32'yi Station (STA) modunda evdeki Wi-Fi ağına güvenli ve hata toleranslı şekilde bağlıyoruz. SSID/şifreyi secrets.h dosyasına ayırarak Git'e sızmasını önlüyor, otomatik yeniden bağlanma mekanizması kuruyor, RSSI sinyal seviyesini ve IP adresini I2C LCD ekranda gösteriyoruz. Dahili LED durum göstergesi olarak çalışır. Üretim seviyesi bir bağlantı yöneticisidir.

4.4(21)
34
ESP32 OTA Update — Kablosuz Firmware Yükleme (LCD Ekranlı)
#132İleri
Premium

ESP32 OTA Update — Kablosuz Firmware Yükleme (LCD Ekranlı)

Bu projede ESP32'ye USB kablosu olmadan, Wi-Fi üzerinden yeni firmware yüklemeyi öğreneceksin. ArduinoOTA kütüphanesi ile ESP32 ağda görünür hale gelir ve Arduino IDE'nin "Network port" sekmesinde bluegrays-ota olarak otomatik listelenir. İlk yükleme USB ile yapılır, sonrasında tüm güncellemeler kablosuz olur — saha cihazları için çok kritik bir özelliktir. I2C LCD ekranda WiFi durumu, IP, hostname, OTA yükleme yüzdesi ve hata mesajları hem Türkçe hem İngilizce gösterilir. Parola koruması, h

4.6(14)
22