Добавить в корзинуПозвонить
Найти в Дзене

Arduino. Использование сигнала ШИМ. Легкое подключение.

Можете просто скопировать этот код ниже и вставить в программу. int fadetime = 10; // Задержка в при повышении яркости светодиода в милисекундах int fade = 0; // ШИМ ПИНы принимают значение от 0 до 255 (где 0 - не светит, 255 - светит на полную мощь) unsigned long lastmillis = 0; // Используется для замеров отрезков времени void setup() { pinMode(3, OUTPUT); // Устанавливаем ПИН 3 как выход Serial.begin(9600); // Устанавливаем скорость вывода в монитор порта 9600 } void loop() { /* millis() - хранит в себе текущее время работы платы, и именно из нее мы вычитаем нашу переменную lastmillis (чтобы можно было замерить отрезок времени работы платы), а после сравниваем полученное значение с переменной fadetime */ if (millis() - lastmillis > fadetime) { lastmillis = millis(); // Записывается в переменную (lastmillis) текущее время работы платы analogWrite(3, fade); // Изменяем fade (именно поэтому будет заметно глазу, как меняется яркость светодиода) fade++; // Прибавляем 1 к переменной fade
Оглавление

Список компонентов

  • Arduino UNO: Микроконтроллерная плата на базе ATmega328P.
    Назначение: Основной контроллер схемы, генерирующий ШИМ-сигналы для управления яркостью светодиода.
  • Светодиод (красный, двухконтактный): Красный светодиод с двумя выводами.
    Назначение: Излучает свет при протекании тока, яркость регулируется Arduino.
  • Резистор: Пассивный двухконтактный компонент с сопротивлением 220 Ом.
    Назначение: Ограничивает ток через светодиод, предотвращая его повреждение.

Схема подключения

  • Arduino UNO
    GND: Подключен к катоду светодиода. D3: Подключен к одному из выводов резистора.
  • Светодиод (красный, двухконтактный) Анод: Подключен к одному из выводов резистора.
    Катод: Подключен к GND на Arduino UNO.
  • Резистор Вывод 1: Подключен к аноду светодиода.
    Вывод 2: Подключен к пину D3 на Arduino UNO.

Код программы и пояснение

-2

Можете просто скопировать этот код ниже и вставить в программу.

int fadetime = 10; // Задержка в при повышении яркости светодиода в милисекундах

int fade = 0; // ШИМ ПИНы принимают значение от 0 до 255 (где 0 - не светит, 255 - светит на полную мощь)

unsigned long lastmillis = 0; // Используется для замеров отрезков времени

void setup() {

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

Serial.begin(9600); // Устанавливаем скорость вывода в монитор порта 9600

}

void loop() {

/* millis() - хранит в себе текущее время работы платы,

и именно из нее мы вычитаем нашу переменную lastmillis

(чтобы можно было замерить отрезок времени работы платы),

а после сравниваем полученное значение с переменной fadetime

*/

if (millis() - lastmillis > fadetime) {

lastmillis = millis(); // Записывается в переменную (lastmillis) текущее время работы платы

analogWrite(3, fade); // Изменяем fade (именно поэтому будет заметно глазу, как меняется яркость светодиода)

fade++; // Прибавляем 1 к переменной fade

Serial.println(fade); // Выводим в монитор порта переменную fade (чтобы видеть как изменяются наши значения)

}

if (fade > 255){

fade = 0; // Сброс к значению 0, когда значение превышает 255

}

}

Схема построена в Cirkit Designer
Схема построена в Cirkit Designer