ARDUIO первый полезный проект
Для реализации данного
способа подключения потребуется:
·
1 * резистор 10 кОм (100 руб за набор из 95 штук)
·
Разъем на 5 pin «мама» (25 руб за линейку из 40 штук)
Цены взяты с сайта
МОЛОТОК.РУ
Иногда, после творения очередного проекта остается куча резисторов, которые нужно
разобрать обратно по местам, согласно маркировки. Проблема в том, что
современные резисторы имеют маркировку в виде цветных полос. В отличии от
советских резисторов, на которых был написан номинал.
Можно сверять цветную
маркировку с таблицами в интернете или использовать программу установленную на ANDROID телефоне. Мне показалось это не удобно.
Я решил сделать
небольшой проект «ARDUINO омметр». Наверно всем
известен делитель напряжения. Вкратце: падение напряжения на резисторе зависит от его сопротивления. Смотрим схему.
ARDUINO имеет аналоговый вход. При чтении с него возвращается значение от
0 до 1023. Собираем схемку.
На одном плече
резистор 10 кОм, ко второму плечу подключаем резистор, сопротивление которого
нужно измерить. Среднюю точку подключаем
к аналоговому входу A0.
Загружаем скетч.
// Омметр на осное ARDUINO
//
// Подключение делителя напряжения к ARDUINO
// Arduino 5V -> R1 10kOm -> Arduino Analog 0 -> R2 -> Arduino GND
int analogPin = 0; // Анлоговый вход для считывания напряжения с делителя напряжения
float Vout = 0; // Переменная для хранения значения напряжения в средней точки делителя (0-5.0)
float R2 = 0; // Переменная для хранения значения резистора R2
void setup()
{
Serial.begin(9600); // Подготовка Serial Monitor для вывода информации
}
void loop()
{
Vout = (5.0 / 1023.0) * analogRead(analogPin); // Вычисляем напряжение в средней точки делителя (0-5.0)
R2 = 10000 / ((5.0 / Vout) - 1); // Вычисляем сопротивление R2 (10000 это значение R1 10 кОм)
Serial.print("Voltage: "); //
Serial.println(Vout); // Напряжения в средней точки делителя (0-5.0) для справки
Serial.print("R2: "); //
Serial.println(R2); // Значение сопротивления R2
delay(1000); // Пауза 1 сек
}
Включаем Serial Monitor. Раз в 1 секунду мы видим напряжение в средней точке делителя и
рассчитанное сопротивление.
Для примера измерено
сопротивление резистора, который имеет маркировку 10 кОм. Результат работы
удовлетворителен. Но если R2 будет намного
больше или меньше, чем R1, погрешность возрастет. Составим таблицу.
Показания на аналоговом входе могут изменятся от 0 до 1023. Посмотрим чему
будет равно расчетное значение сопротивления R2 для некоторых значений U2.
U2 | U1 | R1 | R2 | шаг в % |
1 | 1023 | 10000 | 10 | |
2 | 1022 | 10000 | 20 | 100 |
3 | 1021 | 10000 | 29 | 50 |
4 | 1020 | 10000 | 39 | 33 |
5 | 1019 | 10000 | 49 | 25 |
6 | 1018 | 10000 | 59 | 20 |
7 | 1017 | 10000 | 69 | 17 |
502 | 522 | 10000 | 9617 | |
503 | 521 | 10000 | 9655 | 0.39 |
504 | 520 | 10000 | 9692 | 0.39 |
505 | 519 | 10000 | 9730 | 0.39 |
506 | 518 | 10000 | 9768 | 0.39 |
507 | 517 | 10000 | 9807 | 0.39 |
1017 | 7 | 10000 | 1452857 | |
1018 | 6 | 10000 | 1696667 | 17 |
1019 | 5 | 10000 | 2038000 | 20 |
1020 | 4 | 10000 | 2550000 | 25 |
1021 | 3 | 10000 | 3403333 | 33 |
1022 | 2 | 10000 | 5110000 | 50 |
1023 | 1 | 10000 | 10230000 | 100 |
Как видно из
сокращенной таблицы шаг измерения наименьший в середине диапазона. Это значит,
что чем ближе значения R1 и R2,
тем результат измерения наиболее точен.
Значит не напрасно в
цифровых мультиметрах существует несколько диапазонов для измерения
сопротивления. Что можно сделать в нашем случае. Переключатель ставить не
хочется. Попробуем использовать несколько аналоговых входов.
Далее идет чистая
теория, не опробованная на практике.
Попробуем собрать
схему с несколькими делителями напряжения. Подключим измеряемое сопротивление к
GND и к одному из аналоговых входов. Чем ближе значение его
сопротивления будет к значению сопротивлению подключенного от этого же входа к
5V, тем точнее будет результат измерения.
В программе нужно реализовать
следующие функции.
1.
Определение, к какому входу подключено сопротивление. На этом
входе значение будет отличным от 1023 (5V), т.к. при отсутствии R2 в делителе в средней точке будет 5V.
2.
Определение, в какой части диапазона находится значение
напряжения. Если в начале или в конце диапазона (например 0-256 или 768-1023)
,предложить подключить сопротивление на соседний вход
3.
Рассчитать сопротивление, исходя из значения R1
подключенного к входу, определенному в пункте 1.
Это уже вы как-нибудь самостоятельно, без меня
Для красоты можно добавить дисплей и ввести таблицу стандартных значений резисторов и подводить измеренное сопротивление под стандарт
Класс точности 10%, ряд Е12 по ГОСТу (Ом, кОм,
МОм):
1.0, 1.2, 1.8, 2.2, 2.7, 3.3, 3.9, 4.7, 5.6,
6.8, 8.2, 10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82, 100, 120, 150, 180,
220, 270, 330, 390, 470, 560, 680, 820
Большая просьба к
любителям перепостов, указывать автора Little_Red_Rat