| Ваш IP: 3.239.233.139 | Online(28) - гости: 21, боты: 7 | Загрузка сервера: 0.39 ::::::::::::

Миллиомметр 0 — 20 Ом (Arduino)

Миллиомметр собран на Arduino Nano (Uno), для более точного измерения сопротивления используется АЦП-модуль ADS1115 16 bit. Миллиомметр может достаточно точно измерять сопротивление от 0.1 мОм до 20 Ом. При измерении сопротивления до 1 Ом разрешение миллиометра 0.1 мОм, после 1 Ом разрешение 1мОм.

Для точного измерения необходимо иметь эталонное сопротивление 100 Ом (манганин) через которое подается ток на измеряемое сопротивление, от точности эталонного сопротивления зависит точность прибора. Если нет возможности очень точно изготовить (намотать из манганиновой проволоки) эталонное сопротивление, то откалибровать прибор можно при помощи другого эталонного сопротивления 1…10 Ом с классом точности не менее 0.02 %. Для упрощения конструкции прибора напряжение на эталонное сопротивление 100 Ом подается от источника питания +5В Arduino, которое периодически измеряется (1 раз в минуту и при включении), но все же желательно иметь внешний ИОН с напряжением не превышающим напряжения питания ADS1115.

Соединительные провода I0 U0 I1 U1 должны иметь одну длину и соединяться должны непосредственно на измеряемом сопротивлении.

Настройка:

  • необходимо изменить частоту дискретизации ADS1115, для этого откройте для редактирования файл библиотеки Adafruit_ADS1015.cpp найти все строчки ADS1015_REG_CONFIG_DR_1600SPS и замените их на ADS1015_REG_CONFIG_DR_128SPS , после чего загрузите библиотеку в Arduino IDE.
  • переменная u_pogr содержит корректировку АЦП ADS1115 в мВ при измерении напряжения +5 В, при необходимости измените значение или установите 0
  •  переменная r_ogr содержит значение эталонного сопротивления 100.00 Ом (значение может немного отличаться при условии, что эталонное сопротивление измерено достаточно точно)
#include <Wire.h>
#include <Adafruit_ADS1015.h>//https://github.com/adafruit/Adafruit_ADS1X15/archive/master.zip
#include <LiquidCrystal.h>
Adafruit_ADS1115 ads;//(0x48);
/* в файле библиотеки Adafruit_ADS1015.cpp найти все строчки: ADS1015_REG_CONFIG_DR_1600SPS и заменить на: ADS1015_REG_CONFIG_DR_128SPS */
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);// RS,E,D4,D5,D6,D7
 
float multiplier = 0.0078125;
const int u_pogr=10;       // 10 мВ - погрешность ADS1115 при измерении 5 В
const float r_ogr=100.00;  // эталонное сопротивление 100 Ом
float u3300;
int  u_digital;
byte n,k;
long u_sum,u_an,x;
float u_iz,rx,rx_m;
 
void setup(void){Serial.begin(9600);lcd.begin(16, 2);ads.begin();delay(1000);}
 
void loop(){
  while(x<50){
x++;ads.setGain(GAIN_TWOTHIRDS);u3300=ads.readADC_SingleEnded(2)*0.1875-u_pogr;}
k++;if(k==60){x=0;k=0;}  // измерение напряжения 5В каждую минуту
 
if(n==0){ads.setGain(GAIN_SIXTEEN);multiplier = 0.0078125;}
if(u_iz>250&&n==0){n=1;}
if(n==1){ads.setGain(GAIN_EIGHT);multiplier = 0.015625;}
if(u_iz>500&&n==1){n=2;}
if(n==2){ads.setGain(GAIN_FOUR);multiplier = 0.03125;}
 
if(u_iz<500&&n==2){n=1;}
if(u_iz<250&&n==1){n=0;}
 
lcd.setCursor(1,0);
if(rx<1){rx_m=rx*1000;lcd.print("R = ");lcd.print(rx_m,1);lcd.print(" mOm");}
if(rx>=1&&rx<20){lcd.print("R = ");lcd.print(rx,3);lcd.print(" Om");}
if(rx>=20){lcd.print("  Rx > 20 Om    ");}
lcd.setCursor(1,1);lcd.print("U = ");lcd.print(u3300,1);lcd.print(" mV");
u_sum=0;
for(int i=0;i<100;i++){  // измерение
u_digital = ads.readADC_Differential_0_1();
u_sum = u_sum + u_digital;
delay(1);
}
u_an=u_sum/100;
u_iz=u_an * multiplier;
rx=(u3300/((u3300-u_iz)/r_ogr))-r_ogr;
 
lcd.clear();
}

