Компоненты · 10 мин чтения

Последовательный преобразователь USB-TTL: использование CH340 и CP2102

Для чего нужен преобразователь USB-TTL? Перекрёстное подключение TX-RX, перемычка 3,3 V/5 V, драйверы, программирование Pro Mini, ESP-01 и ESP32-CAM, сравнение CH340 и CP2102.

Преобразователь USB-TTL — небольшая плата, которая переводит USB-порт компьютера на язык последовательной связи (UART), понятный микроконтроллерам. Он нужен для загрузки кода на платы без USB-разъёма, такие как Arduino Pro Mini, ESP-01 и ESP32-CAM, чтения последовательных сообщений модуля или настройки GPS- и Bluetooth-модулей прямо с компьютера. По сути, на каждой Arduino Uno и Nano уже есть такая схема; преобразователь делает её отдельным переносным модулем.

В этом руководстве ты познакомишься с пинами преобразователя, самой распространённой ошибкой (подключением TX-RX), перемычкой выбора логического уровня 3,3 V или 5 V и установкой драйверов в Windows, macOS и Linux. Затем узнаешь, как программировать Arduino Pro Mini без нажатия кнопок благодаря пину DTR, загружать код на ESP-01 и ESP32-CAM, использовать преобразователь как второй монитор порта и чем отличаются три самые распространённые микросхемы: CH340, CP2102 и FT232.

Модуль преобразователя USB-TTL CP2102
Преобразователь USB-TTL CP2102: с одного конца USB, с другого — пины GND, TXD, RXD, DTR и питания. Удобнейший способ программировать Pro Mini, ESP-01 или ESP32-CAM.

Что такое преобразователь USB-TTL и для чего он нужен?

Компьютер и микроконтроллер говорят на разных языках. USB — сложный протокол, построенный на пакетах, адресах и драйверах. А UART микроконтроллера использует всего две линии: одна передаёт данные (TX), другая принимает (RX), и каждый байт состоит из битов, отправляемых друг за другом с согласованной скоростью в бодах. Микросхема преобразователя отображается на компьютере как виртуальный последовательный порт (COM3 в Windows, /dev/cu.usbserial... в macOS, /dev/ttyUSB0 в Linux); каждый байт, записанный в этот порт, выходит через пин TX в виде сигнала UART, а каждый байт, поступивший на RX, передаётся компьютеру. TTL в названии означает, что сигналы меняются между 0 V и 5 V либо между 0 V и 3,3 V.

  • Программирование плат без USB: Arduino Pro Mini, LilyPad, ESP-01, ESP32-CAM и отдельные микросхемы ATmega328P с загрузчиком.
  • Чтение последовательных логов: просмотр отладочных сообщений во втором окне, пока собственный USB платы занят чем-то другим.
  • Прямое общение с модулями: отправка AT-команд в ESP-01, чтение предложений NMEA GPS-модуля, изменение имени Bluetooth-модуля.
  • Спасение повреждённой платы: программирование Uno или Nano с вышедшей из строя USB-микросхемой через пины D0 и D1.
  • Подключение к консолям других устройств: пины последовательной консоли маршрутизаторов, плат 3D-принтеров или одноплатных компьютеров.

Пины USB-TTL: GND, VCC, TXD, RXD, DTR и RTS

ПинФункцияПримечание
GNDОбщая земляПодключается всегда
5VВыход 5 V от USBОбычно до 500 mA, зависит от порта компьютера
3V3Выход 3,3 VОт микросхемы или небольшого стабилизатора; ток ограничен
TXDВыход данных (от компьютера к плате)Подключается к пину RX целевой платы
RXDВход данных (от платы к компьютеру)Подключается к пину TX целевой платы
DTRУправляющая линия, переходящая в LOW при открытии портаИспользуется для автосброса Arduino
RTS / CTSЛинии управления потокомRTS используется в схеме автоматической загрузки плат ESP; CTS в большинстве проектов не подключается

