Один из светодиодов на Arduino очень тусклый

Я сделал датчик вибрации на Arduino. Он подключен к приложению для Android. При нажатии кнопки запуска в приложении загорается красный светодиод (режим ожидания), а через 2–5 секунд красный светодиод гаснет, и загорается зеленый (это означает, что система готова). Зеленый светодиод гаснет, если датчик обнаруживает вибрацию. Зеленый светодиод работает отлично. Однако красный светодиод всегда тускло светит. Я пробовал тестировать красный светодиод отдельно, он работает нормально. Я пробовал менять пин, к которому он подключен, но он все равно тускло светит. Прилагаю свой код ниже, если это поможет.

Заранее спасибо.

int ledPin = 13;
int ledPin2 = 9;
int EP = 7;
int cal = 500;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(EP, INPUT); //установить вход EP для измерения
  Serial.begin(9600); //инициализация последовательного порта 9600
}

void loop() {
  if (Serial.available()) {
    char c = Serial.read();
    if (c == '1') {
      cal = 100;
    }
    if (c == '2') {
      cal = 200;
    }
    if (c == '3') {
      cal = 300;
    }
    if (c == '4') {
      cal = 400;
    }
    if (c == '5') {
      cal = 500;
    }
    if (c == '6') {
      cal = 600;
    }
    if (c == '7') {
      cal = 700;
    }
    if (c == '8') {
      cal = 800;
    }
    if (c == '9') {
      cal = 900;
    }
    if (c == '0') {
      int randm = random(2, 6);
      int x = randm * 1000;
      digitalWrite(ledPin2, HIGH);
      delay(x);
      unsigned int tm = millis();
      digitalWrite(ledPin, HIGH);
      digitalWrite(ledPin2, LOW);
      while (1) {
        long measurement = TP_init();
        char br = Serial.read();
        if (br == 'x') {
          break;
        }
        if (measurement > cal) {
          digitalWrite(ledPin, LOW);
          unsigned int out = millis() - tm;
          unsigned char i = out;
          Serial.print(out);
          break;
        }
      }
    }
  }
}

long TP_init() {
  delay(0);
  long measurement = pulseIn (EP, HIGH);
  //ждем, пока вывод станет ВЫСОКИМ и вернет измерение
  return measurement;
}

, 👍1


2 ответа


4

Вам необходимо добавить эту строку для другого контакта светодиода:

pinMode(ledPin2, OUTPUT);
,

1

Вам понадобится эта же линия для другого контакта светодиода:

pinMode(ledPin2, OUTPUT);

,