Потенциометр на аналоговом входе A0 задаёт яркость светодиода на D9: analogRead() читает положение движка (0…1023), analogWrite() выдаёт пропорциональную скважность ШИМ. Движок потенциометра перетаскивается мышью.
Эта страница представляет собой утилиту для того чтобы смоделировать регулировка яркости светодиода потенциометром (adc → шим) на atmega328p онлайн онлайн при заданных начальных значениях.
Управление яркостью светодиода с помощью потенциометра на ATmega328P (плата Arduino Uno).
В данном примере микроконтроллер ATmega328P демонстрирует работу с аналоговыми входами и широтно-импульсной модуляцией (ШИМ). Потенциометр подключён к аналоговому входу A0 и используется в качестве источника аналогового управляющего сигнала. Светодиод подключён к цифровому выводу D9, поддерживающему аппаратный ШИМ, через токоограничивающий резистор номиналом 220 Ом.
После запуска программы в функции setup() вывод D9 настраивается как выход. В функции loop() микроконтроллер непрерывно считывает положение движка потенциометра с помощью функции analogRead(A0). Аналого-цифровой преобразователь (АЦП) преобразует напряжение на входе A0 в цифровое значение в диапазоне от 0 до 1023, которое соответствует текущему положению движка потенциометра.
Полученное значение масштабируется до диапазона от 0 до 255 и передаётся функции analogWrite(D9, ...), формирующей ШИМ-сигнал с соответствующим коэффициентом заполнения. В результате яркость светодиода изменяется пропорционально положению потенциометра: при минимальном положении движка светодиод практически не светится, а при максимальном — достигает полной яркости. Промежуточные положения обеспечивают плавное изменение интенсивности свечения.
В процессе моделирования положение движка потенциометра можно изменять перетаскиванием мышью, что позволяет в реальном времени наблюдать изменение напряжения на аналоговом входе и соответствующее изменение яркости светодиода. Такой пример наглядно демонстрирует принципы работы аналого-цифрового преобразования, обработки аналоговых сигналов и управления нагрузкой с помощью широтно-импульсной модуляции.
Исходный код программы, содержащий стандартные функции setup() и loop(), можно редактировать непосредственно в свойствах микроконтроллера. После внесения изменений скетч автоматически компилируется и загружается в модель ATmega328P, что позволяет экспериментировать с алгоритмами обработки аналоговых данных, изменять скорость обновления сигнала и изучать взаимодействие аналоговых входов с ШИМ-выходами микроконтроллера.









Комментарии