learn_c_lesson_1
Изменение яркости светодиода с помощью ШИМ
Частота при которой зрение человека перестает различать отдельные мигания светодиода примерно равна 50 Гц.
Можно быстро включать и выключать светодиод, чтобы человек воспринимал это как постоянное свечение светодиода с пониженной яркостью.
На графике напряжения от времени, это будет выглядеть как повторяющийся сигнал. При частоте сигнала 50 Гц время одного периода будет составлять 0.02 секунды или 20 мс.
Воспринимаемая яркость будет зависеть от соотношения времён "вкл" и "выкл" внутри одного периода.
Если время вкл будет равно времени выкл (соотношение 50% на 50%) то это будет средняя яркость светодида.
При соотношении 25% на 75% воспринимаемая яркость будет еще меньше.
А при соотношении 75% на 25% ярость --- наоборот, повысится.
Это можно видеть на интерактивной картинке, кнопки нажимаются.
Такой сигнал называется ШИМ - широтно импульсная модуляция, т.е. управление через изменение ширины импульса при неизменной частоте. Мы меняем ширину импульса и яркость пропорционально меняется.
Задание 1
Изучить главу 2 =)
https://metanit.com/c/tutorial/2.1.php
Необязательно прям все, но обязательно нужно изучить темы про переменные, типы переменных, условные конструкции, циклы, арифметические операции.
Задание 2
Пусть у нас есть несколько готовых функций:
void set_led(int level) - функция, которая включает или выключает светодиод (1 - вкл, 0 - выкл)
void delay(int time) - функция, которая может приостанавливать выполнение нашей программы на заданное время в мс.
Напишите программу, которая будет мигать светодиодом с частотой 50 Гц.
Измените программу так, чтобы частота мигания была 100 Гц.
Как зависит яркость от частоты? Почему?
Задание 3
Напишите программу, которая будет включать светодиод на пониженной яркости.
Измените программу так, чтобы ярость была выше среднего.
Задание 4
Пусть есть 4 уровня ярости светодиода - 25%, 50%, 75% и 100%.
Напишите программу, которая будет увеличивать ярость светодиода на 1 уровень каждые 5 секунд.
При достижении 4 уровня больше яркость меняться не должна.
Задание 5
Напишите программу для циклического изменения яркости светодиода, чтобы светодиод сначала постепенно разгорался, а потом постепенно затухал и так далее.