Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Следующая версия
Предыдущая версия
products:laboratory_iot:exp7 [2020/05/13 18:03] – создано labuser29products:laboratory_iot:exp7 [2024/11/12 15:57] (текущий) – [Эксперимент 7. Регулирование яркости светодиода] labuser30
Строка 1: Строка 1:
 ===== Эксперимент 7. Регулирование яркости светодиода ===== ===== Эксперимент 7. Регулирование яркости светодиода =====
-Основываясь на теоретических знаниях из предыдущей статьи, давайте попробуем получить яркость светодиода, отличную от максимальной. Несмотря на то, что частота импульсов не является принципиальной для широтно- импульсной модуляции, она является важной для человека. Например, если мы будем регулировать коэффициент заполнения импульсов, которые повторяются лишь пару раз в секунду, то мы увидим лишь как светодиод мигает. Это будет обычная мигалка, никакой регулировки яркости не получим.+Основываясь на теоретических знаниях из предыдущей статьи, давайте попробуем получить яркость светодиода, отличную от максимальной. Несмотря на то, что частота импульсов не является принципиальной для широтно-импульсной модуляции, она является важной для человека. Например, если мы будем регулировать коэффициент заполнения импульсов, которые повторяются лишь пару раз в секунду, то мы увидим лишь как светодиод мигает. Это будет обычная мигалка, никакой регулировки яркости не получим.
  
-Человеческое зрение способно различать лишь 25 "кадров" в секунду. Если сигнал меняется реже, то человек отчетливо видит его мерцание. Но если повысить частоту, то для человека это сливается уже в единую картину. По этому принципу устроено кино и мультипликация. На экране показываются отдельные картинки, но они быстро сменяют другдруга. Так быстро, что сливаются в непрерывное видео.+Человеческое зрение способно различать лишь 25 "кадров" в секунду. Если сигнал меняется реже, то человек отчетливо видит его мерцание. Но если повысить частоту, то для человека это сливается уже в единую картину. По этому принципу устроено кино и мультипликация. На экране показываются отдельные картинки, но они быстро сменяют друг друга. Так быстро, что сливаются в непрерывное видео.
  
 Поэтому, необходимо генерировать сигнал ШИМ определенной, достаточно высокой, частоты. Поэтому, необходимо генерировать сигнал ШИМ определенной, достаточно высокой, частоты.
  
 +==== Схема эксперимента ====
 +Соберем уже привычную нам схему со светодиодом.
 +{{ :products:esp-iot:exp2.1.png?nolink |}}
 +//Рисунок 1. Электрическая принципиальная схема эксперимента//
 +
 +{{ :products:esp-iot:pwm.montage.png?direct&600 |}}
 +//Рисунок 2. Монтажная схема эксперимента//
 +
 +
 +==== Программный код эксперимента ====
 +<file python Exp7.py[enable_line_numbers="2", start_line_numbers_at="1"]>
 +from machine import Pin, PWM
 +import time
 +_init()
 +
 +LedPin = 16
 +led = Pin(LedPin, Pin.OUT)
 +
 +while True:
 +    led.on()
 +    time.sleep_ms(10)
 +    led.off()
 +    time.sleep_ms(10)
 +</file>
 +
 +Первые строки программы уже знакомы нам по прошлым программам. В теле цикла мы используем новую функцию ''time.sleep_ms()''. Она очень похожа на знакомую там ''time.sleep()''. Разница заключается в том, что она принимает в качестве параметра время задержки не в секундах, а //милли//секундах. Приставка //милли-// означает одна тысячная. Таким образом эта функция принимает значение задержки в тысячных долях секунды. 1 миллисекунда это 0,001 секунда. 
 +
 +В теле цикла программа зажигает светодиод, ждет 10 миллисекунд, после чего выключает светодиод и ждет еще 10 миллисекунд. Таким образом мы генерируем импульсы. Так как время, которое светодиод горит и не горит одинаковое (и то и другое по 10мс), то получается К<sub>заполнения</sub>=50%
 +
 +Период нашего сигнала получается 20мс. А его частота 1/20мс = 50 герц, это означает, что мы получили 50 импульсов в секунду, поэтому глаз не видит отдельных вспышек светодиода, но яркость светодиода заметно меньше, чем, когда он горел на полную мощность.
 +
 +Изменим программу, чтобы получить коэффициент заполнения 10%
 +<code python>
 +    led.on()
 +    time.sleep_ms(2)
 +    led.off()
 +    time.sleep_ms(18)
 +</code>
 +
 +При таких задержках мы получили такой же, как и раньше, период импульсов (20мс), но теперь время свечения светодиода только 2мс, что составляет 10% от периода. Поэтому светодиод стал совсем тусклым, но по-прежнему не мигает, а горит, как кажется, с постоянной яркостью.
 +==== Дополнительное задание ====
 <WRAP center round tip 60%> <WRAP center round tip 60%>
-Попробуй изменить время задержек в программе и посмотри что изменится, когда частота станет менее 25 гуерц.+1. Попробуй изменить время задержек в программе, не меняя период импульсов, и посмотри что изменится. 
 +2. Попробуй изменить задержки в программе, увеличивая период импульсов, и посмотри, что изменится, когда частота станет менее 25 герц.
 </WRAP> </WRAP>