Результаты измерений

   класс 0.02
 класс 0.01
  класс 0.01
 класс 0.01
 класс 0.01
15.1 мОм Измерение R0 магазина сопротивления, это значение необходимо отнимать от следующих полученных значений сопроотивления
9.9 мОм
50.2 мОм
99.6 мОм
499.7 мОм
799.2 мОм
1.000 Ом
5.003 Ом
9.998 Ом

Тестирование:

Новый скетч позволяет расширить верхний предел измерения сопротивления до 1000 Ом

Требуется тестирование!!!

http://forum.rcl-radio.ru/viewtopic.php?pid=44#p44

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Контроль уровня воды в аквариуме

    Схема контроля уровня воды в аквариуме представлена на рис.1. Как только поверхность специального зонда покрывается водой, импульсы генератора НЧ, реализованного на первом операционном усилителе D1.1, поступают на компаратор (D1.2), усиливаются и преобразуются в электрический сигнал, управляющий ключевым каскадом на реле К1. В качестве датчика зонда В1 используется отрезок одно или …Подробнее...
  • Передатчик на 27МГц для системы радиоуправления

    Генератор радиопередатчика собран на схеме кварцевой стабилизации частоты. L1C3 настроен на 27 МГц. Радиус действия передатчика 5…10м. Модуляция осуществляется с выхода микросхемы 561 серии напряжением на уровне 5-7В. Литература 500схем для радиолюбителей\Автор:Николаев А.П.Подробнее...
  • Усилитель мощности на диапазон 144 МГц

    Данный усилитель предназначен для усиления мощности передатчика карманной радиостанции в диапазоне 144 МГц. При подачи на его вход сигнала мощностью 0,05Вт и питании 24В усилитель выдает мощность 5-6Вт, а при питании его напряжением 12В он выдает 3-4Вт. Входное и выходное сопротивления равны 50 Ом. Описание: первый каскад работает в классе …Подробнее...
  • 4-х канальный УМЗЧ на TDA7385

    4-х канальный УМЗЧ на TDA7385

    На ИМС TDA7385 можно собрать простой и качественный 4-х канальный усилитель мощности звуковой частоты. Усилитель прост в сборке, так как имеет минимальный набор внешних компонентов, не нуждается в настройке. Основные характеристики усилителя на TDA7385: Максимальное напряжение питания 18 В Ток покоя 180 мА Выходная мощность при напряжении питания 14,4 В …Подробнее...
  • К1156ЕР5х — РЕГУЛИРУЕМЫЙ ПРЕЦИЗИОННЫЙ ПАРАЛЛЕЛЬНЫЙ СТАБИЛИЗАТОР

    К1156ЕР5х — РЕГУЛИРУЕМЫЙ ПРЕЦИЗИОННЫЙ ПАРАЛЛЕЛЬНЫЙ СТАБИЛИЗАТОР

    Микросхема серии К1156ЕР5х представляет собой трехвыводной регулируемый прецизионный параллельный стабилизатор с высокой температурной стабильностью. Аналогом микросхемы К1156ЕР5х является микросхема TL431 фирм MOTOROLA, TEXAS INSTRUMENTS. Назначение выводов: 1- опорное напряжение 2- анод 3- катод ОСОБЕННОСТИ • Опорное напряжение 2495 мВ ± 1%; • Типовое значение изменения опорного напряжения 5 мВ в рабочем диапазоне температур; • Типовое значение …Подробнее...