Перекрёстное подключение TX-RX

Самая частая ошибка — соединить TX с TX. Правило простое: линия, по которой одно устройство говорит, должна идти к линии, по которой другое слушает. Поэтому пин TXD преобразователя подключается к пину RX целевой платы, а RXD — к её пину TX. Чтобы избежать путаницы, на некоторых платах в обозначение добавляют направление: на Arduino Pro Mini написано RXI (RX in, вход) и TXO (TX out, выход), а платы FTDI типа SparkFun подписаны так, что прямое соединение двух плат обеспечивает правильное перекрёстное подключение. Если обозначениям нельзя доверять, попробуй один раз поменять линии местами; перестановка TX и RX ничего не повреждает, просто связь не работает.

ПреобразовательЦелевая платаОписание
GNDGNDОбщая земля, обязательна
TXDRX (RXI, U0R)Перекрёстно: передатчик к приёмнику
RXDTX (TXO, U0T)Перекрёстно: приёмник к передатчику
5V или 3V3VCCТолько если у целевой платы нет другого источника питания
DTRDTR / GRN / RSTТолько если нужен автосброс
Если целевая плата уже питается от собственного блока питания или батареи, не подключай пин VCC преобразователя; достаточно GND, TXD и RXD. Соединение выходов двух отдельных источников питания может вызвать перетекание тока из одного в другой и повредить преобразователь или USB-порт компьютера. А вот GND нужно подключать всегда: без общей земли уровни сигналов теряют смысл.

Перемычка 3,3 V / 5 V: как выбрать логический уровень

Arduino Uno, Nano и Pro Mini на 5 V используют логику 5 V; ESP8266, ESP32 и Raspberry Pi Pico — логику 3,3 V. Сигнал 5 V на пине RX платы ESP нагружает защитные диоды входа и со временем может вывести пин из строя. Поэтому на большинстве модулей CH340G есть трёхконтактная перемычка: она выбирает напряжение питания микросхемы, а уровень выхода TXD следует за этим напряжением. CP2102 всегда работает с логикой 3,3 V, но его входы допускают 5 V, поэтому он без проблем общается и с платами на 3,3 V, и с платами на 5 V: ATmega328P с питанием 5 V уже воспринимает всё выше 3 V как HIGH. На модулях FT232RL тоже часто есть перемычка выбора уровня ввода-вывода микросхемы (VCCIO).

Целевая платаПеремычка или логический уровеньПитание
Arduino Pro Mini 5 V / 16 MHz5 VОт пина 5V преобразователя
Arduino Pro Mini 3,3 V / 8 MHz3,3 VОт пина 3V3 или собственного источника питания
ESP-01 / ESP-01S3,3 VОтдельный стабилизатор 3,3 V (не менее 300 mA)
ESP32-CAM3,3 VОт пина 5V преобразователя к пину 5V платы
Raspberry Pi Pico (UART0)3,3 VPico питается от собственного USB; подключаются только GND, TX, RX

Если на преобразователе нет перемычки, а нужно подключить линию TX с уровнем 5 V ко входу 3,3 V, поможет простой делитель напряжения: при резисторе 1 kΩ между линией TX и RX целевой платы и 2 kΩ между её RX и GND напряжение 5 V снижается примерно до 3,3 V. Полный расчёт есть в статье «Делитель напряжения». В обратном направлении — TX с уровнем 3,3 V на вход 5 V — обычно всё работает нормально.

Сравнение CH340, CP2102 и FT232

