Para qualquer entusiasta ou profissional da eletrônica, o osciloscópio é uma ferramenta indispensável. Ele é o “olho” que nos permite visualizar a forma de onda de um sinal elétrico, revelando informações cruciais como frequência, amplitude, ruído e distorções. Sem ele, diagnosticar problemas em circuitos ou desenvolver novos projetos se torna uma tarefa de tentativa e erro.
No entanto, osciloscópios profissionais podem ser caros. É aí que entra a magia do Arduino. Neste artigo, apresentaremos um projeto fascinante e acessível que transforma seu Arduino Uno ou Leonardo em um osciloscópio digital simples, ideal para fins didáticos e para a análise de sinais de baixa frequência.
Este projeto é baseado na leitura rápida da entrada analógica do Arduino e no envio desses dados para um computador, onde um software de visualização (neste caso, o Processing) se encarrega de desenhar a forma de onda em tempo real. É importante notar que, devido às limitações de velocidade do conversor analógico-digital (ADC) do Arduino e da taxa de transmissão serial, este osciloscópio é mais adequado para sinais com frequência de até aproximadamente 1 kHz.
Componentes Necessários
A beleza deste projeto reside na sua simplicidade e no baixo custo dos componentes. A lista de materiais é a seguinte:
| Componente | Descrição | Função no Circuito |
|---|---|---|
| Placa Microcontroladora | Arduino Uno ou Leonardo | Leitura do sinal analógico e comunicação serial. |
| Capacitor C1 | 220 nF (cerâmico ou poliéster) | Acoplamento AC, bloqueando a componente DC do sinal de entrada. |
| Capacitores C2, C3 | 100 µF (eletrolítico) | Filtragem e estabilização da tensão de referência de 2,5V. |
| Resistores R1, R2 | 1 MΩ (1/4 W) | Divisor de tensão para polarizar o sinal de entrada em 2,5V. |
| Resistores R3, R4 | 1 kΩ (1/4 W) | Formam o divisor de tensão para a referência de 2,5V. |
| Diodo D1 | Diodo Zener de 5,1V | Proteção contra sobretensão na entrada analógica do Arduino. |
| Protoboard | 1 unidade | Para montagem e teste do circuito. |
| Fios de Conexão | Jumpers | Para interligar os componentes. |
O Circuito de Condicionamento de Sinal (Hardware)
O Arduino possui um Conversor Analógico-Digital (ADC) que pode ler tensões de 0V a 5V. Para que ele possa medir um sinal alternado (AC) que varia de forma simétrica em torno de 0V, precisamos de um circuito de condicionamento que realize duas funções principais: acoplamento AC e polarização (bias).
1. Polarização em 2,5V
Os resistores R1 e R2 (ambos de 1 MΩ) formam um divisor de tensão que, em conjunto com o capacitor C1, polariza a entrada analógica do Arduino (pino A0) em 2,5V.
Por que 2,5V? O ADC do Arduino usa 5V como referência máxima. Ao polarizar o sinal em 2,5V, garantimos que a forma de onda de entrada, mesmo que seja simétrica em torno de 0V, seja deslocada para a faixa de leitura positiva do Arduino (0V a 5V). Um sinal de entrada que varia de -2,5V a +2,5V, por exemplo, será lido pelo Arduino como variando de 0V a 5V.
2. Acoplamento AC
O capacitor C1 (220 nF) é o responsável pelo acoplamento AC. Ele atua como um filtro passa-alta, bloqueando qualquer componente de tensão contínua (DC) que possa estar presente no sinal de entrada. Isso garante que apenas a variação do sinal (a componente AC) seja analisada, o que é o comportamento típico de um osciloscópio tradicional.
3. Tensão de Referência Estável
Os resistores R3 e R4 (1 kΩ) e os capacitores eletrolíticos C2 e C3 (100 µF) formam um circuito que fornece uma tensão de referência mais estável de 2,5V para o circuito de polarização. A inclusão dos capacitores de grande valor ajuda a filtrar ruídos e a manter a tensão de 2,5V constante, o que é crucial para uma medição precisa.
4. Proteção da Entrada
O diodo D1 (Zener de 5,1V) é um componente de segurança essencial. Ele protege a entrada analógica do Arduino contra picos de tensão acidentais que poderiam danificar o microcontrolador. Se a tensão na entrada exceder 5,1V, o diodo Zener entrará em condução, desviando o excesso de corrente para o terra.
Abaixo, você pode conferir o diagrama esquemático e a disposição dos componentes na protoboard:


