Componentes · 12 min de leitura

Conversor serial USB para TTL: como usar CH340 e CP2102

Para que serve um conversor USB para TTL? Ligação cruzada TX-RX, jumper de 3,3 V/5 V, drivers, programação do Pro Mini, ESP-01 e ESP32-CAM e comparação entre CH340 e CP2102.

Um conversor USB para TTL é uma pequena placa que traduz a porta USB do computador para a linguagem serial (UART) usada pelos microcontroladores. Você precisa dele para carregar código em placas sem conector USB, como Arduino Pro Mini, ESP-01 e ESP32-CAM, ler as mensagens seriais enviadas por um módulo ou configurar módulos GPS e Bluetooth diretamente pelo computador. Na verdade, todo Arduino Uno e Nano já traz uma cópia desse circuito; o conversor o transforma em um módulo separado e portátil.

Neste guia, você vai conhecer os pinos do conversor, o erro mais comum de todos (a ligação TX-RX), o jumper que seleciona o nível lógico de 3,3 V ou 5 V e a instalação de drivers no Windows, macOS e Linux. Depois, vai aprender a programar um Arduino Pro Mini sem apertar nenhum botão, graças ao pino DTR, carregar código no ESP-01 e no ESP32-CAM, usar o conversor como um segundo monitor serial e entender as diferenças entre os três chips mais comuns: CH340, CP2102 e FT232.

Módulo conversor USB para TTL CP2102
Conversor USB para TTL CP2102: USB em uma ponta, GND, TXD, RXD, DTR e pinos de alimentação na outra. A forma mais prática de programar um Pro Mini, ESP-01 ou ESP32-CAM.

O que é um conversor USB para TTL e para que serve?

Seu computador e um microcontrolador falam linguagens diferentes. USB é um protocolo complexo baseado em pacotes, endereços e drivers. Já a UART de um microcontrolador usa apenas duas linhas: uma envia dados (TX), a outra os recebe (RX), e cada byte é formado por bits enviados um após o outro em uma velocidade combinada (baud). O chip do conversor aparece no computador como uma porta serial virtual (COM3 no Windows, /dev/cu.usbserial... no macOS, /dev/ttyUSB0 no Linux); cada byte escrito nessa porta sai pelo pino TX como um sinal UART, e cada byte que chega ao pino RX é repassado ao computador. O TTL no nome significa que os sinais variam entre 0 V e 5 V, ou entre 0 V e 3,3 V.

  • Programar placas sem USB: Arduino Pro Mini, LilyPad, ESP-01, ESP32-CAM e chips ATmega328P avulsos com bootloader.
  • Ler logs seriais: acompanhar mensagens de depuração em uma segunda janela enquanto o USB da própria placa está ocupado com outra tarefa.
  • Comunicar-se diretamente com módulos: enviar comandos AT a um ESP-01, ler sentenças NMEA de um módulo GPS, renomear um módulo Bluetooth.
  • Recuperar uma placa danificada: programar um Uno ou Nano cujo chip USB parou de funcionar pelos pinos D0 e D1.
  • Conectar-se aos consoles de outros dispositivos: os pinos do console serial de roteadores, placas de impressoras 3D ou computadores de placa única.

Pinos do conversor USB para TTL: GND, VCC, TXD, RXD, DTR e RTS

PinoFunçãoObservação
GNDGND comumSempre conectado
5VSaída de 5 V do USBGeralmente até 500 mA, dependendo da porta do computador
3V3Saída de 3,3 VDo chip ou de um pequeno regulador; corrente limitada
TXDSaída de dados (do computador para a placa)Vai ao pino RX da placa de destino
RXDEntrada de dados (da placa para o computador)Vai ao pino TX da placa de destino
DTRLinha de controle que vai para LOW quando a porta é abertaUsada para reinicialização automática nos Arduinos
RTS / CTSLinhas de controle de fluxoRTS é usada no circuito de carregamento automático das placas ESP; CTS fica desconectada na maioria dos projetos

