Medição de corrente usando o sensor Allegro ACS758 com display OLED SSD1306 para Arduino
Este tutorial vai guiá-lo pelo processo de medir corrente usando o sensor de corrente Allegro ACS758 e exibir os resultados em um display OLED SSD1306. O projeto envolverá a leitura da corrente que flui por um circuito e a representação visual desses dados na tela OLED, permitindo um monitoramento fácil. Você aprenderá a conectar os componentes, escrever o código e entender como tudo funciona em conjunto.


Se você quer entender o código e seu funcionamento, não deixe de conferir o vídeo para explicações mais detalhadas (no vídeo em 02:45).
Hardware Explicado
Os principais componentes deste projeto incluem o sensor de corrente Allegro ACS758 e o display OLED SSD1306. O ACS758 é um sensor de corrente por efeito Hall que mede a corrente que flui através de um condutor com alta precisão e fornece uma tensão de saída proporcional a essa corrente. Ele pode suportar correntes de até 200A e opera tanto em 3.3V quanto em 5V.
O display OLED SSD1306 é compacto, de baixo consumo de energia e se comunica via I2C. É comumente usado em projetos com Arduino devido à sua facilidade de integração e à capacidade de exibir gráficos e texto com clareza. Juntos, esses componentes criam uma ferramenta poderosa para monitorar a corrente em diversas aplicações.
Detalhes da ficha técnica
| Fabricante | Allegro Microsystems |
|---|---|
| Número da peça | ACS758ECB-200U |
| Tensão lógica/E/S | 3.3 V / 5 V |
| Tensão de alimentação | 5 V |
| Corrente de saída (por canal) | 200 A |
| Corrente de pico (por canal) | 200 A |
| Orientação sobre a frequência PWM | Não aplicável |
| Limiares lógicos de entrada | 0.3 V (baixo), 2.7 V (alto) |
| Queda de tensão / RDS(on)/ saturação | 0,05 V |
| Limites térmicos | -40 a 125 °C |
| Pacote | SOIC-8 |
| Notas / variantes | Modelos bidirecionais e unidirecionais disponíveis |
- Garanta a orientação correta do sensor ACS758 para leituras precisas.
- Use um dissipador de calor se estiver operando próximo aos limites máximos de corrente para evitar o superaquecimento.
- Desacople a alimentação do sensor para operação estável.
- Verifique as conexões de fiação para evitar entradas flutuantes que possam causar leituras incorretas.
- Calibre a saída do sensor para garantir medições de corrente precisas.
Instruções de fiação

Para ligar o sensor de corrente Allegro ACS758 e o display OLED SSD1306, comece conectando a alimentação. Conecte o pino VCC do ACS758 à saída 5V do seu Arduino e conecte o pino GND ao terra (GND) do Arduino. O pino de sinal de saída (Vout) do ACS758 deve ser conectado ao pino de entrada analógica A0 do Arduino.
Em seguida, para o display OLED SSD1306, conecte o pino VCC à saída de 5V do Arduino e o pino GND ao terra. Conecte o pino SDA do OLED ao pino SDA do Arduino (A4 na maioria das placas Arduino) e o pino SCL do OLED ao pino SCL (A5 na maioria das placas Arduino). Certifique-se de que todas as conexões estejam seguras para um funcionamento confiável.
Exemplos de Código e Passo a Passo
#define VIN A0 // define the Arduino pin A0 as voltage input (V in)
const float VCC = 5.0; // supply voltage 5V or 3.3V
const int model = 2; // enter the model (see below)No código, a variávelVINestá atribuído ao pino analógico A0, que lerá a tensão do sensor ACS758. OVCCvariável define a tensão de alimentação, e amodelA variável define qual modelo ACS758 está sendo usado, o que afeta os cálculos de sensibilidade e de tensão de saída.
void loop() {
float voltage_raw = (5.0 / 1023.0) * analogRead(VIN); // Read the voltage from sensor
float current = voltage / FACTOR; // Calculate the current based on voltage
}Dentro doloop()função, o código lê a tensão bruta do sensor usandoanalogRead(VIN)e o converte em um valor de corrente com base na sensibilidade definida. Isso permite o monitoramento em tempo real da corrente que flui pelo circuito.
if(abs(voltage) > cutOff) {
display.clearDisplay();
robojaxText("Current:", 0, 22, 2, false);
}Esta instrução condicional verifica se o valor absoluto da tensão é maior do que ocutOfflimite. Se verdadeiro, limpa o visor e atualiza o OLED com a leitura atual de corrente. Isso garante que apenas valores de corrente significativos sejam exibidos, evitando sobrecarga de informações no visor.
Demonstração / O que esperar
Quando você executar o programa, o display OLED mostrará a corrente sendo medida em tempo real. Se não houver corrente fluindo, o display indicará "Sem Corrente". Certifique-se de que as conexões estejam corretas para evitar problemas como polaridade invertida, que podem levar a leituras imprecisas (no vídeo em 05:30).
Coisas que você pode precisar
-
AmazonasCompre o SSD1306 OLED na Amazonamzn.to
-
AmazonasCompre OLED 128x32 na Amazonamzn.to
-
AliExpressCompre o SSD1306 OLED 128x32 da AliExpresss.click.aliexpress.com
Recursos e referências
Ainda não há recursos.
Arquivos📁
Bibliotecas do Arduino (zip)
-
SSD1306-OLED-Adafruit_SSD1306-mestre
robojax-SSD1306-OLED-Adafruit_SSD1306-master.zip0.02 MB
Arquivo Fritzing
-
OLED Mono 0,56 polegadas 128x32
OLED Mono 0.56 inch 128x32.fzpz0.01 MB -
Display OLED Monocromático I2C SSD1306 0.96in 128x64
SSD1306 0.96in 128x64 I2C Monochrome OLED Display.fzpz0.01 MB
Manual do Usuário
-
Manual do SSD1306 OLED
robojax-SSD1306-OLED-manual.pdf1.79 MB