O Firmware do Arduino (Software)
O código que roda no Arduino é surpreendentemente simples, mas extremamente eficiente para a tarefa. Ele se concentra em duas ações principais: ler o sinal analógico e enviá-lo o mais rápido possível pela porta serial.
O segredo para a velocidade está na taxa de comunicação serial de 115200 bauds e na forma como os dados são transmitidos. O ADC do Arduino retorna um valor de 10 bits (de 0 a 1023). Para maximizar a velocidade de transmissão, o código comprime esse valor para 8 bits (de 0 a 255), permitindo que cada leitura seja enviada em apenas um byte.
A compressão é feita com a operação de deslocamento de bits para a direita (>> 2), que é equivalente a dividir o valor por 4.
// Sketch do Osciloscópio com Arduino
int analogPin = 0; // Pino analógico A0
void setup() {
// Inicia a comunicação serial na alta velocidade de 115200 bauds
Serial.begin(115200);
}
void loop() {
// 1. Lê o valor da entrada analógica (0 a 1023)
int value = analogRead(analogPin);
// 2. Comprime o valor de 10 bits para 8 bits (0 a 255)
// Desloca 2 bits para a direita (divide por 4)
byte data = (value >> 2);
// 3. Envia o byte de dados pela porta serial
Serial.write(data);
// O loop roda o mais rápido possível para capturar o máximo de amostras
}
Embora a compressão de 10 bits para 8 bits resulte em uma perda de resolução (o sinal é dividido em 256 níveis em vez de 1024), ela é um compromisso necessário para atingir a taxa de amostragem mais alta possível, o que é fundamental para visualizar sinais de frequência mais elevada.
A Interface de Visualização (Software no PC)
O Arduino envia os dados brutos, mas precisamos de um programa no computador para receber esses dados e transformá-los em um gráfico de forma de onda. Para isso, utilizamos o Processing, um ambiente de programação flexível e popular para projetos visuais e interativos.
O software de visualização, que geralmente é um sketch do Processing, lê continuamente os bytes de dados que chegam pela porta serial e os plota em um gráfico, simulando a tela de um osciloscópio.
Você precisará baixar e instalar o Processing e, em seguida, obter o código do sketch específico para este projeto. O código original pode ser encontrado em sites de projetos de eletrônica, como o mencionado no material de referência (www.arduinoevilgenius.com).
Montagem e Teste
Após montar o circuito na protoboard conforme o diagrama e carregar o sketch no Arduino, o próximo passo é testar o seu novo osciloscópio.
- Conecte o Arduino ao seu computador via USB.
- Abra o sketch do Processing e execute-o.
- Conecte a ponta de prova (o fio de teste) do seu circuito a uma fonte de sinal. Uma forma simples de testar é usar um gerador de funções de smartphone (aplicativos que geram tons de áudio) ou até mesmo o ruído da rede elétrica (com muito cuidado e usando um transformador de isolamento para segurança, se necessário).
- Observe a tela do Processing. Você deverá ver a forma de onda do sinal sendo desenhada em tempo real.


Conclusão: Um Projeto Didático e Poderoso
Este projeto de osciloscópio com Arduino é um excelente ponto de partida para quem deseja entender a fundo o funcionamento de um osciloscópio e a manipulação de sinais analógicos e digitais. Embora não substitua um equipamento profissional para análises de alta frequência, ele é uma ferramenta didática poderosa e perfeitamente capaz de analisar sinais de áudio e outras formas de onda de baixa frequência.
Com este projeto, você não apenas construiu uma ferramenta, mas também aprofundou seus conhecimentos em:
- Condicionamento de sinal (acoplamento AC e polarização DC).
- Proteção de entradas analógicas.
- Comunicação serial de alta velocidade.
- Processamento de dados (compressão de bits).
Para expandir o projeto, você pode explorar a criação de uma interface gráfica mais robusta, a implementação de um trigger (gatilho) para estabilizar a imagem na tela, ou até mesmo a utilização de um microcontrolador mais rápido para aumentar a frequência máxima de amostragem. O mundo da eletrônica está agora mais visível para você!