Ligação cruzada TX-RX

O erro mais comum é ligar TX a TX. A regra é simples: a linha pela qual um dispositivo fala deve ir à linha pela qual o outro escuta. Assim, o pino TXD do conversor vai ao RX da placa de destino, e o RXD vai ao TX da placa. Algumas placas acrescentam a direção às etiquetas para evitar confusão: o Arduino Pro Mini traz RXI (entrada RX) e TXO (saída TX), e as placas FTDI no estilo SparkFun são identificadas de modo que encaixar as duas placas diretamente produza o cruzamento correto. Se você não confia nas etiquetas, tente inverter a ligação uma vez; trocar TX e RX não danifica nada, apenas impede a comunicação.

ConversorPlaca de destinoDescrição
GNDGNDGND comum, obrigatório
TXDRX (RXI, U0R)Cruzada: transmissor para receptor
RXDTX (TXO, U0T)Cruzada: receptor para transmissor
5V ou 3V3VCCSomente se a placa de destino não tiver outra fonte de alimentação
DTRDTR / GRN / RSTSomente se você precisar de reinicialização automática
Se a placa de destino já estiver alimentada pela própria fonte ou bateria, não conecte o pino VCC do conversor; GND, TXD e RXD são suficientes. Unir as saídas de duas fontes separadas pode fazer a corrente passar de uma para a outra e danificar o conversor ou a porta USB do computador. Já o GND deve estar sempre conectado; sem um GND comum, os níveis de sinal perdem a referência.

O jumper de 3,3 V / 5 V: como escolher o nível lógico

O Arduino Uno, o Nano e o Pro Mini de 5 V usam lógica de 5 V; ESP8266, ESP32 e Raspberry Pi Pico usam lógica de 3,3 V. Aplicar um sinal de 5 V ao pino RX de um ESP sobrecarrega os diodos de proteção da entrada e pode desgastar o pino com o tempo. Por isso, a maioria dos módulos CH340G tem um jumper de três pinos: ele seleciona a tensão de alimentação do chip, e o nível da saída TXD acompanha essa tensão. O CP2102 sempre funciona com lógica de 3,3 V, mas suas entradas toleram 5 V, então ele se comunica bem com placas de 3,3 V e de 5 V, pois um ATmega328P de 5 V já considera HIGH qualquer tensão acima de 3 V. Os módulos FT232RL também costumam ter um jumper que seleciona o nível de entrada/saída do chip (VCCIO).

Placa de destinoJumper ou nível lógicoAlimentação
Arduino Pro Mini 5 V / 16 MHz5 VPelo pino 5V do conversor
Arduino Pro Mini 3,3 V / 8 MHz3,3 VPelo pino 3V3 ou por uma fonte própria
ESP-01 / ESP-01S3,3 VUm regulador separado de 3,3 V (pelo menos 300 mA)
ESP32-CAM3,3 VDo pino 5V do conversor ao pino 5V da placa
Raspberry Pi Pico (UART0)3,3 VO Pico é alimentado pelo próprio USB; apenas GND, TX, RX

Se o conversor não tem jumper e você precisa conectar uma linha TX de 5 V a uma entrada de 3,3 V, um simples divisor de tensão resolve: com 1 kΩ entre a linha TX e o RX da placa de destino, e 2 kΩ entre esse RX e o GND, 5 V caem para cerca de 3,3 V. O cálculo completo está em divisor de tensão. No outro sentido, um TX de 3,3 V em uma entrada de 5 V geralmente funciona bem.

CH340 vs CP2102 vs FT232

