» Temas » Dicas »Corrente do grampo do medidor em uma ampla faixa, tensão e temperatura

Medidor de corrente, tensão e temperatura de ampla faixa

Nomeação:
Para medir e fixar no tempo, na memória flash, processos longos expressos em corrente e tensão, como descarga de carga de baterias e baterias. É possível fixar simultaneamente a temperatura.

Parâmetros do sinal de entrada:
corrente I = 25mka - 2a
tensão U = 0 - 5V
temperatura t = -30 - + 120gС
o tempo é definido pelo relógio interno de quartzo

Nutrição:
da fonte 12v / 0.3a
Eu consumo <70ma

Construção:
O medidor é montado em dois módulos Arduino Nano conectado via protocolo ModBus, veja o diagrama. Um Arduino é montado em um riser com blocos de terminais. Os módulos são conectados via conectores. Os fios e os próprios módulos são isolados de falhas termo-cambiais.

Os sinais de entrada são alimentados através de terminais de parafuso

No painel frontal, há um indicador de cristal líquido dos parâmetros medidos e LEDs indicando a alternância de uma faixa ou fora da faixa.

O medidor é montado em um compartimento 145x85x40.
O sensor de temperatura é realizado através do conector. A transmissão do sinal é organizada em uma linha de dois fios. Resistor de alimentação no conector.

Para facilitar a programação, os conectores USB do Arduino são externos.






Esquema

O esquema pode ser baixado do arquivo Meter.rar

Dois Arduino foram escolhidos por dois motivos: o Arduino Nano estava disponível e não era suficiente em uma memória, e está planejado adicionar mais sensores. Além disso, eu queria dominar a associação Arduino, para isso o protocolo de rede ModBus foi selecionado. O ModBus define um processador mestre - Mestre e vários escravos - Escravo. Neste trabalho, há um escravo, nele é uma medida de temperatura, tensão e corrente. No Master - um relógio e um registro em um arquivo. A memória da carne deve ter menos de 4 GB e formatada em FAT.

Como foi planejado medir correntes de μA a A, as correntes são medidas em 4 faixas (consulte a tabela Ranges), o Escravo do Arduino monitora a transição de uma faixa para outra, formando o código de derivação correspondente para a corrente medida atual de M1-2. Ao se aproximar da borda do intervalo, o próximo intervalo é ativado, ou seja, a chave atual de T1-1 --- T2-2 é desativada e a próxima é ativada. Nesse caso, a derivação máxima = 100ohm está constantemente ativada. Se houver um excesso de valor na faixa, os LEDs D8, D9 acenderão.

Dividindo a medição de corrente em faixas
Uout_max = 5v KusOU = 20 Δ = Ish / 1024

O ganho do amplificador operacional M1-2 é ajustado = 20 e depois não muda. (No painel frontal, ele é montado incorretamente).
A tensão é medida através de um seguidor na OU M1-1.Os circuitos de entrada do op-amp e do Arduino são protegidos por diodos (os diodos zener estão no Arduino, mas eu não conheço os parâmetros, portanto, é melhor exagerar).

LCD1602 é selecionado como um indicador. Está conectado ao Arduino Master. Além disso, o indicador pode ser conectado ao Arduino simplesmente trocando os conectores do Arduino. (Quando a energia está desligada.) A conexão com o escravo do Arduino é mostrada com uma linha tracejada (que foi usada ao gravar programas). Com a conexão principal (ao mestre) no LCD1602, 4 telas podem ser exibidas alternando o controle deslizante da chave deslizante p1-p2.

Tela 1: acima das informações de serviço da troca entre o Arduino: C é o número de trocas entre o Arduino, E é o número de erros durante a troca do número Sh do shunt;
dia inferior - hora do mês.


Tela2: U1, I1, número da derivação, (0,00 reserva inferior direita)


Tela3: U2, temperatura, (espera)


Tela 4: gravação SD ativada, tempo de gravação em horas, número da linha no arquivo,
00- estado da faixa de corrente1 0-normal 1-fora da faixa, estado da faixa de tensão1, potência fixa de uma fonte externa


