Показаны различия между двумя версиями страницы.
| Следующая версия | Предыдущая версия | ||
| products:aruno:exp8 [2020/05/28 08:29] – создано alexnik | products:aruno:exp8 [2020/08/28 11:48] (текущий) – alexnik | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | ===== Эксперимент | + | ===== Эксперимент |
| - | Среди | + | Диммер — электронное устройство, |
| + | Регулировку яркости светодиода будем производить при помощи переменного резистора, | ||
| + | покрытой веществом, | ||
| + | и скользящего контакта с ручкой. У переменного резистора | ||
| + | три | ||
| + | Сопротивление меняется в зависимости от длины отрезка | ||
| + | резистивной пластины от ее начала до скользящего контакта. Чем | ||
| + | больше этот путь, тем | ||
| + | |||
| + | {{ : | ||
| + | // | ||
| + | |||
| + | Переменный резистор можно представить как схему из двух резисторов | ||
| + | {{ : | ||
| + | |||
| + | ==== Делитель напряжения ==== | ||
| + | С помощью переменного резистора будем получать аналоговый | ||
| + | Используем широко распространенную схему резисторного | ||
| + | делителя напряжения. Резисторный делитель — это два | ||
| + | последовательных участка цепи, называемых плечами, | ||
| + | напряжений | ||
| + | минусом питания и средней точкой называют нижним, | ||
| + | верхним. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Резисторный делитель используется для деления напряжения. | ||
| + | Например, | ||
| + | сопротивления, | ||
| + | половине напряжения питания. Такой делитель делит напряжение | ||
| + | на 2. | ||
| + | Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до 5 в. Подключим среднюю точку ко входу аналого- цифрового преобразователя (на контроллере это A0...A5) и будем измерять напряжение на ней. | ||
| + | <WRAP center round tip 60%> | ||
| + | Микроконтроллеры Atmega, содержат шестиканальный [[theory: | ||
| + | </ | ||
| + | |||
| + | ==== Схема эксперимента ==== | ||
| + | {{ : | ||
| + | // | ||
| + | |||
| + | {{ : | ||
| + | // | ||
| + | |||
| + | ==== Программный код эксперимента ==== | ||
| + | |||
| + | <file cpp Exp8[enable_line_numbers=" | ||
| + | const int analogPin = A0;//константа с номером пина для переменного резистора | ||
| + | const int ledPin = 3;// | ||
| + | int inputValue = 0;// | ||
| + | int outputValue = 0;// | ||
| + | |||
| + | void setup() { | ||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | | ||
| + | | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Давайте посмотрим, как все работает.\\ | ||
| + | в **строке 10** считываем аналоговый сигнал с пина к которому подключен переменный резистор и записываем его в переменную **inputValue**\\ | ||
| + | '' | ||
| + | в **строке 11** с помощью функции **map()** конвертируем сигнал записанный в переменную **inputValue** из диапазона 0-1023 (аналогового сигнала) в диапазон 0-255 (ШИМ сигнала) и записываем его в переменную **outputValue**\\ | ||
| + | '' | ||
| + | и в **строке 12** формируем ШИМ сигнал | ||
| + | '' | ||
| + | |||
| + | |||
| + | ==== Дополнительное задание ==== | ||
| + | <WRAP center round tip 60%> | ||
| + | * Сейчас, | ||
| + | * Как добиться того же результата изменяя схему устройства, | ||
| + | </ | ||