Возникла проблема с входом Dreading, он должен воспроизводить зуммер, но не
#include <AdvancedSevenSegment.h>
#define LED_PIN4
int tempo = 88; // скорость мелодии
int Pin = 6; // ввод кнопки
int APin = 7; // ввод кнопки
int SPin = 8; // ввод кнопки
int DPin = 9; // ввод кнопки
int FPin = 12; // ввод зуммера
int Epin = 4; // вывод светодиода
int Reading = digitalRead(6); // ввод кнопки
int AReading = digitalRead(7); // ввод кнопки
int BReading = digitalRead(8); // ввод кнопки
int CReading = digitalRead(9); // ввод кнопки
int Dreading = digitalRead(5); // ввод кнопки
AdvanceSevenSegment sevenSegment(13, 11, 5, 4, 3, 2, 10, 0); // контакты, которые нужно изменить, светодиода
void setup() {
// поместите сюда код установки для однократного запуска:
pinMode(4, OUTPUT); //светодиодный выход
pinMode(5, INPUT); //вход
pinMode(6, INPUT); //вход
pinMode(7, INPUT); //вход
pinMode(8, INPUT); //вход
pinMode(9, INPUT); //вход
pinMode(5, INPUT); //вход
pinMode(12, OUTPUT); //выход зуммера
// показать светодиод для кода
byte numDigits = 3;
byte digitPins[] = {};
bool resistorsOnSegments = false;
const byte numeral[11]= {
B11111100, //0
B01100000, //1
B11011010, //2
B11110010, //3
B01100110, //4
B10110110, //5
B00111110, //6
B11100000, //7
B11111110, //8
B11100110, //9
B00000000, //ничего не показывает
};
}
void loop() {
// поместите сюда ваш основной код для многократного запуска:
digitalRead(6); // Чтение состояния кнопки
digitalRead(7); // Чтение состояния кнопки
digitalRead(8); // Чтение состояния кнопки
digitalRead(9); // Чтение состояния кнопки
digitalRead(5); // Чтение состояния кнопки
digitalWrite(4, HIGH); // включаем контакт 4
delay(1000);
if (Reading == HIGH) {
tone(6, 4186, 1000);
noTone(6);
} // вкл, выкл зуммера по отношению к кнопке
if (AReading == HIGH) {
tone(7, 1976, 1000);
noTone(7);
} // вкл, выкл зуммера по отношению к кнопке
if (BReading == HIGH) {
tone(8, 2794, 1000);
noTone(8);
} // вкл, выкл зуммера по отношению к кнопке
if (CReading == HIGH) {
tone(9, 440, 1000);
noTone(9);
}
if (Dreading == LOW) {
tone (5,175, 1000);
noTone(5);
}
if (digitalRead(5) == HIGH) {
(digitalWrite(4, HIGH));
}
// вкл, выкл зуммера по отношению к кнопке
for (int i = 0; i <= 100; ++i) {
sevenSegment.setNumber(i);
delay(100);
} // показать светодиод для кода
}
@Kelsey Boyd, 👍-1
Обсуждение1 ответ
▲ 0
В начале программы вы делаете следующее:
int Reading = digitalRead(6);
Кажется, вы думаете, что это свяжет пин с переменной. Это не так. Ваша переменная объявляется и получает начальное значение. Не больше, не меньше. Просто объявите и инициализируйте переменную там:
int Reading = LOW;
Затем вам нужно прочитать выводы в вашем основном коде (внутри такой функции, как loop()
) и присвоить там значение переменной. Итак
Reading = digitalRead(6);
вместо
digitalRead(6);
которые у вас есть. В вашем коде вы читаете контакты, но затем выбрасываете результат (поскольку результат не присваивается переменной).
Вы получите пользу от прохождения базового курса C++.
,
@chrisl
Смотрите также:
- Акцептант векселей ИКТ
- Как заставить Arduino реагировать на последовательную информацию?
- Команда strtok() с Serial связью
- Как изменить переменную при нажатии кнопки, подключенной к контакту 2
- Реализовать связь Visible Light с помощью Arduino
- 4-битный счетчик вверх и вниз
- Как программно обнаружить последовательный порт Arduino на разных платформах?
- Скетч мигания ESP8266 не мигает светодиодом
что такое «ужасный ввод»?, @jsotola