Índice:
Vídeo: Medidor de voltagem preciso e preciso Arduino (0-90 V DC): 3 etapas
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:34
Neste instrutível, construí um voltímetro para medir altas tensões DC (0-90 V) com relativa precisão e exatidão usando um Arduino Nano.
As medições de teste que fiz foram precisas o suficiente, principalmente dentro de 0,3 V da tensão real medida com um voltímetro padrão (usei um Astro AI DM6000AR). Isso é próximo o suficiente para o uso pretendido do dispositivo.
Para arquivar isso, usei uma referência de tensão (4.096v) e um divisor de tensão.
No lado do código, usei, é claro, a opção "referência externa" para o Arduino Nano e o exemplo "Smoothing" nos tutoriais do Arduino.
Suprimentos
1 x Arduino Nano - Link
1 x Display Oled (SSD 1306) - Link
1 x 1 / 4W 1% resistores - 1k ohm - Link
1 x 1 / 4W 1% resistores - 220k ohm - Link
1 x 1 / 4W 1% resistores - 10k ohm - Link
1 x 4.096v LM4040DIZ-4.1 Referência de Tensão - Link
Placa de ensaio e fios - Link
Astro AI DM6000AR - Link
USB Power Bank - Link
Baterias 9V - Link
CanadianWinters é um participante do Programa de Associados da Amazon Services LLC, um programa de publicidade de afiliados desenvolvido para fornecer um meio para os sites ganharem taxas vinculando-se à Amazon.com e sites afiliados. Ao usar esses links, como associado da Amazon, ganho com compras qualificadas, mesmo se você comprar outra coisa - e isso não custará nada.
Etapa 1: os esquemas
Eu conectei todas as peças de acordo com o esquema acima. Em particular, escolhi a referência de tensão de 4.096 para ficar o mais próximo possível da marca de 5v para evitar perda de resolução.
Seguindo a ficha técnica, escolhi um resistor de 1K ohm para a referência de tensão, embora um valor diferente pudesse ser usado. A tensão para a referência é fornecida pelo pino Nano 5v.
A ideia do circuito é que a tensão DC a ser medida passe por um resistor de tensão. A tensão escalonada e, em seguida, entra no pino analógico do Arduino para ser amostrada, suavizada, redimensionada e exibida no visor OLed.
Tentei manter as coisas simples:)
Etapa 2: o código e os cálculos do resistor
Os valores dos resistores foram escolhidos pois é aconselhável (se não me engano, isso está na folha de dados do Arduino / Atmega) para manter a impedância abaixo de 10k ohm.
Para simplificar, fiz uma planilha que automatiza os cálculos caso você queira usar diferentes valores de resistor: Link para o Planilhas Google
Aqui está o código que usei para este projeto:
#incluir
#include U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2 (U8G2_R0); // (rotação, [redefinir]) tensão flutuante = 0; // usado para armazenar o valor de tensão float Radjust = 0.043459459; // Fator divisor de tensão (R2 / R1 + R2) float vbat = 0; // tensão final após cálculos - tensão da bateria flutuante Vref = 4.113; // Referência de tensão - valor real medido. Valor nominal 4.096v const int numReadings = 50; // número de amostras de leitura - aumente para mais suavização. Diminua para uma leitura mais rápida. leituras int [numReadings]; // as leituras da entrada analógica int readIndex = 0; // o índice da leitura atual unigned long total = 0; // o total corrente int média = 0; // variáveis para atualizar a tela sem usar atraso unsigned long previousMillis = 0; // armazenará a última vez que a tela foi atualizada // constantes não mudam: const long interval = 50; // intervalo para atualizar a tela (milissegundos) void setup (void) {analogReference (EXTERNAL); // use AREF para tensão de referência 4.096. Minha voltagem real de referência é 4.113v u8g2.begin (); for (int thisReading = 0; thisReading = numReadings) {//… voltar ao início: readIndex = 0; } // calcula a média: average = (total / numReadings); tensão = média * (Vref / 1023,0); //4,113 é o Vref vbat = voltage / Radjust; // Definir o atraso para a atualização da tela usando Millis if (currentMillis - previousMillis> = interval) {// salvar a última vez que a tela foi atualizada previousMillis = currentMillis; u8g2.clearBuffer (); // limpa o menu interno // Exibição da tensão do pacote u8g2.setFont (u8g2_font_fub20_tr); // Fonte de 20px u8g2.setCursor (1, 20); u8g2.print (vbat, 2); u8g2.setFont (u8g2_font_8x13B_mr); // Fonte de 10 px u8g2.setCursor (76, 20); u8g2.print ("Volts"); u8g2.setCursor (1, 40); u8g2.print ("CanadianWinters '"); u8g2.setCursor (1, 60); u8g2.print ("Tensão precisa"); } u8g2.sendBuffer (); // transfere a memória interna para o display delay (1); }
Observe que estou um pouco enferrujado com a codificação do Arduino, então se você encontrar algum erro ou uma maneira de melhorar o código, estou aberto a sugestões:)
Etapa 3: Vamos testar
Para testar este voltímetro, usei baterias 8x 9v que comprei em uma loja local. Estou planejando usar este voltímetro para medir a voltagem nas baterias das minhas bicicletas elétricas (elas têm voltagens que variam de 24-60v com as ocasionais de 72v).
Uma vez que os componentes eletrônicos são embalados em uma pcb e uma pequena caixa, isso fará um medidor de bateria portátil e agradável. Os gráficos e fontes no OLED podem ser personalizados para atender às suas necessidades (por exemplo, fonte maior para facilitar a leitura).
Meu objetivo era ter uma leitura de tensão no medidor Oled / Arduino não muito longe do meu multímetro digital. Eu estava apontando para +/- 0, delta máximo de 3v. Como você pode ver no vídeo, consegui arquivar isso, exceto na extremidade superior das medições.
Espero que tenha gostado deste Instructable e deixe-me saber a sua opinião!
Recomendado:
Waveshare E-ink Display Voltímetro preciso (0-90 V DC) com Arduino Nano: 3 etapas
Waveshare E-ink Display Voltímetro preciso (0-90 V DC) Com Arduino Nano: Neste Instructable, eu uso um display Waveshare E-Paper de 2,9 '' com um Arduino Nano, um divisor de tensão e um ADS1115 para exibir tensões precisas de até 90 volts DC no E-Paper Display. Este instrutível combina estes dois projetos anteriores: - Ardui
Blindagem para Arduino de tubos VFD russos antigos: relógio, termômetro, medidor de voltagem : 21 etapas (com imagens)
Shield for Arduino from Old Russian VFD Tubes: Clock, Thermometer, Voltímetro …: Este projeto levou quase meio ano para ser concluído. Não consigo descrever quanto trabalho foi investido neste projeto. Fazer esse projeto sozinho me levaria uma eternidade, então tive a ajuda de meus amigos. Aqui você pode ver nosso trabalho compilado em uma longa instruc
Como fazer um sensor de taxa de fluxo de ar preciso com Arduino por menos de £ 20 Ventilador COVID-19: 7 etapas
Como fazer um sensor de fluxo de ar preciso com Arduino por menos de £ 20 Ventilador COVID-19: Consulte este relatório para o projeto mais recente deste sensor de fluxo de orifício: https://drive.google.com/file/d/1TB7rhnxQ6q6C1cNb. ..Estes instrutíveis mostram como construir um sensor de taxa de fluxo de ar usando um sensor de pressão diferencial de baixo custo e prontamente a
Medidor de voltagem de bolso: 6 etapas (com imagens)
Medidor de voltagem de bolso: Eu tenho usado uma versão maior deste voltímetro por algum tempo e sempre foi muito útil, então quando eu vi o Concurso de tamanho de bolso, eu disse a mim mesmo por que não usei esta oportunidade e compartilhei isso com você? Fiz alguns melhorias de design durante
Β Medidor Versão II (mais estável e preciso): 6 etapas
Β Medidor Versão II (mais estável e preciso): https://www.instructables.com/id/Beta-Meter/A versão I do medidor β era silenciosa e precisa, mas a fonte de corrente não era constante com a tensão de entrada (Vcc). O medidor β da versão II é bastante estável, ou seja, o valor da corrente não muda muito com a mudança em i