
A maioria dos tutoriais de Arduino vai direto para o código. Mas as peças ao redor do microcontrolador são analógicas: o resistor que mantém um LED vivo, o divisor que transforma um sensor em tensão, o transistor que aciona um motor, o regulador que produz 5 V a partir de um adaptador de parede. Quando uma dessas peças está errada, nenhuma quantidade de código conserta.
O Velxio simula essa metade também. Ele executa o ngspice, o simulador de circuitos SPICE de código aberto, compilado para WebAssembly, então resistores, capacitores, diodos, transistores, amp-ops e reguladores se comportam como suas contrapartes reais no seu navegador. Você pode medi-los com um voltímetro, um amperímetro e um osciloscópio, e alterar qualquer valor enquanto o circuito roda.
Este artigo percorre sete projetos. Os cinco primeiros não têm microcontrolador nenhum, apenas componentes. Os dois últimos misturam circuitos analógicos com um Arduino e um ESP32. Todo projeto está na galeria de exemplos, e todo número abaixo foi lido do simulador e conferido com a fórmula que o explica.
Antes de começar: os três instrumentos
- Circuitos sem placa rodam assim que abrem. Clique com o botão direito em qualquer peça para abrir seu inspetor e alterar seu valor ali: a resistência de um resistor, a capacitância de um capacitor, o nível de luz ou a temperatura de um sensor. O circuito é resolvido de novo com o novo valor.
- Voltímetro e amperímetro são peças como qualquer outra: o voltímetro vai em paralelo com o que você quer medir, o amperímetro em série. Em um circuito CC eles mostram um número. Em um circuito CA eles mostram o valor RMS, o pico e a média CC, medidos depois que o circuito se estabiliza.
- O osciloscópio mostra como uma tensão muda ao longo do tempo. Clique com o botão direito em um fio e escolha Add to scope; cada canal se ajusta automaticamente para caber o sinal. Com uma placa na tela, pare a simulação primeiro: enquanto um sketch roda, a tela reserva os cliques para as peças.
Uma coisa a saber: para circuitos com fontes CA, o Velxio resolve uma janela curta de tempo a partir do momento em que a energia é ligada (alguns ciclos do sinal) e mostra o traço do osciloscópio dessa janela. Ele repete a resolução conforme você muda as coisas, então a imagem fica atualizada, mas não é uma gravação contínua.
1. Um LED e um resistor: a lei de Ohm

O primeiro circuito que todo iniciante monta, e o que mais costuma ser montado errado: um LED conectado direto a uma bateria queima, porque nada limita sua corrente. O resistor em série faz esse trabalho.
Os medidores contam a história toda:
- O voltímetro em paralelo com o resistor de 470 Ω marca 7,136 V.
- O amperímetro marca 15,18 mA. A lei de Ohm diz o mesmo: 7,136 V / 470 Ω = 15,2 mA.
- O restante dos 9 V cai sobre o LED: cerca de 1,84 V, a tensão direta de um LED vermelho.
Essa é a fórmula para escolher o resistor: R = (Valimentação − VLED) / I. Para 15 mA a partir de uma bateria de 9 V: (9 − 1,8) / 0,015 = 480 Ω, então 470 Ω é o valor comercial mais próximo.
Experimente: clique com o botão direito no resistor e mude para 1 kΩ. A corrente cai para 7,2 mA e o LED escurece, enquanto a tensão sobre ele quase não muda (1,81 V). Um LED mantém sua tensão quase constante e deixa o resistor definir a corrente.
Abra o circuito do LED e da lei de Ohm no Velxio
2. Uma fonte de 5 V: retificador, capacitor e regulador
A clássica fonte linear, a que existe dentro de todo adaptador de parede antigo, em quatro estágios:
- Transformador. Ele converte a CA da rede em uma tensão CA mais baixa e segura. Aqui é um secundário 12-0-12 V com derivação central, desenhado como dois geradores de sinal em oposição de fase (12 V de pico cada, 50 Hz).
- Retificador. Dois diodos 1N4007, um para cada metade do secundário. Cada um conduz em seu próprio semiciclo, então a saída recebe um pulso positivo a cada 10 ms: retificação de onda completa.
- Capacitor de reservatório. O capacitor de 220 µF se carrega em cada pico e alimenta a carga no intervalo. A tensão que ele mantém não é plana: ela cai entre os picos. Essa queda é o ripple.
- Regulador. O 7805 pega essa tensão oscilante e mantém sua saída em exatamente 5 V, desde que sua entrada fique pelo menos cerca de 2 V acima da saída.
A imagem do osciloscópio no topo deste artigo mostra os 12 V CA do transformador e a tensão retificada sobre o capacitor. O capacitor oscila entre 10,1 V e 11,8 V, cerca de 1,7 V de ripple com uma carga de 50 mA, e o voltímetro na saída marca 5,000 V estáveis.
A estimativa rápida para o ripple é ΔV ≈ I / (2·f·C): 0,05 A / (2 × 50 Hz × 220 µF) = 2,3 V. Essa fórmula assume que o capacitor alimenta a carga durante todo o semiciclo; na realidade os diodos o recarregam um pouco antes disso, então os 1,7 V medidos são menores.
Experimente: clique com o botão direito no capacitor e mude para 47 µF. O ripple cresce para 6 V, os vales caem para 5,9 V, abaixo do que o 7805 precisa, e sua saída mergulha para 3,9 V a cada ciclo. É por isso que as fontes usam capacitores grandes.
3. Um abajur noturno com LDR e dois transistores

