HandMade32.ru - сделай своими руками

Скетч для измерения сопротивления, и что с ним можно сделать


Автор Instructables под ником CreativeStuff рассказывает, как реализовать на Arduino простейший омметр. Для этого он берёт макетную плату типа breadboard:

Скетч для измерения сопротивления, и что с ним можно сделать
Собственно Arduino:

Скетч для измерения сопротивления, и что с ним можно сделать
Дисплей на HD44780 (КБ1013ВГ6):

Скетч для измерения сопротивления, и что с ним можно сделать
Перемычки “дюпон” или самодельные:

Скетч для измерения сопротивления, и что с ним можно сделать
Переменный резистор на 10 кОм с напаянными тонкими жёсткими выводами (для регулировки констрастности изображения на дисплее):

Скетч для измерения сопротивления, и что с ним можно сделать
Ничего не напоминает? Правильно, всё новое – хорошо забытое старое. Знатоки вспомнят, что это и где:

Скетч для измерения сопротивления, и что с ним можно сделать
Постоянный резистор на 470 Ом:

Скетч для измерения сопротивления, и что с ним можно сделать
И всё это соединяет по такой схеме:

Скетч для измерения сопротивления, и что с ним можно сделать
Поскольку схемы, составленные в программе Fritzing, не очень информативны, мастер составляет расшифровку:

Вывод дисплея 1 – общий провод

Вывод дисплея 2 – плюс питания

Вывод дисплея 3 – подвижный контакт переменного резистора

Вывод дисплея 4 – вывод D12 Arduino

Вывод дисплея 5 – общий провод

Вывод дисплея 6 –вывод D11 Arduino

Выводы дисплея 7, 8, 9, 10 ни с чем не соединены

Вывод диспеля 11 – вывод D5 Arduino

Вывод дисплея 12 – вывод D4 Arduino

Вывод дисплея 13 – вывод D3 Arduino

Вывод дисплея 14 – вывод D2 Arduino

Вывод дисплея 15 – плюс питания

Вывод дисплея 16 – общий провод

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

Один из неподвижных контактов переменного резистора мастер соединяет с плюсом питания, второй – с общим проводом. Из образцового и проверяемого резистора составляет делитель напряжения: проверяемый резистор одним выводом к плюсу питания, образцовый – одним выводом к общему проводу. Оставшиеся незанятыми выводы обоих резисторов соединяет вместе и подключает к выводу A0 Arduino. Заливает скетч:

#include <LiquidCrystal.h>

//LiquidCrystal(rs, sc, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

const int analogPin = 0;

int analogval = 0;
int vin = 5;

float buff = 0;
float vout = 0;
float R1 = 0;
float R2 = 470;

void setup() {
lcd.begin(16, 2);
}

void loop() {

analogval = analogRead(analogPin);
if (analogval) {
buff = analogval * vin;
vout = (buff) / 1024.0;

if (vout > 0.9) {
buff = (vin / vout) – 1;
R1 = R2 * buff;
lcd.setCursor(0, 0);
lcd.print(" -Resistance-");
lcd.setCursor(0, 1);

if ((R1) > 999) {
lcd.print(" ");
lcd.print(R1 / 1000);
lcd.print("K ohm");
}
else {
lcd.print(" ");
lcd.print(round(R1));
lcd.print(" ohm");
}

delay(1000);
lcd.clear();

}
else {
lcd.setCursor(0, 0);
lcd.print("Insert resistor");
lcd.setCursor(0, 1);

}
}
}

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

R2 = Vout * R1 / (Vin – Vout),

выведенной из формулы:

Vout = Vin * R2 / (R1 + R2),

где R1 – образцовое сопротивление, R2 – измеряемое, Vin – напряжение питания, Vout – напряжение на средней точке делителя.

Остаётся удалить breadboard, выполнить все соединения пайкой и перенести самоделку в корпус. Но в таком виде она малопрактична, так как дублирует функцию омметра, имеющуюся в мультиметре. Переделав скетч и применив прецизионные источник питания и образцовый резистор, можно применить конструкцию, например, для сортировки резисторов по точности на их производстве. Чтобы при подключении резистора на экране дисплея сразу появлялась информация о том, к какой из пяти групп отнести компонент: 1, 2, 5, 10 или 20%.

administrator

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

Follow us

Don't be shy, get in touch. We love meeting interesting people and making new friends.