CaracterísticaCH340 (G / C)CP2102FT232RL
FabricanteWCHSilicon LabsFTDI
Baud rate máximo2 Mbps1 Mbps (CP2102N: 3 Mbps)3 Mbps
CristalO CH340G precisa de um cristal externo de 12 MHz; o CH340C tem um integradoInternoInterno
Saída de 3,3 VDepende do módulo; fraca na maioriaSim, cerca de 100 mA incluindo o chipSim, até 50 mA
Nível lógico5 V ou 3,3 V conforme a alimentação3,3 V, entradas toleram 5 V5 V ou 3,3 V conforme VCCIO
DTR e RTSSimSimSim, com todas as linhas de modem
DriverGeralmente automático no Windows; integrado ao macOS e ao LinuxGeralmente automático no Windows; integrado ao macOS e ao LinuxAutomático no Windows; integrado ao macOS e ao Linux
PreçoMais baratoIntermediárioMais caro
AtençãoNão exija muita corrente do pino 3V3 do móduloA ordem dos pinos do módulo varia entre fabricantesChips falsificados são comuns; o driver oficial pode rejeitar alguns

Para projetos de hobby do dia a dia, praticamente não há diferença entre CH340 e CP2102; ambos funcionam perfeitamente a 115.200 baud e suportam com facilidade todas as velocidades usadas pela Arduino IDE. O oscilador interno e a saída de 3,3 V mais forte do CP2102 dão a ele uma pequena vantagem ao alimentar placas pequenas de 3,3 V, enquanto o CH340 é o mais barato e mais comum. O FT232RL é um chip confiável com opções detalhadas de configuração, mas uma grande parte dos módulos FT232 baratos do mercado usa chips falsificados. O CH9102 e o CH343 encontrados em placas ESP32 mais novas são membros mais rápidos da mesma família e são usados exatamente da mesma forma.

Conversor USB para TTL CH340
Conversor USB para TTL CH340: a opção mais acessível. Seu jumper seleciona o nível lógico de 5 V ou 3,3 V.

Instalação de drivers: Windows, macOS e Linux

Sistema operacionalO que fazerNome da porta
Windows 10 / 11O Windows Update geralmente instala o driver sozinho; caso contrário, instale CH341SER para o CH340 ou o driver CP210x VCP para o CP2102COM3, COM4... em Gerenciador de Dispositivos > Portas (COM e LPT)
macOSAs versões atuais têm drivers integrados para CH340, CP2102 e FT232; não instale drivers antigos do fabricante por cima/dev/cu.usbserial-..., ou /dev/cu.wchusbserial... ou /dev/cu.SLAB_USBtoUART com um driver do fabricante
LinuxOs drivers já estão no kernel; adicione seu usuário ao grupo dialout e, no Ubuntu, remova o pacote brltty se a porta do CH340 desaparecer/dev/ttyUSB0

Se, após conectar o conversor no Windows, aparecer USB2.0-Serial com um ponto de exclamação amarelo em Outros dispositivos no Gerenciador de Dispositivos, falta o driver do CH340; se aparecer CP2102 USB to UART Bridge Controller, falta o driver do CP2102. Depois de instalar o driver, desconecte o conversor, conecte-o novamente e veja Ferramentas > Porta na Arduino IDE: a nova porta que aparece nesse momento é a do conversor. Se nada aparecer, troque primeiro o cabo; cabos só de carga não têm fios de dados. A lista completa de problemas de porta, driver e permissão está em Erro ao carregar código no Arduino.

Teste de loopback: o conversor está funcionando?

  1. Remova todos os fios do conversor e conecte-o ao computador.
  2. Com um jumper, conecte entre si os pinos TXD e RXD do próprio conversor.
  3. Selecione a porta do conversor na Arduino IDE e abra o Monitor Serial; a velocidade não importa para este teste.
  4. Digite algo e envie. Se o texto voltar imediatamente, o chip, o driver e o cabo estão funcionando; o problema está na ligação ou na placa de destino.
  5. Se nada voltar, confira a porta, o driver e o cabo, e veja se os LEDs TX e RX do conversor piscam.

Programando um Arduino Pro Mini: reinicialização automática com DTR