ХарактеристикаCH340 (G / C)CP2102FT232RL
ПроизводительWCHSilicon LabsFTDI
Максимальная скорость2 Мбит/с1 Мбит/с (CP2102N: 3 Мбит/с)3 Мбит/с
Кварцевый резонаторCH340G нужен внешний кварцевый резонатор 12 MHz; у CH340C он встроенВстроенныйВстроенный
Выход 3,3 VЗависит от модуля, у большинства слабыйЕсть, около 100 mA с учётом самой микросхемыЕсть, до 50 mA
Логический уровень5 V или 3,3 V в зависимости от питания3,3 V, входы допускают 5 V5 V или 3,3 V в зависимости от VCCIO
DTR и RTSЕстьЕстьЕсть, со всеми модемными линиями
ДрайверВ Windows обычно устанавливается автоматически; встроен в macOS и LinuxВ Windows обычно устанавливается автоматически; встроен в macOS и LinuxВ Windows устанавливается автоматически; встроен в macOS и Linux
ЦенаСамая низкаяСредняяСамая высокая
На что обратить вниманиеНе перегружай пин 3V3 модуляПорядок пинов модуля различается у разных производителейЧасто встречаются поддельные микросхемы; официальный драйвер может отвергать некоторые из них

Для повседневных любительских задач между CH340 и CP2102 практически нет разницы: оба безупречно работают на 115200 бод и легко справляются со всеми скоростями, которые использует Arduino IDE. Встроенный генератор CP2102 и более мощный выход 3,3 V дают ему небольшое преимущество при питании маленьких плат на 3,3 V, а CH340 — самый дешёвый и распространённый. FT232RL — надёжная микросхема с подробными возможностями настройки, но значительная часть дешёвых модулей FT232 на рынке содержит подделки. CH9102 и CH343, встречающиеся на новых платах ESP32, — более быстрые представители того же семейства, и используются они точно так же.

Преобразователь USB-TTL CH340
Преобразователь USB-TTL CH340: самый доступный вариант. Перемычка выбирает логический уровень 5 V или 3,3 V.

Установка драйверов: Windows, macOS и Linux

Операционная системаЧто делатьИмя порта
Windows 10 / 11Центр обновления Windows обычно устанавливает драйвер автоматически; если нет, установи CH341SER для CH340 или драйвер CP210x VCP для CP2102COM3, COM4... в Диспетчере устройств › «Порты (COM и LPT)»
macOSВ актуальных версиях есть встроенные драйверы для CH340, CP2102 и FT232; не устанавливай поверх них старые драйверы производителей/dev/cu.usbserial-... либо /dev/cu.wchusbserial... или /dev/cu.SLAB_USBtoUART с драйвером производителя
LinuxДрайверы уже есть в ядре; добавь своего пользователя в группу dialout, а в Ubuntu удали пакет brltty, если порт CH340 исчезает/dev/ttyUSB0

Если после подключения преобразователя в Windows в Диспетчере устройств в разделе «Другие устройства» (Other devices) появляется USB2.0-Serial с жёлтым восклицательным знаком, отсутствует драйвер CH340; если видишь CP2102 USB to UART Bridge Controller, отсутствует драйвер CP2102. После установки драйвера отключи преобразователь, подключи снова и открой «Инструменты › Порт» (Tools › Port) в Arduino IDE: новый порт, который появится в этот момент, принадлежит преобразователю. Если не появляется вообще ничего, сначала замени кабель: в кабелях только для зарядки нет проводов данных. Полный список проблем с портами, драйверами и правами доступа есть в статье «Код не загружается на Arduino».

Петлевой тест: работает ли преобразователь?

  1. Отсоедини от преобразователя все провода и подключи его к компьютеру.
  2. Проводом-перемычкой соедини пины TXD и RXD самого преобразователя.
  3. Выбери порт преобразователя в Arduino IDE и открой монитор порта (Serial Monitor); скорость для этого теста не важна.
  4. Введи что-нибудь и отправь. Если текст сразу возвращается, микросхема, драйвер и кабель исправны; проблема в подключении или целевой плате.
  5. Если ничего не возвращается, проверь порт, драйвер и кабель и посмотри, мигают ли светодиоды TX и RX на преобразователе.

Программирование Arduino Pro Mini: автосброс по DTR