Quando conectado a escravo - 2 telas. O interruptor p3 permite a gravação na memória Micro Flesh.
A fonte de alimentação é selecionada 12v para obter características lineares do amplificador operacional (para evitar bloqueios nas bordas da faixa). Pelo mesmo motivo, foi usada tensão negativa do shaper no KR1006VI1. O uso de um gerador Arduino produz uma tensão menos estável. Para gerar energia de 5V, um conversor de redução foi usado, mas você pode ficar sem ele fornecendo + 12V às entradas do VIN Arduino Nano.
Programação conjunta O Arduino possui recursos, pois a comunicação com o computador está ocupada com o protocolo ModBus. Para carregar um esboço em um dos Arduino, por outro, você precisa ativar o sinal de redefinição do RST. Para fazer isso, use os jumpers Bloco S, Bloco M. Ou pressione e mantenha pressionados os botões de reset nos módulos do Arduino até o término do download, o que é menos conveniente e há uma chance de danificá-lo. Como pretendo expandir meu dispositivo USB Arduino, retirei o estojo.

O transistor T5 (FR024N) deve ser usado para ativar / desativar um processo, por exemplo, uma descarga de carga de uma bateria. Enquanto não estiver envolvido.

Software.
É mastigado ao máximo que os iniciantes (e eu próprio) não machucamos e podem servir como material de referência, mas não afirmam ser otimizados.

Bibliotecas e códigos de programa estão localizados no arquivo Izmeritel PRO.rar.
Esboço para o mestre ModBus_Master10_SD_T_10_2. Esboço para o escravo ModBus-Slave10_T_UI_10_2. O resto da biblioteca.
Programado no ambiente do Arduino1.6.0. Ele contém as bibliotecas SD, LiquidCrystal, Wire e não precisa fazer o download.

A hora em horas é definida na Instalação da seguinte maneira. Defina o tempo real e carregue o esboço. Em seguida, comente as linhas para definir a data e a hora e recarregue o esboço.

O resultado do programa será a indicação de hora e data (horas), corrente, tensão, temperatura no LCD1602 e o registro desses parâmetros no arquivo IZMER1.TXT na memória Micro Flesh. O arquivo conterá uma tabela desse tipo:

0; 13/04/2019; 00:11:10; Zap (h) = 0,05; tc = 29,31; U1 = 1,71; I1 = 0,00; P1 = 0,00; U2 = 0,14; DiaI norma; Norma DiaU; C = 762
1; 13/04/2019; 00:11:16; Zap (h) = 0,05; tc = 29,38; U1 = 1,79; I1 = 0,00; P1 = 0,00; U2 = 0,19; DiaI norma; Norma DiaU; C = 788
2; 13/04/2019; 00:11:22; Zap (h) = 0,05; tc = 29,38; U1 = 1,54; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; Norma DiaU; C = 813
3; 13/04/2019; 00:11:28; Zap (h) = 0,05; tc = 29,31; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; Norma DiaU; C = 839
4; 13/04/2019; 00:11:34; Zap (h) = 0,05; tc = 29,31; U1 = 1,90; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; Norma DiaU; C = 864
5; 13/04/2019; 00:11:40; Zap (h) = 0,05; tc = 29,25; U1 = 1,53; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; Norma DiaU; C = 890
6; 13/04/2019; 00:11:46; Zap (h) = 0,05; tc = 29,19; U1 = 2,03; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; Norma DiaU; C = 915
7; 13/04/2019; 00:11:52; Zap (h) = 0,05; tc = 29,13; U1 = 1,81; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; Norma DiaU; C = 941
8; 13/04/2019; 00:11:58; Zap (h) = 0,05; tc = 29,00; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; Norma DiaU; C = 966
9; 13/04/2019; 00:12:04; Zap (h) = 0,07; tc = 28,94; U1 = 1,25; I1 = 0,00; P1 = 0,00; U2 = 0,17; DiaI norma; Norma DiaU; C = 992
10; 13/04/2019; 00:12:10; Zap (h) = 0,07; tc = 29,00; U1 = 1,85; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; Norma DiaU; C = 1017
11; 13/04/2019; 00:12:16; Zap (h) = 0,07; tc = 29,00; U1 = 1,21; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; Norma DiaU; C = 1043
12; 13/04/2019; 00:12:23; Zap (h) = 0,07; tc = 28,94; U1 = 1,55; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; Norma DiaU; C = 1068
13; 13/04/2019; 00:12:29; Zap (h) = 0,07; tc = 28,88; U1 = 1,82; I1 = 0,00; P1 = 0,00; U2 = 0,16; DiaI norma; Norma DiaU; C = 1094
14; 13/04/2019; 00:12:35; Zap (h) = 0,07; tc = 28,88; U1 = 1,30; I1 = 0,00; P1 = 0,00; U2 = 0,18; DiaI norma; Norma DiaU; C = 1119