Placa Arduino Pro Mini
Arduino Pro Mini: não há conector USB. A barra de seis pinos BLK, GND, VCC, RXI, TXO e GRN na borda curta serve para conectar um conversor USB para TTL.

Quando um código é carregado no Arduino, a placa é reiniciada primeiro; o bootloader, que executa por cerca de um segundo após a reinicialização, verifica se um novo programa está chegando pela porta serial. O Uno e o Nano fazem essa reinicialização sozinhos: há um capacitor de 100 nF entre a linha DTR do chip USB e o pino RESET do processador. No momento em que a IDE abre a porta, DTR passa de HIGH para LOW, o capacitor transmite essa queda repentina ao pino RESET como um pulso curto em LOW e a placa reinicia. No Pro Mini, o mesmo capacitor fica na placa e se conecta ao pino GRN (ou DTR) da barra de pinos; ao conectar ali o pino DTR do conversor, carregar código fica tão fácil quanto no Uno.

USB para TTLPro MiniObservação
GNDGND (ou BLK)GND comum
5V ou 3V3VCC5V para a versão de 5 V / 16 MHz, 3V3 para a versão de 3,3 V / 8 MHz
TXDRXICruzada
RXDTXOCruzada
DTRGRN (DTR)Reinicialização automática; sem isso, você precisa reiniciar manualmente
  1. Identifique a versão da placa pela marcação no verso ou no cristal: placas com cristal de 16 MHz são a versão de 5 V; as de 8 MHz são a versão de 3,3 V.
  2. Ajuste o jumper do conversor conforme a versão da placa e faça as conexões de acordo com a tabela.
  3. Na Arduino IDE, escolha Ferramentas > Placa > Arduino AVR Boards > Arduino Pro or Pro Mini.
  4. Em Ferramentas > Processador, escolha ATmega328P (5V, 16 MHz) ou ATmega328P (3.3V, 8 MHz) conforme sua placa.
  5. Selecione a porta do conversor e carregue o sketch de teste abaixo; com DTR conectado, você não precisa apertar nenhum botão.
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}

Quando o carregamento termina, o LED da placa pisca a cada meio segundo. Abra o Monitor Serial a 9.600 baud com Nova linha selecionada, digite algo e o texto volta. A linha F_CPU no código detecta uma armadilha pequena, mas importante: os bootloaders das duas versões do Pro Mini carregam a 57.600 baud, então o código é carregado mesmo com a opção Processador errada. Porém, se você escolher 16 MHz para uma placa de 8 MHz, tudo funciona na metade da velocidade, o LED muda uma vez por segundo e você só vê caracteres estranhos no Monitor Serial. Se o conversor não tem pino DTR, você pode sincronizar o carregamento manualmente: no momento em que a IDE termina de compilar e mostra Uploading... na saída, pressione e solte o botão de reset do Pro Mini.

Carregando código no ESP-01 e no ESP32-CAM

No ESP8266 e no ESP32, o bootloader é integrado ao chip e verifica o pino GPIO 0 na inicialização: se GPIO 0 estiver em LOW, ele entra no modo de download e espera pelo código; se estiver em HIGH, executa o programa na memória flash. As placas de desenvolvimento têm um circuito de carregamento automático que conecta as linhas DTR e RTS a EN e GPIO 0 por meio de dois transistores; esptool alterna essas linhas em sequência para colocar a placa no modo de download automaticamente. Um conversor USB para TTL simples não tem esse circuito, então você faz isso manualmente: conecte GPIO 0 ao GND, reinicie a placa, carregue o código, depois remova a conexão de GPIO 0 e reinicie novamente.

USB para TTL (jumper em 3,3 V)ESP-01ESP32-CAM
GNDGNDGND
TXDRXU0R (GPIO 3)
RXDTXU0T (GPIO 1)
AlimentaçãoVCC e EN (CH_PD) por um regulador separado de 3,3 VDo pino 5V do conversor ao pino 5V da placa
Modo de carregamentoGPIO 0 ao GND; encoste RST brevemente no GNDIO0 ao GND; pressione o botão RST
Placa na Arduino IDEGeneric ESP8266 ModuleAI Thinker ESP32-CAM

