Даю 100 балів. Cоздайте новый проект в Tinkercad Circuits. Добавьте плату Arduino Uno и подключите 5 или больше светодиодов,
кнопку и LCD-дисплей. Запрограммируйте несколько режимов для светодиодов:
1. Светодиоды мигают в случайном порядке;
2. Светодиоды включаются последовательно, один за другим;
3. Светодиоды медленно включаются, а затем гаснут.
Запрограммируйте кнопку, чтобы по нажатию на нее
менялся режим мигания светодиодов. Придумайте оригинальное название для каждого из режимов и выводите его
на LCD-дисплей. То есть пользователь нажимает на кнопку,
меняется режим, на LCD дисплее отображается название режима.
Answers & Comments
Відповідь:
Этот код включает 5 светодиодов, одну кнопку и один LCD-дисплей. Есть три режима мигания светодиодов: случайный режим, последовательный режим и режим затухания. По нажатию на кнопку режим меняется, а название режима выводится на LCD-дисплей. Я надеюсь, что этот код поможет вам создать ваш проект в Tinkercad Circ
Пояснення:
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int mode = 1;
int led_pins[] = {6, 7, 8, 9, 10};
int num_leds = 5;
int button_pin = A0;
void setup() {
pinMode(button_pin, INPUT_PULLUP);
lcd.begin(16, 2);
lcd.print("LED Modes:");
}
void loop() {
switch (mode) {
case 1:
randomMode();
break;
case 2:
sequentialMode();
break;
case 3:
fadeMode();
break;
}
checkButton();
}
void randomMode() {
for (int i = 0; i < 10; i++) {
int led = random(num_leds);
digitalWrite(led_pins[led], HIGH);
delay(100);
digitalWrite(led_pins[led], LOW);
delay(100);
}
}
void sequentialMode() {
for (int i = 0; i < num_leds; i++) {
digitalWrite(led_pins[i], HIGH);
delay(100);
}
delay(500);
for (int i = 0; i < num_leds; i++) {
digitalWrite(led_pins[i], LOW);
delay(100);
}
delay(500);
}
void fadeMode() {
for (int i = 0; i < 255; i++) {
for (int j = 0; j < num_leds; j++) {
analogWrite(led_pins[j], i);
}
delay(10);
}
for (int i = 255; i >= 0; i--) {
for (int j = 0; j < num_leds; j++) {
analogWrite(led_pins[j], i);
}
delay(10);
}
}
void checkButton() {
if (digitalRead(button_pin) == LOW) {
mode++;
if (mode > 3) {
mode = 1;
}
lcd.clear();
switch (mode) {
case 1:
lcd.print("Random Mode");
break;
case 2:
lcd.print("Sequential Mode");
break;
case 3:
lcd.print("Fade Mode");
break;
}
delay(500);
}
}