Плата Arduino Pro Mini
Arduino Pro Mini: USB-разъёма нет. Шестиконтактная гребёнка BLK, GND, VCC, RXI, TXO и GRN на короткой стороне предназначена для преобразователя USB-TTL.

Перед загрузкой кода на Arduino плата сбрасывается; загрузчик, работающий примерно секунду после сброса, проверяет, поступает ли новая программа через последовательный порт. Uno и Nano выполняют этот сброс автоматически: между линией DTR USB-микросхемы и пином RESET процессора стоит конденсатор 100 nF. Когда IDE открывает порт, DTR переходит из HIGH в LOW, конденсатор передаёт этот резкий спад на RESET в виде короткого импульса LOW, и плата сбрасывается. На Pro Mini такой же конденсатор находится на плате и соединён с пином GRN (или DTR) на гребёнке; если подключить туда DTR преобразователя, загружать код станет так же просто, как на Uno.

USB-TTLPro MiniПримечание
GNDGND (или BLK)Общая земля
5V или 3V3VCC5V для версии 5 V / 16 MHz, 3V3 для версии 3,3 V / 8 MHz
TXDRXIПерекрёстно
RXDTXOПерекрёстно
DTRGRN (DTR)Автосброс; без него придётся сбрасывать вручную
  1. Определи версию платы по маркировке с обратной стороны или на кварцевом резонаторе: платы с резонатором 16 MHz — версия на 5 V, с резонатором 8 MHz — на 3,3 V.
  2. Установи перемычку преобразователя в соответствии с версией платы и соедини всё по таблице.
  3. В Arduino IDE выбери «Инструменты › Плата › Arduino AVR Boards › Arduino Pro or Pro Mini» (Tools › Board).
  4. В меню «Инструменты › Процессор» (Tools › Processor) выбери ATmega328P (5V, 16 MHz) или ATmega328P (3.3V, 8 MHz) в соответствии со своей платой.
  5. Выбери порт преобразователя и загрузи тестовый скетч ниже; при подключённом DTR нажимать кнопки не нужно.
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}

Когда загрузка завершится, светодиод на плате будет мигать каждые полсекунды. Открой монитор порта на 9600 бод, выбери New Line («Новая строка»), введи что-нибудь — текст вернётся обратно. Строка F_CPU в коде помогает обнаружить небольшую, но важную ловушку: загрузчики обеих версий Pro Mini принимают код на 57600 бод, поэтому он загружается даже при неверном выборе в меню «Процессор». Но если для платы на 8 MHz выбрать 16 MHz, всё будет работать вдвое медленнее, светодиод будет менять состояние раз в секунду, а монитор порта покажет только мусорные символы. Если у преобразователя нет пина DTR, можно вручную выбрать момент сброса: как только IDE завершит компиляцию и покажет Uploading... (загрузка) в окне вывода, нажми и отпусти кнопку сброса Pro Mini.

Загрузка кода на ESP-01 и ESP32-CAM

В ESP8266 и ESP32 загрузчик встроен в микросхему и при включении проверяет пин GPIO 0: если на GPIO 0 уровень LOW, он переходит в режим загрузки и ждёт код, а если HIGH — запускает программу из флеш-памяти. На отладочных платах есть схема автоматической загрузки, соединяющая линии DTR и RTS с EN и GPIO 0 через два транзистора; esptool последовательно переключает эти линии, автоматически переводя плату в режим загрузки. У обычного преобразователя USB-TTL такой схемы нет, поэтому всё делается вручную: подключи GPIO 0 к GND, сбрось плату, загрузи код, затем отсоедини GPIO 0 и снова выполни сброс.