O ESP-01 apresenta picos de corrente acima de 300 mA ao se conectar ao Wi-Fi; o pino 3V3 do conversor não consegue fornecer essa corrente e o módulo fica reiniciando. Por isso, use um regulador AMS1117-3.3 alimentado pelo pino 5V. Todas as conexões e os comandos AT do ESP-01 estão em Módulo ESP-01, e o carregamento no ESP32-CAM passo a passo está em Como usar o ESP32-CAM. Se você quer um projeto que adicione um PIR ao ESP32-CAM e envie a foto para o celular, veja Fotos do ESP32-CAM no Telegram.

O ESP8266 envia suas mensagens de inicialização em uma velocidade incomum, 74.880 baud; ajuste o Monitor Serial para essa velocidade e você verá se o módulo iniciou no modo de download (boot mode:(1,x)) ou no modo normal (boot mode:(3,x)). O ESP32 escreve suas mensagens de inicialização a 115.200 baud; uma linha waiting for download significa que GPIO 0 ainda está conectado ao GND.

Lendo logs seriais: o USB para TTL como segunda porta serial

Uma das funções menos conhecidas e mais úteis do conversor é adicionar um segundo monitor serial a uma placa. Enquanto a porta USB da própria placa se comunica com um programa Python, o Plotter Serial ou outro dispositivo, você pode acompanhar mensagens detalhadas de depuração em uma porta separada. O ESP32 tem três UARTs de hardware; o código abaixo atribui UART2 aos GPIO 16 e 17 e envia uma linha de log ao conversor a cada segundo. Enviar a letra r pelo conversor zera o contador, então você pode ver que a comunicação funciona nos dois sentidos.

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}

Para fazer a ligação, ajuste o jumper do conversor para 3,3 V e conecte TXD ao GPIO 16, RXD ao GPIO 17 e GND ao GND. Depois, em vez de abrir uma segunda Arduino IDE, você pode usar PuTTY, screen no macOS e no Linux, ou um pequeno leitor escrito por você em Python; para a parte em Python, veja Comunicação serial entre Arduino e Python. No Raspberry Pi Pico, a mesma ideia exige poucas linhas de MicroPython: UART0 fica em GP0 (TX) e GP1 (RX), e o código envia um log e também devolve os bytes que recebe.

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)

O mesmo método permite ouvir o que um módulo está dizendo sem um Arduino no meio. Conecte um módulo GPS NEO-6M diretamente ao conversor e abra a porta a 9.600 baud para ver as sentenças NMEA chegando; abra a porta de um módulo Bluetooth HC-05 em modo AT a 38.400 baud e você poderá alterar seu nome e PIN. Tudo sobre as configurações de final de linha e baud rate do Monitor Serial está em Monitor Serial do Arduino.

Problemas comuns e soluções

