Мигание встроенного светодиода на Arduino Uno: простые способы для новичков

Если вы новичок в программировании Arduino и хотите научиться мигать встроенным светодиодом на Arduino Uno, вы попали по адресу! Мигание светодиода — одно из самых простых и фундаментальных упражнений в программировании Arduino, которое служит отличной отправной точкой для новичков. В этой статье мы рассмотрим несколько способов достижения этой цели, приведя примеры кода и пошаговые инструкции. Итак, давайте погрузимся и моргнем!

Метод 1: использование функции задержки()
Функция задержки() — это самый простой способ мигания встроенным светодиодом на Arduino Uno. Он приостанавливает выполнение программы на определенный период времени. Вот код:

void setup() {
  pinMode(LED_BUILTIN, OUTPUT); // Set the LED pin as OUTPUT
}
void loop() {
  digitalWrite(LED_BUILTIN, HIGH); // Turn on the LED
  delay(1000); // Wait for 1 second
  digitalWrite(LED_BUILTIN, LOW); // Turn off the LED
  delay(1000); // Wait for 1 second
}

Метод 2: использование функции millis() для неблокирующего мигания
Функция задержки() может вызвать проблемы, если вы хотите одновременно выполнять другие задачи. Альтернативный подход — использовать функцию millis(), которая позволяет использовать неблокирующую синхронизацию. Вот пример:

const int ledPin = LED_BUILTIN;
unsigned long previousMillis = 0;
const long interval = 1000; // Blink interval in milliseconds
int ledState = LOW;
void setup() {
  pinMode(ledPin, OUTPUT);
}
void loop() {
  unsigned long currentMillis = millis();
  if (currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;

    if (ledState == LOW) {
      ledState = HIGH;
    } else {
      ledState = LOW;
    }

    digitalWrite(ledPin, ledState);
  }
}

Метод 3: использование библиотеки «Мигание без задержки».
Для более сложных проектов библиотека «Мигание без задержки» предоставляет гибкий способ управления светодиодом без блокировки программы. Вот пример:

#include <BlinkWithoutDelay.h>
const int ledPin = LED_BUILTIN;
const int blinkInterval = 1000; // Blink interval in milliseconds
BlinkWithoutDelay ledBlink;
void setup() {
  pinMode(ledPin, OUTPUT);
  ledBlink.setInterval(blinkInterval);
}
void loop() {
  if (ledBlink.update()) {
    digitalWrite(ledPin, ledBlink.getState());
  }
}

Мигание встроенного светодиода на Arduino Uno — отличный способ начать программирование Arduino. В этой статье мы рассмотрели три различных метода: использование функции задержки(), использование функции millis() для неблокирующего мигания и использование библиотеки Blink Without Delay для более сложных проектов. Поэкспериментируйте с этими методами и посмотрите, какой из них лучше всего подходит для вашего конкретного приложения. Приятного творчества!