Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| products:aruno:exp8 [2020/05/28 13:29] – alexnik | products:aruno:exp8 [2020/08/28 11:48] (текущий) – alexnik | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| ===== Эксперимент 8. Диммер ===== | ===== Эксперимент 8. Диммер ===== | ||
| - | Диммер — электронное устройство, | + | Диммер — электронное устройство, |
| + | Регулировку яркости светодиода будем производить при помощи переменного резистора, | ||
| + | покрытой веществом, | ||
| + | и скользящего контакта с ручкой. У переменного резистора | ||
| + | три вывода — по концам пластины и скользящий контакт. | ||
| + | Сопротивление меняется в зависимости от длины отрезка | ||
| + | резистивной пластины от ее начала до скользящего контакта. Чем | ||
| + | больше этот путь, тем выше сопротивление. | ||
| - | ==== Схема эксперимента | + | {{ : |
| + | // | ||
| - | {{ : | + | Переменный резистор можно представить как схему из двух резисторов |
| + | {{ : | ||
| + | |||
| + | ==== Делитель напряжения ==== | ||
| + | С помощью переменного резистора будем получать аналоговый сигнал. | ||
| + | Используем широко распространенную схему резисторного | ||
| + | делителя напряжения. Резисторный делитель — это два | ||
| + | последовательных участка цепи, называемых плечами, | ||
| + | напряжений на которых равна напряжению питания. Плечо между | ||
| + | минусом питания и средней точкой называют нижним, | ||
| + | верхним. | ||
| + | |||
| + | {{ : | ||
| + | |||
| + | Резисторный делитель используется для деления напряжения. | ||
| + | Например, | ||
| + | сопротивления, | ||
| + | половине напряжения питания. Такой делитель делит напряжение | ||
| + | на 2. | ||
| + | Подключим нижнее плечо с земле, а верхнее к напряжению питания. Тогда при вращении ручки переменного резистора на его средней точки напряжение будет изменяться от 0 до 5 в. Подключим среднюю точку ко входу аналого- цифрового преобразователя (на контроллере это A0...A5) и будем измерять напряжение на ней. | ||
| + | <WRAP center round tip 60%> | ||
| + | Микроконтроллеры Atmega, содержат шестиканальный [[theory: | ||
| + | </ | ||
| + | |||
| + | ==== Схема эксперимента ==== | ||
| + | {{ : | ||
| // | // | ||
| - | {{ :products:esp-iot:7.2_m.png? | + | {{ :products:ardu:exp05.png? |
| // | // | ||
| ==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
| - | < | + | < |
| - | from machine import Pin, PWM | + | const int analogPin = A0;// |
| - | _init() | + | const int ledPin = 3;// |
| + | int inputValue = 0;// | ||
| + | int outputValue = 0;// | ||
| - | LedPin = 15 | + | void setup() { |
| - | led = Pin(LedPin, Pin.OUT) | + | } |
| - | pwmLed = PWM(led) | + | |
| - | adc = machine.ADC(0) | + | void loop() { |
| - | + | | |
| - | while True: | + | outputValue |
| - | value = adc.read() | + | analogWrite(ledPin, |
| - | | + | } |
| </ | </ | ||
| - | В этой программе для нас нет ничего нового. Как обычно мы настроили вывод для светодиода, | + | Давайте посмотрим, как все работает.\\ |
| + | в **строке 10** считываем аналоговый сигнал с пина к которому подключен переменный резистор и записываем его в переменную **inputValue**\\ | ||
| + | '' | ||
| + | в **строке 11** с помощью функции **map()** конвертируем сигнал | ||
| + | '' | ||
| + | и в **строке 12** формируем ШИМ | ||
| + | '' | ||
| ==== Дополнительное задание ==== | ==== Дополнительное задание ==== | ||