USB-TTL (перемычка на 3,3 V)ESP-01ESP32-CAM
GNDGNDGND
TXDRXU0R (GPIO 3)
RXDTXU0T (GPIO 1)
ПитаниеVCC и EN (CH_PD) от отдельного стабилизатора 3,3 VОт пина 5V преобразователя к пину 5V платы
Режим загрузкиGPIO 0 к GND, кратковременно соедини RST с GNDIO0 к GND, нажми кнопку RST
Плата в Arduino IDEGeneric ESP8266 ModuleAI Thinker ESP32-CAM

При подключении к Wi-Fi пиковый ток ESP-01 превышает 300 mA; пин 3V3 преобразователя не может его обеспечить, и модуль постоянно сбрасывается. Поэтому используй стабилизатор AMS1117-3.3 с питанием от пина 5V. Все подключения ESP-01 и AT-команды описаны в статье «Модуль ESP-01», а пошаговая загрузка на ESP32-CAM — в статье «Как использовать ESP32-CAM». Если нужен проект с PIR-датчиком на ESP32-CAM и отправкой фото на телефон, загляни в статью «Фото с ESP32-CAM в Telegram».

ESP8266 отправляет сообщения при старте на необычной скорости — 74880 бод; установи эту скорость в мониторе порта, и ты увидишь, запустился ли модуль в режиме загрузки (boot mode:(1,x)) или в обычном режиме (boot mode:(3,x)). ESP32 выводит сообщения при старте на 115200 бод; строка waiting for download означает, что GPIO 0 всё ещё подключён к GND.

Чтение последовательных логов: USB-TTL как второй последовательный порт

Одна из наименее известных, но самых полезных задач преобразователя — добавить плате второй монитор порта. Пока собственный USB-порт платы общается с программой на Python, «Плоттером по последовательному соединению» (Serial Plotter) или другим устройством, через отдельный порт можно наблюдать подробные отладочные сообщения. У ESP32 три аппаратных UART; код ниже назначает UART2 на GPIO 16 и 17 и каждую секунду отправляет преобразователю строку лога. Отправка буквы r с преобразователя сбрасывает счётчик, поэтому ты можешь убедиться, что связь работает в обоих направлениях.

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}

Для подключения установи перемычку преобразователя на 3,3 V и соедини TXD с GPIO 16, RXD с GPIO 17, а GND с GND. Затем вместо второго экземпляра Arduino IDE можно использовать PuTTY, screen в macOS и Linux или небольшую программу чтения на Python; о стороне Python читай в статье «Последовательная связь Arduino и Python». На Raspberry Pi Pico та же идея реализуется несколькими строками MicroPython: UART0 находится на GP0 (TX) и GP1 (RX), а код и отправляет лог, и возвращает полученные байты.

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)

Тем же способом можно слушать сообщения модуля вообще без Arduino между ним и компьютером. Подключи GPS-модуль NEO-6M напрямую к преобразователю и открой порт на 9600 бод — увидишь поток предложений NMEA; открой модуль HC-05 в режиме AT на 38400 бод, и сможешь изменить его имя и PIN-код. Всё о настройках конца строки и скорости в бодах в мониторе порта есть в статье «Монитор порта Arduino».

Частые проблемы и их решения

