Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:laboratory_iot_с:exp14 [2024/11/14 14:44] – [Программный код эксперимента] 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); | ||
| - | delay(200); | ||
| - | } | ||
| - | |||
| - | void loop() { | ||
| - | value = analogRead(ACD_PIN); | ||
| - | Serial.println(value); | ||
| - | delay(200); | ||
| - | } | ||
| - | </ | ||
| - | |||
| - | В строке 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); | ||
| - | </ | ||
| - | |||
| - | В цикле просим АЦП оцифровать текущее напряжение на его входе cпомощью функции '' | ||
| - | <code arduino [enable_line_numbers=" | ||
| - | value = analogRead(ACD_PIN); | ||
| - | </ | ||
| - | |||
| - | После чего с помощью функции '' | ||
| - | <code arduino [enable_line_numbers=" | ||
| - | Serial.println(value); | ||
| - | </ | ||
| - | Чтобы увидеть " | ||
| - | |||
| - | Задержка в строке 14 нужна для того, чтобы сообщения микроконтроллера не " | ||
| - | <code arduino [enable_line_numbers=" | ||
| - | delay(200); | ||
| - | </ | ||
| - | Попробуй изменить значение задержки и посмотреть как изменится скорость вывода сообщений в монитор порта. | ||
| - | |||
| - | В принципе наша программа может обойтись без переменной '' | ||
| - | |||
| - | <code arduino> | ||
| - | Serial.println(analogRead(ACD_PIN)); | ||
| - | delay(200) | ||
| - | </ | ||
| - | |||
| - | |||
| - | <WRAP center round info 60%> | ||
| - | * [[https:// | ||
| - | * [[https:// | ||
| - | </ | ||
| - | ==== Дополнительное задание ==== | ||
| - | <WRAP center round tip 60%> | ||
| - | * Если наш АЦП при напряжении 0 вольт возвращает результат 0, а при 3.3 вольт — 1023, то какой результат преобразования будет при напряжении 1.65? А если напряжение 1 вольт ровно? | ||
| - | * Какое напряжение соответствует значению 785? | ||
| - | </ | ||