Um abajur noturno automático, sem microcontrolador e sem código. Um resistor dependente de luz (LDR) mede a luz, e dois transistores acendem o LED quando escurece.
O módulo sensor de luz é um divisor de tensão: o LDR em cima e um resistor de 10 kΩ embaixo. Na luz do dia a resistência do LDR é baixa e a saída do módulo (AO) é alta; no escuro ela sobe para centenas de kΩ e AO cai em direção a 0 V.
- Q1 é a chave do sensor. Quando AO está acima de cerca de 0,6 V, Q1 conduz e puxa a base de Q2 para quase 0 V.
- Q2 aciona o LED. Enquanto Q1 está ligado, Q2 está desligado e o LED fica apagado. Quando a luz cai, Q1 para de conduzir, o resistor de 10 kΩ puxa a base de Q2 para cima, Q2 liga e o LED acende.
Por que dois transistores? Porque um só faria o contrário: acenderia o LED quando estivesse claro. O primeiro estágio inverte o sinal.
Na simulação, a 20 lux (um ambiente com pouca luz) AO fica em 0,50 V, Q1 está desligado e o LED conduz 13 mA. A 30 lux AO fica em 0,67 V, Q1 liga e o LED apaga. Clique com o botão direito no sensor de luz e altere Illumination (lux) nessa faixa para alternar:

Abra o abajur noturno no Velxio
4. Um amplificador a transistor: o estágio emissor-comum

É assim que um sinal pequeno se torna um sinal grande: o amplificador emissor-comum, o bloco de construção de todo amplificador de áudio discreto. Uma senoide de 1 kHz com 0,4 V de pico a pico entra por um capacitor de acoplamento e sai do coletor cerca de quatro vezes e meia maior, e invertida. (A fonte de 9 V é o símbolo de fonte de bancada no canto superior esquerdo; o gerador de sinal está abaixo dele.)
Duas coisas fazem isso funcionar.
Polarização. Um transistor só amplifica quando está parcialmente ligado. O divisor de 47 kΩ / 10 kΩ fixa a base em 1,54 V. O emissor fica uma queda de diodo abaixo, 0,89 V, então 0,89 mA fluem pelo resistor de emissor de 1 kΩ. A mesma corrente pelo resistor de coletor de 4,7 kΩ provoca uma queda de 4,2 V, deixando o coletor em 4,83 V, perto do meio da alimentação, com espaço para oscilar nos dois sentidos.
Ganho. Uma variação na base aparece quase inalterada no emissor, então ela muda a corrente em ΔV / Re. Essa variação de corrente flui por Rc e move o coletor em ΔV × Rc / Re, na direção oposta. Assim, o ganho é −Rc/Re = −4,7. O simulador mede 4,54: o transistor adiciona uma pequena resistência interna de emissor de cerca de 26 mV / Ie ≈ 29 Ω, e 4700 / 1029 = 4,57.
No osciloscópio, a base (verde) varia 0,4 V em torno de 1,5 V e o coletor (vermelho) varia 1,8 V em torno de 4,8 V, com seus picos onde a base tem seus vales.
Experimente: clique com o botão direito no gerador de sinal e aumente sua amplitude para 1 V. O coletor precisaria oscilar 9 V, mais do que a alimentação permite, então o topo da onda se achata contra 9 V e a base contra a saturação: ceifamento, o som de um amplificador sobrecarregado.
Abra o amplificador emissor-comum no Velxio
5. Um termostato com comparador de amp-op

Um termostato que liga uma ventoinha quando esquenta, usando um único amp-op LM358 e nenhum código.
O sensor. A resistência do termistor NTC cai conforme ele esquenta (10 kΩ a 25 °C, cerca de 7,4 kΩ a 32 °C). O módulo o coloca sob um resistor fixo de 10 kΩ, então sua saída cai com a temperatura: 2,50 V a 25 °C, 2,12 V a 32 °C.
O ponto de ajuste. O potenciômetro é um segundo divisor. Seu cursor fica em 2,336 V, a tensão que o termistor fornece a 28 °C. O voltímetro mostra isso.
O comparador. Um amp-op sem realimentação tem tanto ganho que sua saída dispara para um dos trilhos dependendo de qual entrada é maior. O ponto de ajuste vai para a entrada + e o termistor para a entrada −: abaixo de 28 °C a tensão do termistor é maior e a saída fica em 0 V; acima de 28 °C ela é menor e a saída salta para cerca de 3,7 V, acendendo o LED. A 27 °C o LED está apagado, a 29 °C está aceso.
Por que 3,7 V e não 5 V? O LM358 não consegue levar sua saída até a alimentação positiva; ele para cerca de 1,3 V antes. O projeto 6 esbarra no mesmo limite.
Um termostato real adiciona histerese, para não ficar ligando e desligando enquanto a temperatura oscila no limiar. O projeto 7 faz isso em código.
Experimente: clique com o botão direito no termistor e mude sua temperatura, ou clique com o botão direito no potenciômetro e mude sua posição (0 a 1023) para mover o ponto de ajuste.
Abra o termostato com amp-op no Velxio
6. Arduino: transformando PWM em uma tensão analógica real

