LAB #1. Управление диодом с помощью последовательного порта (Serial) на платформе Arduino
Цель работы
Изучение основ работы с последовательным портом (UART, RS-232) на платформе Arduino, а также приобретение навыков программирования для управления внешними устройствами, такими как диод, через этот интерфейс.

Задание
  • балл: 0
    Подготовка оборудования:
    описание:
    • Подключите светодиод к плате Arduino, используя пин LED_PIN.
    • Настройте пин как выход (OUTPUT) с помощью функции pinMode.
    ".
  • балл: 1
    Написание программы:
    описание:
    • Напишите программу, которая считывает данные из последовательного порта.
    • Если в буфере последовательного порта есть данные, программа должна считывать один символ.
    • Проверьте, ввел ли пользователь ‘on’ или ‘off’. Если да, выполните соответствующие действия:
    • Если введен ‘on’, включите светодиод, установив высокий уровень на пине (HIGH).
    • Если введен ‘off’, выключите светодиод, установив низкий уровень на пине (LOW).
    • В случае, если введен некорректный символ, программа должна вывести сообщение об ошибке и запросить корректный ввод.
  • балл: 1
    Тестирование программы:
    описание:
    • Запустите программу и проверьте, корректно ли включается и выключается светодиод при вводе команд ‘on’ и ‘off’.
    • Убедитесь, что при вводе некорректного символа программа выводит сообщение об ошибке.
  • балл: 0-2
    часть 2 по вариантам

Аппаратные компоненты
основные
Программирование
основные
Код базовой части:
#define LED_PIN 13

void setup() {
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Enter LED state (0/1 or 'x' to clear)");
}

void loop() {
  if (Serial.available()) {
    char ch = Serial.read();
    if (ch == '0' || ch == '1') {
      int ledState = ch - '0';
      digitalWrite(LED_PIN, ledState);
      Serial.println("LED " + String(ledState));
    } else if (ch == 'x') {
      digitalWrite(LED_PIN, LOW);
      Serial.println("LED cleared");
    }
  }
}
Как это работает?
  • шаг 1
    Проверка наличия данных в буфере последовательного порта:
    описание:
    • if (Serial.available()) проверяет, есть ли данные, доступные для чтения в буфере последовательного порта. Если данные есть, программа продолжает выполнение внутри блока if.
  • шаг 2
    Чтение символа из последовательного порта:
    описание:
    • char ch = Serial.read(); считывает один символ из буфера последовательного порта и сохраняет его в переменную ch.
  • шаг 3
    Проверка на ввод ‘0’ или ‘1’:
    описание:
    • if (ch == '0' || ch == '1') { проверяет, ввел ли пользователь символ ‘0’ или ‘1’. Если условие выполняется, программа включает диод, используя digitalWrite(LED_PIN, ledState);, где ledState — это числовое значение символа (0 или 1).
  • шаг 4
    Преобразование символа в числовое значение:
    описание:
    • int ledState = ch - '0'; преобразует символ в числовое значение (0 или 1). Это делается путем вычитания кода символа ‘0’ из считанного символа.
  • шаг 5
    Вывод состояния диода в последовательный порт:
    описание:
    • Serial.println("LED " + String(ledState)); выводит сообщение в последовательный порт, подтверждающее новое состояние диода.
  • шаг 6
    Проверка на ввод символа ‘x’:
    описание:
    • else if (ch == 'x') { проверяет, ввел ли пользователь символ ‘x’. Если это условие выполняется, программа выключает диод и выводит сообщение “LED cleared” (диод выключен).
Часть 2
блок А/B

БЛОК ++


балл будет выставлен первому студенту реализовавшему и защитившему рабочий код / для каждого варианта исполнения стоимость (3 балла)

Задание - используя модуль rgb- светодиода, реализовать включение 7 цветов радуги, в зависимости от того какой цвет введен в порт, тот и включается на модуле
Made on
Tilda