Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_с:exp14 [2024/11/14 09:03] – [Программный код эксперимента] labuser30 | products:laboratory_iot_с:exp14 [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ===== Эксперимент 14. Измерение напряжения ===== | ||
- | |||
- | В предыдущей статье мы узнали о том что такое аналого- цифровой преобразователь. Микроконтроллер, | ||
- | |||
- | ==== Подключение переменного резистора ==== | ||
- | На плате конструктора установлен переменный резистор. | ||
- | Переменный резистор состоит из полукруглой пластины, | ||
- | покрытой веществом, | ||
- | и скользящего контакта с ручкой. У переменного резистора | ||
- | три вывода — по концам пластины и скользящий контакт. | ||
- | Сопротивление меняется в зависимости от длины отрезка | ||
- | резистивной пластины от ее начала до скользящего контакта. Чем | ||
- | больше этот путь, тем выше сопротивление. | ||
- | |||
- | {{ : | ||
- | // | ||
- | |||
- | Переменный резистор можно представить как схему из двух резисторов | ||
- | {{ : | ||
- | |||
- | ==== Делитель напряжения ==== | ||
- | С помощью переменного резистора будем получать аналоговый сигнал. | ||
- | Используем широко распространенную схему резисторного | ||
- | делителя напряжения. Резисторный делитель — это два | ||
- | последовательных участка цепи, называемых плечами, | ||
- | напряжений на которых равна напряжению питания. Плечо между | ||
- | минусом питания и средней точкой называют нижним, | ||
- | верхним. | ||
- | |||
- | {{ : | ||
- | |||
- | Резисторный делитель используется для деления напряжения. | ||
- | Например, | ||
- | сопротивления, | ||
- | половине напряжения питания. Такой делитель делит напряжение | ||
- | на 2. | ||
- | |||
- | Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до напряжения питания (3,3в в нашем конструкторе). Подключим среднюю точку ко входу аналого- цифрового преобразователя и будем измерять напряжение на ней. | ||
- | |||
- | ==== Схема эксперимента ==== | ||
- | {{ : | ||
- | // | ||
- | |||
- | {{ : | ||
- | // | ||
- | |||
- | ==== Программный код эксперимента ==== | ||
- | <file arduino Exp14.ino[enable_line_numbers=" | ||
- | #define ACD_PIN A0 | ||
- | |||
- | int value = 0; | ||
- | |||
- | void setup() | ||
- | { | ||
- | Serial.begin(9600); | ||
- | } | ||
- | |||
- | void loop() | ||
- | { | ||
- | value = analogRead(ACD_PIN); | ||
- | Serial.println(value); | ||
- | } | ||
- | </ | ||
- | |||
- | В строке 1 мы задаем псевдоним '' | ||
- | |||
- | <code arduino [enable_line_numbers=" | ||
- | #define ACD_PIN A0 | ||
- | </ | ||
- | |||
- | В строке 3 мы объявляем переменную '' | ||
- | от -32 768 до 32 767. | ||
- | |||
- | <code arduino [enable_line_numbers=" | ||
- | int value = 0; | ||
- | </ | ||
- | |||
- | В строке 7 мы с помощью функции '' | ||
- | |||
- | <code arduino [enable_line_numbers=" | ||
- | Serial.begin(9600); | ||
- | </ | ||
- | |||
- | В цикле просим АЦП оцифровать текущее напряжение на его входе и сообщить нам результат. Результатом является число в диапазоне от 0 до 1023. | ||
- | <code python [enable_line_numbers=" | ||
- | value = adc.read() | ||
- | </ | ||
- | |||
- | После чего выводим результат в консоль | ||
- | <code python [enable_line_numbers=" | ||
- | print(value) | ||
- | </ | ||
- | |||
- | Оператор '' | ||
- | ==== Дополнительное задание ==== | ||
- | <WRAP center round tip 60%> | ||
- | * Если наш АЦП при напряжении 0 вольт возвращает результат 0, а при 3.3 вольт — 1023, то какой результат преобразования будет при напряжении 1.65? А если напряжение 1 вольт ровно? | ||
- | * Какое напряжение соответствует значению 785? | ||
- | </ | ||