SintomaCausa provávelSolução
O conversor não aparece na lista de portasCabo só de carga, driver ausente ou brltty no LinuxUse um cabo de dados, instale o driver e remova brltty
avrdude: stk500_getsync(): not in sync: resp=0x00 (mensagem de erro do avrdude: sem sincronização com a placa)TX-RX ligados sem cruzamento, DTR desconectado ou placa erradaConecte TX a RXI e RX a TXO; conecte DTR a GRN ou pressione reset quando Uploading... aparecer
O código foi carregado, mas o Monitor Serial mostra caracteres estranhosBaud rates diferentes ou frequência em MHz errada selecionada para o Pro MiniAjuste o Monitor Serial para a velocidade do código e escolha a versão real da placa no menu Processador
Failed to connect to ESP8266 / ESP32GPIO 0 não está em LOW na inicialização, ou TX-RX estão invertidosConecte GPIO 0 ao GND e depois reinicie; confira TX-RX
O ESP fica reiniciandoA saída de 3,3 V do conversor não suporta os picos de correnteUse um regulador separado de 3,3 V e um capacitor de 100–470 µF
O Pro Mini reinicia toda vez que o Monitor Serial é abertoDTR está conectado; reiniciar ao abrir a porta é normalSe você não quer a reinicialização, remova o fio DTR depois de carregar o código
O computador desativa a porta USB quando você conecta o conversorCurto-circuito ou conflito entre duas fontesRemova os fios; não conecte VCC se a placa de destino tiver fonte própria
Se você não tem um conversor, pode usar temporariamente um Arduino Uno no lugar dele: conecte o pino RESET do Uno ao GND ou carregue um sketch vazio nele. Nesse caso, a ligação é direta, sem cruzamento: o TX da placa de destino vai ao D1 (TX) do Uno e o RX vai ao D0 (RX), porque os dados usam o chip USB do Uno, não o processador. O Uno funciona com lógica de 5 V, então não se esqueça de um divisor de tensão na linha D0 para placas de 3,3 V.

O conversor USB para TTL é uma das menores ferramentas da sua gaveta e uma das que você mais vai usar: ele programa placas sem USB, permite que o computador se comunique com módulos e mostra, linha por linha, o que acontece dentro dos seus projetos. Se você lembrar de cruzar TX e RX, escolher o nível lógico correto e manter o GND comum, quase todos os problemas desaparecem. No app BlueGrays, você encontra projetos de comunicação serial entre dois Arduinos, controle pelo celular via Bluetooth e Wi-Fi com ESP32, com diagramas de fiação passo a passo e código pronto para usar.

Perguntas frequentes

Para que serve um conversor USB para TTL?

Ele converte a porta USB do computador na comunicação serial UART usada pelos microcontroladores. Assim, você pode carregar código em placas sem USB, como Arduino Pro Mini, ESP-01 e ESP32-CAM, ler suas mensagens seriais e configurar módulos como GPS ou Bluetooth diretamente pelo computador.

Qual é melhor, CH340 ou CP2102?

Em projetos de hobby, ambos funcionam sem problemas a 115.200 baud, e você não percebe diferença na prática. O CP2102 tem oscilador interno e uma saída de 3,3 V mais forte, e suas entradas toleram 5 V; o CH340 é mais barato e mais comum. As versões atuais do macOS e do Linux têm drivers integrados para ambos.

Como conectar TX e RX em um conversor USB para TTL?

A ligação é cruzada: o pino TXD do conversor vai ao RX da placa de destino, e o RXD vai ao TX da placa. O GND deve ser sempre compartilhado. Inverter as linhas não causa danos, mas nada será recebido; se você tiver dúvida, troque-as e tente novamente.

Como programar um Arduino Pro Mini com um conversor USB para TTL?

Conecte GND a GND, VCC a VCC, TXD a RXI, RXD a TXO e DTR ao pino GRN. Na Arduino IDE, escolha a placa Arduino Pro or Pro Mini e a opção ATmega328P (5V, 16 MHz) ou (3.3V, 8 MHz) correspondente à sua placa; depois, carregue normalmente. Sem DTR, pressione o botão de reset no momento em que Uploading... aparecer.

Um conversor USB para TTL deve ser de 3,3 V ou 5 V?

O nível lógico deve corresponder ao da placa de destino: 5 V para Uno, Nano e Pro Mini de 5 V; 3,3 V para ESP8266, ESP32 e Raspberry Pi Pico. Em módulos com jumper, você faz essa escolha pelo jumper. O CP2102 sempre fornece 3,3 V na saída e suas entradas toleram 5 V, então ele funciona com os dois tipos de placa.

É possível usar um Arduino Uno como conversor USB para TTL?