Um Arduino Uno não tem DAC: analogWrite() não gera uma tensão, ele gera PWM, uma onda quadrada de 490 Hz cujo ciclo de trabalho define a média. Um LED ou um motor não se importam, mas muitos circuitos precisam de uma tensão real e estável. Um filtro analógico produz uma.
- Filtro passa-baixa RC. 10 kΩ e 10 µF fazem a média do PWM. Sua constante de tempo, τ = R·C = 0,1 s, é cinquenta vezes o período do PWM, então a ondulação de 490 Hz é quase completamente removida. O custo é a velocidade: após uma mudança, a saída leva cerca de 5τ = 0,5 s para se estabilizar.
- Seguidor de tensão. Um LM358 com sua saída ligada à sua entrada − copia a tensão do filtro para sua saída. Ele consome quase nenhuma corrente do filtro, então o que você conectar a seguir não puxa a tensão para baixo.
- Realimentação. A0 lê o resultado de volta, e o sketch imprime o que foi pedido e o que foi obtido.
PWM 0 expected 0.00 V measured 0.02 V
PWM 64 expected 1.25 V measured 1.26 V
PWM 128 expected 2.51 V measured 2.51 V
PWM 192 expected 3.76 V measured 3.77 V
PWM 255 expected 5.00 V measured 4.03 V
Até 192 o DAC é preciso dentro de 10 mV. Em 255 ele para em 4,03 V: o filtro chega a 5 V, mas o LM358, alimentado com 5 V, não consegue levar sua saída tão alto. A solução é um amp-op rail-to-rail como o MCP6002, ou usar apenas a faixa que o LM358 consegue alcançar.
Abra o DAC PWM com Arduino no Velxio
7. ESP32: um termômetro que aciona uma ventoinha

O termostato de novo, desta vez com um microcontrolador decidindo, para que ele possa fazer coisas que um comparador não faz: mostrar a temperatura em graus e adicionar histerese.
Lendo a temperatura. A saída do módulo NTC vai para o GPIO34, um pino somente de entrada no primeiro ADC do ESP32. O sketch faz a média de 16 leituras, calcula a resistência do termistor a partir do divisor (R = 10 kΩ × V / (3,3 V − V)) e a converte em graus com a equação Beta do datasheet do termistor: 1/T = 1/T₀ + ln(R/R₀)/β, com R₀ = 10 kΩ em T₀ = 25 °C e β = 3950. O monitor serial imprime 25,0 °C quando o termistor está ajustado para 25 °C, e 35,0 °C a 35 °C.
Acionando a carga. Um pino GPIO pode fornecer alguns miliampères, não as centenas que uma ventoinha precisa. O GPIO25 aciona o gate de um MOSFET 2N7000, através de um resistor de 100 Ω, e o MOSFET conecta a ventoinha (um LED verde aqui) ao terra. A 35 °C o dreno fica em 0,06 V: o MOSFET está totalmente ligado.
Histerese. A ventoinha liga a 30 °C e desliga somente abaixo de 28 °C. Sem essa diferença de 2 °C, uma temperatura oscilando no limiar ligaria e desligaria a ventoinha a cada segundo.
Para uma ventoinha real, use um MOSFET de nível lógico dimensionado para a corrente da ventoinha (o 2N7000 serve apenas para cargas pequenas) e um diodo em paralelo com a ventoinha para absorver o pico de tensão do motor quando ele desliga.
Abra o termômetro e ventoinha com ESP32 no Velxio
O que corrigimos ao construir estes projetos
Escrever este artigo significou medir cada circuito, e as medições revelaram problemas no simulador, todos corrigidos antes da publicação:
- Após
analogWrite(pin, 0)ouanalogWrite(pin, 255)seguido de um valor PWM, o circuito continuava vendo o nível PWM antigo. A tabela do projeto 6 detectou isso. - O voltímetro e o amperímetro incluíam o transitório de ligação em suas leituras CA: a saída do 7805 lia 3,47 V em vez de 5 V.
- Os canais analógicos do osciloscópio tinham uma faixa fixa de ±4 V, então um sinal de 5 V ou 12 V era desenhado fora da tela. Agora eles se ajustam automaticamente.
- Os reguladores de tensão não consumiam corrente de sua entrada, então uma fonte de alimentação não mostrava nenhuma ondulação.
Se você montar um circuito analógico no Velxio e os números não baterem com a fórmula, avise-nos no GitHub. Foi assim que estes foram encontrados.