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.

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
| Pino | Função | Observação |
|---|---|---|
| GND | GND comum | Sempre conectado |
| 5V | Saída de 5 V do USB | Geralmente até 500 mA, dependendo da porta do computador |
| 3V3 | Saída de 3,3 V | Do chip ou de um pequeno regulador; corrente limitada |
| TXD | Saída de dados (do computador para a placa) | Vai ao pino RX da placa de destino |
| RXD | Entrada de dados (da placa para o computador) | Vai ao pino TX da placa de destino |
| DTR | Linha de controle que vai para LOW quando a porta é aberta | Usada para reinicialização automática nos Arduinos |
| RTS / CTS | Linhas de controle de fluxo | RTS é 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.
| Conversor | Placa de destino | Descrição |
|---|---|---|
| GND | GND | GND comum, obrigatório |
| TXD | RX (RXI, U0R) | Cruzada: transmissor para receptor |
| RXD | TX (TXO, U0T) | Cruzada: receptor para transmissor |
| 5V ou 3V3 | VCC | Somente se a placa de destino não tiver outra fonte de alimentação |
| DTR | DTR / GRN / RST | Somente se você precisar de reinicialização automática |
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 destino | Jumper ou nível lógico | Alimentação |
|---|---|---|
| Arduino Pro Mini 5 V / 16 MHz | 5 V | Pelo pino 5V do conversor |
| Arduino Pro Mini 3,3 V / 8 MHz | 3,3 V | Pelo pino 3V3 ou por uma fonte própria |
| ESP-01 / ESP-01S | 3,3 V | Um regulador separado de 3,3 V (pelo menos 300 mA) |
| ESP32-CAM | 3,3 V | Do pino 5V do conversor ao pino 5V da placa |
| Raspberry Pi Pico (UART0) | 3,3 V | O 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ística | CH340 (G / C) | CP2102 | FT232RL |
|---|---|---|---|
| Fabricante | WCH | Silicon Labs | FTDI |
| Baud rate máximo | 2 Mbps | 1 Mbps (CP2102N: 3 Mbps) | 3 Mbps |
| Cristal | O CH340G precisa de um cristal externo de 12 MHz; o CH340C tem um integrado | Interno | Interno |
| Saída de 3,3 V | Depende do módulo; fraca na maioria | Sim, cerca de 100 mA incluindo o chip | Sim, até 50 mA |
| Nível lógico | 5 V ou 3,3 V conforme a alimentação | 3,3 V, entradas toleram 5 V | 5 V ou 3,3 V conforme VCCIO |
| DTR e RTS | Sim | Sim | Sim, com todas as linhas de modem |
| Driver | Geralmente automático no Windows; integrado ao macOS e ao Linux | Geralmente automático no Windows; integrado ao macOS e ao Linux | Automático no Windows; integrado ao macOS e ao Linux |
| Preço | Mais barato | Intermediário | Mais caro |
| Atenção | Não exija muita corrente do pino 3V3 do módulo | A ordem dos pinos do módulo varia entre fabricantes | Chips 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.

Instalação de drivers: Windows, macOS e Linux
| Sistema operacional | O que fazer | Nome da porta |
|---|---|---|
| Windows 10 / 11 | O Windows Update geralmente instala o driver sozinho; caso contrário, instale CH341SER para o CH340 ou o driver CP210x VCP para o CP2102 | COM3, COM4... em Gerenciador de Dispositivos > Portas (COM e LPT) |
| macOS | As 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 |
| Linux | Os 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?
- Remova todos os fios do conversor e conecte-o ao computador.
- Com um jumper, conecte entre si os pinos TXD e RXD do próprio conversor.
- Selecione a porta do conversor na Arduino IDE e abra o Monitor Serial; a velocidade não importa para este teste.
- 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.
- 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

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 TTL | Pro Mini | Observação |
|---|---|---|
| GND | GND (ou BLK) | GND comum |
| 5V ou 3V3 | VCC | 5V para a versão de 5 V / 16 MHz, 3V3 para a versão de 3,3 V / 8 MHz |
| TXD | RXI | Cruzada |
| RXD | TXO | Cruzada |
| DTR | GRN (DTR) | Reinicialização automática; sem isso, você precisa reiniciar manualmente |
- 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.
- Ajuste o jumper do conversor conforme a versão da placa e faça as conexões de acordo com a tabela.
- Na Arduino IDE, escolha Ferramentas > Placa > Arduino AVR Boards > Arduino Pro or Pro Mini.
- Em Ferramentas > Processador, escolha ATmega328P (5V, 16 MHz) ou ATmega328P (3.3V, 8 MHz) conforme sua placa.
- Selecione a porta do conversor e carregue o sketch de teste abaixo; com DTR conectado, você não precisa apertar nenhum botão.
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-01 | ESP32-CAM |
|---|---|---|
| GND | GND | GND |
| TXD | RX | U0R (GPIO 3) |
| RXD | TX | U0T (GPIO 1) |
| Alimentação | VCC e EN (CH_PD) por um regulador separado de 3,3 V | Do pino 5V do conversor ao pino 5V da placa |
| Modo de carregamento | GPIO 0 ao GND; encoste RST brevemente no GND | IO0 ao GND; pressione o botão RST |
| Placa na Arduino IDE | Generic ESP8266 Module | AI 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.
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.
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.
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
| Sintoma | Causa provável | Solução |
|---|---|---|
| O conversor não aparece na lista de portas | Cabo só de carga, driver ausente ou brltty no Linux | Use 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 errada | Conecte 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 estranhos | Baud rates diferentes ou frequência em MHz errada selecionada para o Pro Mini | Ajuste 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 / ESP32 | GPIO 0 não está em LOW na inicialização, ou TX-RX estão invertidos | Conecte GPIO 0 ao GND e depois reinicie; confira TX-RX |
| O ESP fica reiniciando | A saída de 3,3 V do conversor não suporta os picos de corrente | Use um regulador separado de 3,3 V e um capacitor de 100–470 µF |
| O Pro Mini reinicia toda vez que o Monitor Serial é aberto | DTR está conectado; reiniciar ao abrir a porta é normal | Se 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 conversor | Curto-circuito ou conflito entre duas fontes | Remova os fios; não conecte VCC se a placa de destino tiver fonte própria |
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.
Projetos para montar depois desta leitura
Ver todos os projetos
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

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

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.

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

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

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

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.

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.
Mais artigos
App BlueGrays
Monte este circuito passo a passo pelo celular
Esquema do circuito, código e lista de componentes em uma só tela. Mais de 200 projetos com Arduino, ESP32 e Pico prontos para montar.
Escaneie com seu celular
Aponte a câmera para o código para abrir a loja de aplicativos do seu celular.
ou abrir a loja

