
5. Напишите программу, в которой по нажатию кнопки на семисегментном индикаторе выводится цифра 1,
а если кнопка не нажата – то цифра 0. На языке Arduino

Ответы на вопрос

const int buttonPin = 2; // Пин, к которому подключена кнопка
const int sevenSegmentPins[7] = {3, 4, 5, 6, 7, 8, 9}; // Пины семисегментного индикатора для отображения цифры 1
void setup() {
pinMode(buttonPin, INPUT); // Устанавливаем пин с кнопкой как вход
for (int i = 0; i < 7; i++) {
pinMode(sevenSegmentPins[i], OUTPUT); // Устанавливаем пины семисегментного индикатора как выходы
}
}
void loop() {
int buttonState = digitalRead(buttonPin); // Считываем состояние кнопки
if (buttonState == HIGH) { // Если кнопка нажата
displayNumberOne(); // Отображаем цифру 1
} else { // Если кнопка не нажата
displayNumberZero(); // Отображаем цифру 0
}
}
void displayNumberOne() {
int segments[] = {LOW, HIGH, HIGH, LOW, LOW, LOW, LOW}; // Сегменты для отображения цифры 1
for (int i = 0; i < 7; i++) {
digitalWrite(sevenSegmentPins[i], segments[i]); // Устанавливаем состояние сегментов
}
}
void displayNumberZero() {
int segments[] = {HIGH, HIGH, HIGH, HIGH, HIGH, HIGH, LOW}; // Сегменты для отображения цифры 0
for (int i = 0; i < 7; i++) {
digitalWrite(sevenSegmentPins[i], segments[i]); // Устанавливаем состояние сегментов
}
}



Для создания программы на Arduino, которая будет выводить цифру 1 на семисегментном индикаторе при нажатии кнопки и цифру 0, если кнопка не нажата, вам потребуется Arduino плата, семисегментный индикатор (например, 7-сегментный дисплей с общим катодом), кнопка и резисторы (при необходимости).
Вот пример кода для такой программы:
cpp// Подключаем библиотеку для управления семисегментным индикатором
#include <SevSeg.h>
// Подключаем библиотеку для чтения состояния кнопки
#define BUTTON_PIN 2 // Пин, к которому подключена кнопка
#define COMMON_CATHODE // Если используется индикатор с общим катодом, закомментируйте эту строку
SevSeg sevseg; // Создаем объект семисегментного индикатора
void setup() {
byte numDigits = 1; // Указываем количество цифр на индикаторе (1 цифра)
byte digitPins[] = {3}; // Пины, подключенные к цифровым выводам индикатора
byte segmentPins[] = {4, 5, 6, 7, 8, 9, 10}; // Пины, подключенные к сегментам индикатора
sevseg.begin(COMMON_CATHODE, numDigits, digitPins, segmentPins);
pinMode(BUTTON_PIN, INPUT_PULLUP); // Устанавливаем пин кнопки в режим входа с подтягивающим резистором
}
void loop() {
// Считываем состояние кнопки
int buttonState = digitalRead(BUTTON_PIN);
// Если кнопка нажата, выводим цифру 1, иначе 0
if (buttonState == LOW) {
sevseg.setNumber(1); // Выводим цифру 1
} else {
sevseg.setNumber(0); // Выводим цифру 0
}
sevseg.refreshDisplay(); // Обновляем индикатор
}
В этом коде мы используем библиотеку SevSeg для управления семисегментным индикатором и настраиваем ее для работы с вашим конкретным индикатором (указываем пины цифр и сегментов). Кнопка подключена к пину 2 и использует внутренний подтягивающий резистор, поэтому мы считываем состояние кнопки с использованием digitalRead
.
При нажатии кнопки на индикаторе будет отображаться цифра 1, а при отпускании кнопки - цифра 0.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili