Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
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** формируем ШИМ | ||
+ | '' | ||
==== Дополнительное задание ==== | ==== Дополнительное задание ==== |