СимптомВероятная причинаРешение
Преобразователя нет в списке портовКабель только для зарядки, отсутствующий драйвер или brltty в LinuxИспользуй кабель с передачей данных, установи драйвер, удали brltty
avrdude: stk500_getsync(): not in sync: resp=0x00 (сообщение об ошибке avrdude: нет синхронизации с платой)TX-RX подключены напрямую, DTR не подключён или выбрана неверная платаСоедини TX с RXI, а RX с TXO; подключи DTR к GRN или нажми сброс при появлении Uploading...
Код загружен, но монитор порта показывает мусорные символыНесовпадение скорости в бодах или неверно выбранная частота в MHz для Pro MiniУстанови в мониторе порта скорость из кода, в меню «Процессор» выбери фактическую версию платы
Failed to connect to ESP8266 / ESP32На GPIO 0 при старте нет LOW или перепутаны TX-RXПодключи GPIO 0 к GND, затем выполни сброс; проверь TX-RX
ESP постоянно перезапускаетсяВыход 3,3 V преобразователя не обеспечивает пиковый токИспользуй отдельный стабилизатор 3,3 V и конденсатор 100–470 µF
Pro Mini сбрасывается при каждом открытии монитора портаDTR подключён; сброс при открытии порта — нормальное поведениеЕсли сброс не нужен, после загрузки отсоедини провод DTR
При подключении компьютер отключает USB-портКороткое замыкание или конфликт двух источников питанияОтсоедини провода; не подключай VCC, если у целевой платы собственное питание
Если преобразователя нет, временно можно использовать вместо него Arduino Uno: подключи пин RESET платы Uno к GND или загрузи в неё пустой скетч. В этом случае подключение прямое, а не перекрёстное: TX целевой платы идёт к D1 (TX) платы Uno, а RX — к D0 (RX), потому что данные проходят через USB-микросхему Uno, а не через её процессор. Uno работает с логикой 5 V, поэтому для плат на 3,3 V не забудь поставить делитель напряжения на линию D0.

Преобразователь USB-TTL — один из самых маленьких инструментов в твоём ящике и один из тех, которые пригодятся чаще всего: он программирует платы без USB, позволяет компьютеру общаться с модулями и построчно показывает, что происходит внутри твоих проектов. Если не забывать подключать TX и RX перекрёстно, выбирать правильный логический уровень и объединять GND, почти все проблемы исчезают. В приложении BlueGrays ты найдёшь проекты последовательной связи двух Arduino, управления с телефона по Bluetooth и Wi-Fi на ESP32 — с пошаговыми схемами подключения и готовым кодом.

Частые вопросы

Для чего нужен преобразователь USB-TTL?

Он преобразует USB-порт компьютера в последовательную связь UART, которую используют микроконтроллеры. Благодаря этому можно загружать код на платы без USB, такие как Arduino Pro Mini, ESP-01 и ESP32-CAM, читать их последовательные сообщения и настраивать GPS- или Bluetooth-модули прямо с компьютера.

Что лучше: CH340 или CP2102?

В любительских проектах оба без проблем работают на 115200 бод, и на практике ты не заметишь разницы. У CP2102 встроенный генератор, более мощный выход 3,3 V и входы, допускающие 5 V; CH340 дешевле и распространённее. В актуальных версиях macOS и Linux драйверы для обоих встроены.

Как подключить TX и RX преобразователя USB-TTL?

Перекрёстно: пин TXD преобразователя идёт к RX целевой платы, а RXD — к её TX. Земля GND всегда должна быть общей. Перестановка линий не причиняет вреда, но данные не принимаются; если есть сомнения, поменяй их местами и попробуй ещё раз.

Как программировать Arduino Pro Mini через преобразователь USB-TTL?

Подключи GND к GND, VCC к VCC, TXD к RXI, RXD к TXO, а DTR к пину GRN. В Arduino IDE выбери плату Arduino Pro or Pro Mini и соответствующий твоей плате вариант ATmega328P (5V, 16 MHz) или (3.3V, 8 MHz), затем загрузи код как обычно. Если DTR нет, нажми кнопку сброса в момент появления Uploading...

Преобразователь USB-TTL должен быть на 3,3 V или 5 V?

Логический уровень должен соответствовать целевой плате: 5 V для Uno, Nano и Pro Mini на 5 V; 3,3 V для ESP8266, ESP32 и Raspberry Pi Pico. На модулях с перемычкой выбор делается ею. CP2102 всегда выдаёт 3,3 V, а его входы допускают 5 V, поэтому он работает с обоими типами плат.

Можно ли использовать Arduino Uno как преобразователь USB-TTL?

