1

Тема: Миллиомметр MCP3421

http://forum.rcl-radio.ru/uploads/images/2020/02/7296d789fb327135aa7295d55f6f9c80.png
http://forum.rcl-radio.ru/uploads/images/2020/02/43412a123ff2c4aa076c11317fc912f2.png

#include <Wire.h>
#include <MCP3421.h>
#include <LiquidCrystal_I2C.h>
  LiquidCrystal_I2C lcd(0x27,16,2);
  MCP3421 mcp;

 unsigned long dig,dig_sum;
 float u,r;
 const float u3300 = 3.241;  // опорное напряжение (V)
 const float  r_ogr = 100.00;// эталонное сопротивление (Om)
 const float r_0 = 0.0014;   // погрешность нуля (Om)
 int i,n=0,m;

void setup() {
 Serial.begin(9600);Wire.begin();
 mcp.setConfig(3,3);// 12 14 16 18 bit - 0-3 // 1x 2x 4x 8x gain - 0-3
 lcd.init();lcd.backlight();
}

void loop() {  
 /// авто переключние диапазонов /////////
 dig = mcp.readWire();  
 if(dig>131070&&n==0){mcp.setConfig(3,2);delay(50);n=1;}
 if(dig>131070&&n==1){mcp.setConfig(3,1);delay(50);n=2;}
 if(dig>131070&&n==2){mcp.setConfig(3,0);delay(50);n=3;}
 if(dig<65000&&n==1){mcp.setConfig(3,3);delay(50);n=0;}
 if(dig<65000&&n==2){mcp.setConfig(3,2);delay(50);n=1;}
 if(dig<65000&&n==3){mcp.setConfig(3,1);delay(50);n=2;}
  
  // калибровка диапазонов //
 dig = mcp.readWire(); 
 if(n==0){u = dig * 0.2569 /131071;}// n0 8   Om
 if(n==1){u = dig * 0.5156 /131071;}// n1 18  Om
 if(n==2){u = dig * 1.0270 /131071;}// n2 38  Om
 if(n==3){u = dig * 2.0510 /131071;}// n3 170 Om
 
 /// измерение /////////////////////////// 
 while(i<20){i++;dig = mcp.readWire();
 dig_sum = dig_sum+dig;delay(50);}
 i=0;dig=dig_sum/20;dig_sum=0;
 
 /// монитор порта ////////////////////////
 Serial.print(dig);Serial.print("  u=");Serial.print(u,6);Serial.print("  r=");
 Serial.print(((r_ogr*u)/(u3300-u))-r_0,4-n);Serial.print("  n=");Serial.println(n);

 switch(n){
  case 0: m=4;break;
  case 1: m=3;break;
  case 2: m=3;break;
  case 3: m=2;break;
  }
 r = ((r_ogr*u)/(u3300-u))-r_0;
 if(r>172){lcd.setCursor(0, 0);lcd.print(" R > 172.00 Om ");}
 else{lcd.setCursor(0, 0);lcd.print(" R = ");lcd.print(r,m);lcd.print(" Om   ");}
 lcd.setCursor(0, 1);lcd.print(" N ");lcd.print(n);
 if(r>172){lcd.setCursor(5, 1);lcd.print(" 0.000");lcd.print(" mA");}
 else{lcd.setCursor(5, 1);lcd.print(" ");lcd.print((u3300/(r+r_ogr))*1000);lcd.print(" mA");}
}

2

Re: Миллиомметр MCP3421

Полезная микросхемка.
А как осуществить измерение сопротивления на переменном токе.?

3

Re: Миллиомметр MCP3421

http://rcl-radio.ru/?p=66846

4

Re: Миллиомметр MCP3421

liman324 Отправил сообщение в личку.
Получили?

5

Re: Миллиомметр MCP3421

Да,я получил. Аналогичный проект я делал http://rcl-radio.ru/?p=66846, его можете доработать под Ваши требования, но проектировкой под заказ яя не занимаюсь, печатные платы не разрабатываю.

6

Re: Миллиомметр MCP3421

Жаль. Вы бы мне очень помогли.
Можете кого-то посоветовать?

7

Re: Миллиомметр MCP3421

К сожалению посоветовать ни кого не могу.

8

Re: Миллиомметр MCP3421

Здравствуйте. Хочу повторить Ваш миллиомметр и есть вопросы.
1
Резистор R1 100 Ом из манганина ( намотанный самодельный? ) можно ли заменить другим прецизионным?
2
Калибровка только в скетче, нет возможности ( может новая прошивка ) чтобы калибровать из меню устройства?

9

Re: Миллиомметр MCP3421

Можно любой прецизионный, калибровка только через скетч, настраивается только один раз, нет необходимости делать отдельное меню для управления калибровочными числами.

10

Re: Миллиомметр MCP3421

И еще головняк. Это по ИОНу. Есть различные под рукой, но с очень маленьким током. Как прибор по точности если его запитать от 3,3 Вольт ардуино? Может посоветуете чего.

11

Re: Миллиомметр MCP3421

http://rcl-radio.ru/?p=75738

http://rcl-radio.ru/wp-content/uploads/2020/02/72348692368327.png