Sim. Se você conectar o pino RESET do Uno ao GND ou carregar um sketch vazio, seu chip USB fica acessível diretamente por D0 e D1. Nesse caso, a ligação é direta: o TX da placa de destino vai a D1 e o RX vai a D0. Como o Uno usa lógica de 5 V, adicione um divisor de tensão na linha D0 para placas de 3,3 V.

Ver todos os projetos
Medição de distância com HC-SR04 (Monitor Serial)
#27Iniciante

Medição de distância com HC-SR04 (Monitor Serial)

O sensor HC-SR04 funciona como um morcego que se orienta no escuro: emite um som que você não consegue ouvir, escuta o eco e mede a distância até o objeto à sua frente. O Arduino escreve essa distânci

4.6(46)
71
Temperatura e umidade com DHT11
#55Intermediário

Temperatura e umidade com DHT11

Qual é a temperatura do seu quarto? O ar está úmido ou seco? O sensor DHT11 mede a temperatura e a umidade, e o Arduino mostra os valores em um display LCD de duas linhas, atualizando a cada poucos se

4.7(47)
73
LED piscando com ESP32
#103Iniciante

LED piscando com ESP32

Ensina o uso básico de uma saída GPIO no ESP32. Fazemos um LED piscar ligando e desligando um pino digital. É a versão para ESP32 do clássico projeto blink do Arduino UNO: os comandos básicos de blink no ambiente Arduino são os mesmos, mas a disposição dos pinos e os níveis de 3,3 V dos GPIOs do ESP32 diferem dos do Arduino UNO.

4.7(37)
99
Comunicação unidirecional entre 2 Arduinos
#57Intermediário
Premium

Comunicação unidirecional entre 2 Arduinos

Faça dois Arduinos conversarem por um único fio: ao pressionar o botão de um, o LED do outro acende; ao pressionar de novo, ele apaga. A placa transmissora informa que o botão foi pressionado com uma

4.4(37)
50
Comunicação bidirecional entre 2 Arduinos
#58Intermediário
Premium

Comunicação bidirecional entre 2 Arduinos

Dois Arduinos se conectam por fios e conversam entre si: ao pressionar o botão de um, a luz do outro acende; ao pressionar novamente, ela apaga. As duas placas executam o mesmo programa, então ambas e

4.5(20)
26
Controle de LED pelo celular via Bluetooth
#34Iniciante
Premium

Controle de LED pelo celular via Bluetooth

Um pequeno ensaio para acender e apagar as luzes do seu quarto pelo celular. O módulo Bluetooth repassa ao Arduino as letras enviadas pelo celular; uma letra acende o LED vermelho, outra acende o verd

4.8(68)
89
Conexão Wi-Fi STA com ESP32 e display LCD
#127Avançado

Conexão Wi-Fi STA com ESP32 e display LCD

Neste projeto, conectamos o ESP32 à rede Wi-Fi de casa no modo estação (STA), de forma segura e tolerante a falhas. Guardamos o SSID e a senha em um arquivo secrets.h separado para evitar que sejam expostos no Git, configuramos um mecanismo de reconexão automática e exibimos o nível de sinal RSSI e o endereço IP em um display LCD I2C. O LED integrado funciona como indicador de status. É um gerenciador de conexão pronto para uso em produção.

4.4(21)
34
Atualização OTA no ESP32 — firmware sem fio (com display LCD)
#132Avançado
Premium

Atualização OTA no ESP32 — firmware sem fio (com display LCD)

Neste projeto, você aprende a carregar um novo firmware no ESP32 por Wi-Fi, sem cabo USB. Com a biblioteca ArduinoOTA, o ESP32 fica visível na rede e aparece automaticamente como bluegrays-ota na aba "Porta de rede" do Arduino IDE. A primeira carga é feita por USB, e todas as atualizações seguintes são sem fio — um recurso essencial para dispositivos em campo. O LCD I2C mostra o estado do Wi-Fi, o IP, o nome do host, a porcentagem de envio por OTA e as mensagens de erro em turco e inglês.

4.6(14)
22