Да. Если подключить пин RESET платы Uno к GND или загрузить пустой скетч, её USB-микросхема будет напрямую доступна через D0 и D1. В этом случае подключение прямое: TX целевой платы идёт к D1, а RX — к D0. Поскольку Uno использует логику 5 V, для плат на 3,3 V добавь делитель напряжения на линию D0.

Все проекты
Измерение расстояния HC-SR04 (вывод в порт)
#27Новичок

Измерение расстояния HC-SR04 (вывод в порт)

Датчик HC-SR04 работает совсем как летучая мышь, которая находит дорогу в темноте: он посылает звук, которого ты не слышишь, слушает эхо и измеряет, насколько далеко предмет перед ним. Arduino каждые

4.6(46)
71
Температура и влажность с DHT11
#55Средний

Температура и влажность с DHT11

Насколько тепло в твоей комнате и влажный ли воздух или сухой? Датчик DHT11 измеряет температуру и влажность, а Arduino выводит значения на двухстрочный LCD-экран и обновляет их каждые пару секунд. Ес

4.7(47)
73
Мигающий светодиод на ESP32
#103Новичок

Мигающий светодиод на ESP32

Учит базовой работе с выходами GPIO на ESP32. Эффект мигания получается включением и выключением светодиода с цифрового пина. Это ESP32-версия классического проекта мигания на Arduino UNO; базовые команды мигания в среде Arduino те же, но расположение пинов ESP32 и уровни GPIO 3,3 V отличаются от Arduino UNO.

4.7(37)
99
Односторонняя связь между двумя Arduino
#57Средний
Premium

Односторонняя связь между двумя Arduino

Ты заставляешь две Arduino разговаривать по одному проводу: нажми кнопку на одной, и на другой загорится светодиод, нажми снова — погаснет. Плата-передатчик сообщает о нажатии кнопки коротким сообщени

4.4(37)
50
Двусторонняя связь между двумя Arduino
#58Средний
Premium

Двусторонняя связь между двумя Arduino

Две Arduino соединены проводами и разговаривают друг с другом: нажми кнопку на одной, и на другой загорится свет, нажми снова — погаснет. На обеих платах одна и та же программа, поэтому каждая и отпра

4.5(20)
26
Управление светодиодом с телефона по Bluetooth
#34Новичок
Premium

Управление светодиодом с телефона по Bluetooth

Небольшая репетиция того, как включать и выключать свет в комнате с телефона. Bluetooth-модуль передаёт в Arduino буквы, отправленные с телефона; одна буква включает красный светодиод, другая — зелёны

4.8(68)
89
Подключение ESP32 к Wi-Fi в режиме STA (с экраном LCD)
#127Продвинутый

Подключение ESP32 к Wi-Fi в режиме STA (с экраном LCD)

В этом проекте ESP32 надёжно и устойчиво к сбоям подключается к домашней сети Wi-Fi в режиме станции (STA). SSID и пароль хранятся в отдельном файле secrets.h, чтобы не утекли в Git; настроено автоматическое переподключение, а уровень сигнала RSSI и IP-адрес выводятся на I2C LCD-экран. Встроенный светодиод служит индикатором состояния. Это менеджер подключения уровня реальных устройств.

4.4(21)
34
Обновление ESP32 по воздуху (OTA): беспроводная установка прошивки (с экраном LCD)
#132Продвинутый
Premium

Обновление ESP32 по воздуху (OTA): беспроводная установка прошивки (с экраном LCD)

В этом проекте ты узнаешь, как загружать новую прошивку в ESP32 по Wi-Fi без USB-кабеля. С библиотекой ArduinoOTA ESP32 становится видна в сети и автоматически появляется как bluegrays-ota на вкладке «Сетевой порт» в Arduino IDE. Первая загрузка выполняется по USB, а все следующие обновления — без проводов: это важно для устройств в эксплуатации. I2C LCD показывает состояние Wi-Fi, IP-адрес, имя хоста, процент загрузки OTA и сообщения об ошибках.

4.6(14)
22