Возникла проблема с входом 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);
  }  // показать светодиод для кода

}

, 👍-1

Обсуждение

что такое «ужасный ввод»?, @jsotola


1 ответ


0

В начале программы вы делаете следующее:

int Reading = digitalRead(6);

Кажется, вы думаете, что это свяжет пин с переменной. Это не так. Ваша переменная объявляется и получает начальное значение. Не больше, не меньше. Просто объявите и инициализируйте переменную там:

int Reading = LOW;

Затем вам нужно прочитать выводы в вашем основном коде (внутри такой функции, как loop()) и присвоить там значение переменной. Итак

Reading = digitalRead(6);

вместо

digitalRead(6);

которые у вас есть. В вашем коде вы читаете контакты, но затем выбрасываете результат (поскольку результат не присваивается переменной).

Вы получите пользу от прохождения базового курса C++.

,