onde as colunas estão localizadas n / a; Data tempo tempo de gravação em horas; temperatura tensão medida U1; corrente medida I1; a segunda tensão medida U2; informações sobre a saída / ausência da faixa de medição; informações de serviço sobre o número de trocas entre o Arduino.

O intervalo de gravação da medição foi selecionado por 6 segundos; é fácil alterá-lo, substituindo o valor da constante #define CYCLE_TIME_F 3000 por outra pela fórmula Tsec = Constante (ms) * 2/1000 no Master.
Além disso, esta tabela pode ser apresentada na forma de bons gráficos.



Ao escrever programas, usei materiais. Expresso minha gratidão ao autor.

Apropriado para o tópico

Tópicos relacionados

Adicionar um comentário

    • sorrirsorrisosxaxaoknão seiyahoonea
      chefearranhartolosimsim simagressivosegredo
      desculpedançardance2dance3perdãoajudabebidas
      pararamigosbomgoodgoodapitodesmaiarlíngua
      fumaçapalmascraydeclararirônicodon-t_mentionbaixar
      calorirritantelaugh1mdareuniãomoskingnegativo
      not_ipipocapunirlerassustarsustospesquisar
      provocarthank_youistoto_clueumnikagudoconcordar
      malbeeeblack_eyeblum3corargabar-setédio
      censuradobrincadeirasecret2ameaçarvitóriayusun_bespectacled
      sacudirrespektlolpreviubem vindoKrutoyya_za
      ya_dobryiajudantene_huliganne_othodifludproibirfechar
2 comentário
Inclusão estranha de NE555 no driver negativo. ((
Para que o meandro vá ao campo, é necessário conectá-los à saída IP.
Fit Arduino para suas próprias necessidades, é claro, um negócio útil, mas adquirido recentemente, o preço de emissão é inferior a 1 tonelada:
Especificações do UM24C
• display: 1,44 ", 128х128, cores, ângulos de visão próximos de 180º
• portas de entrada: USB tipo A macho, Micro USB tipo B fêmea
• porta de saída: USB tipo A fêmea
• tensão: 4.50-24.00V
• força atual: 0-3.000A
• resolução de exibição de tensão: 0,01V
• intensidade atual da tela de resolução: 0.001A
• precisão da medição de tensão: ± (0,2% + 1 dígito)
• precisão da medição atual: ± (0,8% + 3 dígitos)
• Suporte Qualcomm Quick Charge: QC 2.0 e QC 3.0
• 10 células de memória para armazenar capacitância e energia medidas
• Função de medição de resistência do cabo Micro USB
• seleção manual do limiar de início de medição: 0.00-0.30A
• exibição de temperatura, resistência da carga conectada, potência
• exibição de gráficos de tensão e corrente
• exibição de tensão nas linhas de dados da porta USB, modo de operação atual
• tela de desligamento automático: 1-9 minutos, desligada
• brilho da tela: 0-5 (6 níveis)
• exibição de temperatura: em graus Celsius ou Fahrenheit
• ajuda on-line
• rotação da tela 90º / 180º / 270º
• conexão Bluetooth bidirecional sem fio a um PC (SPP - Serial Port Profile)
sorrir

Aconselhamos que você leia:

Entregue-o para o smartphone ...