Найти тему
У Павла!

Работа с ШИМ в Arduino

ШИМ ( Широтно-импульсная модуляция ) также еще называется PWM ( pulse-width modulation ) - это процесс управления мощности методом пульсирующего включения и выключения прибора.

В микроконтроллерах arduino есть пины которые обладают PWM. Например в arduino uno всего 20 пинов из них 6 аналоговых 14 цифровых пинов. Из 14 цифровых только 6 пинов умеют работать в ШИМ (PWM). Схема распиновки Arduino UNO:

Шим пины обозначены волнистой линией. Это 3,5,6,9,10,11.
Шим пины обозначены волнистой линией. Это 3,5,6,9,10,11.

Пример работы шим будет показан на светодиоде. Светодиод будет подключен к 3 пину ардуино как показано на схеме ниже. 3 Пин какраз будет генерировать ШИМ сигнал и светодиод будет плавно загораться и плавно тухнуть.

Схема подключения светодиода:

-2

Сама программа или как ее еще называют "скетч" будет выглядеть следующим образом:

================================================================

int brightness = 0; // Яркость светодиода

int fadeAmount = 5; //Шаг изменения яркости

unsigned long currentTime;

unsigned long loopTime;

void setup() {

pinMode(3, OUTPUT); // Утанавливаем 3 пин как выход

currentTime = millis();

loopTime = currentTime;

}

void loop() {

currentTime = millis();

if(currentTime >= (loopTime + 20)){

analogWrite(3, brightness); //Устанавливаем значение

//на 3 пине, прибавляем изменения яркости,

//которая установится в следующем цикле:

brightness = brightness + fadeAmount;

//Если достигли минимальное или максимальное значение,

//то идем в обратную сторону (реверс):

if (brightness == 0 || brightness == 255) {

fadeAmount = -fadeAmount;

}

loopTime = currentTime;

}

}

================================================================

Ну и конечно же оставлю ссылку на готовый скетч для скачивания: https://yadi.sk/d/4ftO_vHSHwK6hg

Ну чтож в этой статье мы узнали что такое ШИМ и как он работает наглядно. В следующих статьях м продолжим изучать примеры работы как с Ардуино, так и с raspberry pi.