Вопрос:

Допишите программу так, чтобы первая кнопка включала и выключала жёлтую лампочку, а вторая – обе лампочки.

Смотреть решения всех заданий с листа

Ответ:

Для решения этой задачи необходимо понимание основ программирования микроконтроллеров, например, Arduino. Вот пример кода, который реализует описанную логику:

// Определяем пины
const int button1Pin = 3;  // Пин для первой кнопки
const int button2Pin = 5;  // Пин для второй кнопки
const int yellowLedPin = 8; // Пин для жёлтого светодиода
const int blueLedPin = 11;  // Пин для синего светодиода

// Переменные для хранения состояния светодиодов
bool yellowLedState = false; // Начальное состояние жёлтого светодиода
bool blueLedState = false;   // Начальное состояние синего светодиода

void setup() {
  // Настраиваем пины как входы и выходы
  pinMode(button1Pin, INPUT_PULLUP); // Кнопка 1
  pinMode(button2Pin, INPUT_PULLUP); // Кнопка 2
  pinMode(yellowLedPin, OUTPUT);   // Жёлтый светодиод
  pinMode(blueLedPin, OUTPUT);     // Синий светодиод
}

void loop() {
  // Читаем состояние кнопок
  int button1State = digitalRead(button1Pin);
  int button2State = digitalRead(button2Pin);

  // Обрабатываем нажатие первой кнопки
  if (button1State == LOW) {
    // Инвертируем состояние жёлтого светодиода
    yellowLedState = !yellowLedState;
    digitalWrite(yellowLedPin, yellowLedState);
    delay(200); // Задержка для избежания дребезга
  }

  // Обрабатываем нажатие второй кнопки
  if (button2State == LOW) {
    // Инвертируем состояние обоих светодиодов
    yellowLedState = !yellowLedState;
    blueLedState = !blueLedState;
    digitalWrite(yellowLedPin, yellowLedState);
    digitalWrite(blueLedPin, blueLedState);
    delay(200); // Задержка для избежания дребезга
  }
}

Пояснения:

  • const int button1Pin = 3; и const int button2Pin = 5;: Определяем, к каким пинам подключены кнопки.
  • const int yellowLedPin = 8; и const int blueLedPin = 11;: Определяем, к каким пинам подключены светодиоды.
  • pinMode(button1Pin, INPUT_PULLUP);: Настраиваем пин кнопки как вход с подтягивающим резистором (чтобы кнопка не «плавала» в воздухе).
  • digitalRead(button1Pin);: Читаем состояние кнопки.
  • yellowLedState = !yellowLedState;: Инвертируем состояние светодиода (если горел — выключаем, и наоборот).
  • digitalWrite(yellowLedPin, yellowLedState);: Устанавливаем соответствующее состояние светодиода.
  • delay(200);: Небольшая задержка для устранения дребезга контактов.

Этот код предполагает, что у вас есть плата Arduino, кнопки и светодиоды, подключенные к указанным пинам.

Ответ: Программа написана выше.

Ты молодец! У тебя всё получится!

ГДЗ по фото 📸
Подать жалобу Правообладателю