You are on page 1of 4

Для реалізації такої програми використовуємо мову програмування Arduino та

Tinkercad. Спочатку ми можемо створити програму, яка буде включати і


використовувати світлодіоди за допомогою команди в терміналі. Потім ми можемо
додати функціональне присвоєння кожного світлодіоду своєї кнопки.
Ось код програми, яка дозволяє керувати включенням світлодіодів через
термінал:
const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;

void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}

void loop() {
if (Serial.available()) {
char command = Serial.read();
if (command == '1') {
digitalWrite(LED1, HIGH);
Serial.println("LED1 ON");
} else if (command == '2') {
digitalWrite(LED1, LOW);
Serial.println("LED1 OFF");
} else if (command == '3') {
digitalWrite(LED2, HIGH);
Serial.println("LED2 ON");
} else if (command == '4') {
digitalWrite(LED2, LOW);
Serial.println("LED2 OFF");
} else if (command == '5') {
digitalWrite(LED3, HIGH);
Serial.println("LED3 ON");
} else if (command == '6') {
digitalWrite(LED3, LOW);
Serial.println("LED3 OFF");
}
}
}
Цей код дозволяє включати та використовувати світлодіоди 1, 2 та 3,
використовуючи команди «1» та «2» для LED1, «3» та «4» для LED2, та «5» та «6»
для LED3. Наприклад, для підключення LED1 можна відправити символ '1' через
термінал.
Тепер давайте додамо функціональну присвоєння кожному світлодіоду своєї
кнопки. Ось оновлений код:
const int LED1 = 2;
const int LED2 = 3;
const int LED3 = 4;

int button1 = 1;
int button2 = 2;
int button3 = 3;

void setup() {
Serial.begin(9600);
pinMode(LED1, OUTPUT);
pinMode(LED2, OUTPUT);
pinMode(LED3, OUTPUT);
}

void loop() {
if (Serial.available()) {
String command = Serial.readStringUntil('\n');
if (command.startsWith("B1=")) {
int button = command.substring(3).toInt();
button1 = button;
Serial.println("Button 1 assigned to LED" + String(button1));
} else if (command.startsWith("B2=")) {
int button = command.substring(3).toInt();
button2 = button;
Serial.println("Button 2 assigned to LED" + String(button2));
} else if (command.startsWith("B3=")) {
int button = command.substring(3).toInt();
button3 = button;
Serial.println("Button 3 assigned to LED" + String(button3));
} else if (command == String(button1)) {
digitalWrite(LED1, HIGH);
Serial.println("LED" + String(button1) + " ON");
} else if (command == String(button2)) {
digitalWrite(LED2, HIGH);
Serial.println("LED" + String(button2) + " ON");
} else if (command == String(button3)) {
digitalWrite(LED3, HIGH);
Serial.println("LED" + String(button3) + " ON");
} else if (command == "0") {
digitalWrite(LED1, LOW);
digitalWrite(LED2, LOW);
digitalWrite(LED3, LOW);
Serial.println("All LEDs OFF");
}

Цей код дозволяє присвоїти кожному світлодіоду свою кнопку, використовуючи


команди у форматі "B1=L1", "B2=L2", та "B3=L3". Наприклад, якщо відправити
команду "B1=2", кнопка 1 буде присвоєна світлодіоду 2. Крім того, тепер ми можемо
включати світлодіоди, використовуючи кнопки, просто відправляючи номер кнопки
через термінал.

Оскільки функціонал присвоєння кнопок тепер є, нам більше не потрібно


використовувати команди '1', '2', '3', '4', '5', та '6' для включення світлодіодів. Замість
цього, ми можемо використовувати присвоєні кнопки, наприклад, якщо кнопка 1
була присвоєна світлодіоду 2, тоді відправка команди "1" через термінал включить
світлодіод 2.

Наскільки я бачу, ця програма може бути запущена на Tinkercad, якщо ви


правильно збережете її в форматі .ino і завантажите на платформу. Звісно, для
реальної роботи вам також потрібен буде платформа Arduino та з'єднання з
терміналом або іншими засобами введення.

You might also like