Faça você mesmo voltímetro usando Arduino e Smartphone
Componentes e suprimentos
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
Sobre este projeto
Demonstração
Se você é novo no Arduino, pode começar com os Tutoriais do Arduino para iniciantes.
Como funciona
Podemos usar o pino de entrada analógica do Arduino para medir a tensão. No entanto, a tensão máxima mensurável é 5V.
Para aumentar a tensão mensurável, precisamos usar um divisor de tensão
InTheory
Nós temos:
V_measure =(R1 + R2) / R2 * V_in
proporção = (R1 + R2) / R2
=> V_measure =ratio * V_in
Se escolhermos R1 =10 * R2, temos:
V_measure =11 * V_in
Uma vez que o máximo do V_in permitido é 5V => O máximo da tensão mensurável é 55V
Para limitar a execução da corrente através do pino do Arduino, o que pode causar danos ao Arduino, precisamos escolher o valor do resistor o maior possível.
Eu escolho R1 =1 Mohm, R2 =100Kohm
Na prática
Lá são alguns problemas na prática
- O valor de R1 e R2 tem erros. Os erros causam o erro de V_measure
- A fonte de alimentação do Arduino pode estar instável. Isso torna o V_REF da entrada analógica instável. Portanto, isso causa o erro no cálculo de V_in. => causa erro no cálculo de V_measure
Esses problemas são resolvidos na parte de calibração
Calibração
1 Meça o valor real de (R1 + R2) / R2
Isso precisa ser feito apenas uma vez para obter a proporção
Fiação conforme imagem abaixo:
ratio =(R1 + R2) / R2 =V_measure / V_in =A1_read_value / A0_read_value
ratio =A1_read_value / A0_read_value
Código para esta calibração => consulte ResisterCalibration.ino na parte do código
2. Instabilidade da fonte de alimentação
A instabilidade da fonte de alimentação causa instabilidade na referência de tensão do pino analógico. Isso causa a medida errada no cálculo da tensão.
Para resolver isso, precisamos medir a referência de tensão com frequência.
Como medir a referência de tensão?
Conecte 3,3 V ao pino A1
A referência de tensão é medida indiretamente com base no valor em A1:
V_reference =1023 * 3.3 / A1_value
Como calcular a V_measure:
V_in =mapFloat (A0_value, 0, 1023, 0, V_reference); V_measure =ratio * V_in;
Fiação principal:
Como fazer
- Fiação como circuito de "fiação de calibração de resistor"
- Carregar ResistorCalibration.ino
- Abrir plotadora serial
- Copie o valor da proporção
- Substitua este valor na linha 5 de Voltmeter.ino
- Reconectando como "fiação principal"
- Carregar Voltmeter.ino
- Upload da interface do usuário da web ( voltmeter.php e voltmeter_body.jpg ) para PHPoC Shield
- Acesse a página da Web http://phpoc_shield_ip_address/voltmeter.php para ver a tensão.
Você pode ver a voltagem no smartphone da seguinte forma:
Dicas de fiação:
O melhor Arduino Starter Kit para iniciantes
Veja o melhor kit Arduino para iniciantes
Código
- ResistorCalibration.ino
- Voltmeter.ino
- voltmeter.php
ResistorCalibration.ino Arduino
- Fiação conforme descrito na parte de calibração- Execute este código uma vez
- Abrir plotter serial
- Copie o valor da proporção
- Substitua este valor na linha 5 de Voltmeter.ino
double ratio; int analogReadA Average (int pin, int read_time) {unsigned long read_value =0; // ler o analógico em valores read_time times:for (int i =0; iVoltmeter.ino Arduino
Este é o código principal. Antes de enviar este código, precisamos:
- fazer upload de ResistorCalibration.ino
- abrir o Serial Monitor
- copie o valor da razão e substitua o valor na linha 5 deste códigodouble V_measure; double V_in; referência_v dupla; proporção dupla =11,59; mapFloat duplo (x duplo, min_in duplo, max_máx duplo, min_dobra, out_máx duplo) {retorno (x - min_in) * (max_máx - min_saída) / (min_max - min) + min_ sa;} int analogReadA Average (int pin, int read_time) {unigned long read_value =0; for (int i =0; ivoltmeter.php PHP
Este arquivo é a interface do usuário da web. Ele precisa ser carregado para PHPoC Shield junto com a imagem de fundo voltmeter_body.jpgPHPoC Shield - VOLTMETER html {altura:100%;} corpo {largura:100%; altura:100%;; alinhamento de texto:centro;}. container {largura:100%; altura mínima:99%; altura máxima:100%;} canvas {background:url (voltmeter_body.jpg); background-size:contém; família de fontes:'Segment7Standard'; intensidade da fonte:Negrito; estilo da fonte:itálico;}
Esquemas
Precisa ser carregado para PHPoC ShieldProcesso de manufatura
- Console de edição DIY Photoshop usando Arduino Nano RP 2040
- Sistema de atendimento usando Arduino e RFID com Python
- Controle remoto universal usando Arduino, 1Sheeld e Android
- Sensor de batimento cardíaco infravermelho DIY usando Arduino
- Medição de frequência e ciclo de trabalho usando Arduino
- Voltímetro DIY com Arduino e um visor Nokia 5110
- Sonar usando arduino e exibição no IDE de processamento
- MobBob:DIY Arduino Robot Controlado por Smartphone Android
- Controle de brilho do LED usando Bolt e Arduino
- Braço robótico simples e inteligente usando Arduino