Простая схема цифрового омметра Arduino

Попробуйте наш инструмент устранения неполадок





В этом посте мы собираемся построить простую схему цифрового омметра с использованием Arduino и ЖК-дисплея 16x2. Мы также будем исследовать другие возможные идеи схем, используя ту же концепцию.

Цепь Цель

Девиз этой статьи - не просто сделать омметр для измерения сопротивления. Ваш мультиметр может сделать то же самое.



Основная цель этого проекта - использовать значение сопротивления, считываемое Arduino, для выполнения некоторых полезных проектов, например, пожарной сигнализации, где изменение значения сопротивления термистора может быть легко обнаружено, или автоматической системы полива, где, если сопротивление почвы повышается, микроконтроллер может запустить водяной насос. Возможность проектов зависит от вашего воображения.

Давайте сначала посмотрим, как сделать омметр, а затем перейдем к другим идеям схемы.



Как это устроено

Схема омметра Arduino

Схема состоит из Arduino, вы можете использовать вашу любимую плату Arduino, ЖК-дисплей 16x2 для демонстрации неизвестного значения резистора, потенциометр для регулировки уровня контрастности ЖК-дисплея. Используются два резистора, один из которых имеет известное значение резистора, а другой - неизвестное значение резистора.

Сопротивление является аналоговой функцией, но значение, отображаемое на ЖК-дисплее, является цифровой функцией. Итак, нам нужно выполнить аналого-цифровое преобразование, к счастью, в Arduino есть встроенный 10-битный аналого-цифровой преобразователь.

10-разрядный АЦП может различать 1024 дискретных уровня напряжения, 5 В подается на 2 резистора, и между резисторами снимается образец напряжения.

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

Математические уравнения записаны в программе, поэтому ручные вычисления не требуются, мы можем напрямую считывать значение с ЖК-дисплея.

Авторский прототип:

Прототип цифрового омметра Arduino

Программа для омметра:

//-------------Program developed by R.Girish--------//
#include
LiquidCrystal lcd(12,11,5,4,3,2)
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known Resistor value in Ohm
float resistor=0
float buffer=0
void setup()
{
lcd.begin(16,2)
lcd.setCursor(0,0)
lcd.print('----OHM METER---')
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
lcd.setCursor(0,1)
lcd.print('R = ')
lcd.print(resistor)
lcd.print(' Ohm')
delay(3000)
}
//-------------Program developed by R.Girish--------//

ПРИМЕЧАНИЕ: float R = 10000 // Известное значение резистора в Ом

Вы можете изменить известное значение резистора в схеме, но если вы это сделаете, измените значение также и в программе.

Как и обычный мультиметр, эта схема цифрового омметра Arduino также имеет несколько диапазонов для измерения сопротивления. Если вы попытаетесь измерить в мультиметре резистор с низким сопротивлением в мегаомном диапазоне, вы обязательно получите значения ошибки.

То же верно и для этого омметра.

Если вы хотите измерить сопротивление от 1 кОм до 50 кОм, будет достаточно известного резистора с сопротивлением 10 кОм, но если вы измеряете мегаомный диапазон или несколько омов, вы получите некоторые показания мусора. Поэтому необходимо изменить номинал известного резистора до подходящего диапазона.

В следующем разделе этой статьи мы изучим схему ЖК-дисплея для омметра и увидим, как считывать значение датчика (неизвестное сопротивление) на последовательном мониторе.

Мы также укажем пороговое значение в программе, когда оно пересечет заранее определенный порог, Arduino сработает реле.

Принципиальная электрическая схема:

Программный код:

//-------------Program developed by R.Girish--------//
float th=7800 // Set resistance threshold in Ohms
int analogPin=0
int x=0
float Vout=0
float R=10000 //Known value Resistor in Ohm
float resistor=0
float buffer=0
int op=7
void setup()
{
Serial.begin(9600)
pinMode(op,OUTPUT)
digitalWrite(op,LOW)
}
void loop()
{
x=analogRead(analogPin)
buffer=x*5
Vout=(buffer)/1024.0
buffer=(5/Vout)-1
resistor=R*buffer
Serial.print('R = ')
Serial.print(resistor)
Serial.println(' Ohm')
if(th>resistor) // if resistance cross below threshold value, output is on, if you want opposite result use '<' //
{
digitalWrite(op,HIGH)
Serial.println('Output is ON')
delay(3000)
}
else
{
digitalWrite(op,LOW)
Serial.println('Output is OFF')
delay(3000)
}
}
//-------------Program developed by R.Girish--------//

ПРИМЕЧАНИЕ:

• float th = 7800 // Установить порог сопротивления в Ом
Замените 7800 Ом своим значением.
• float R = 10000 // Резистор известного значения в Ом
Замените 10000 Ом на ваше известное сопротивление резистора.
• если (th> резистор)

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

Если вы хотите включить реле, когда показания датчика превышают пороговое значение и наоборот, просто замените «if (thresistor)»

Измеряя сопротивление датчика напрямую (LDR, термистор или что-то еще) и устанавливая порог, мы можем получить большую точность управления реле, светодиодами, двигателем и другими периферийными устройствами.

Это лучше, чем компараторы, где мы устанавливаем опорное напряжение и установленное пороговое значение, поворачивая переменный резистор слепо выполнять подобного рода проектов.




Предыдущая статья: Схема контроллера уровня хранения материала Следующий: 10 светодиодных цепей тахометра