Светодиод L продолжает гореть

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

Используя разъем на передней панели ПК, я подключил выключатель питания и PLED напрямую к Arduino Uno, так как разъем выдает только 5 В.

Я могу проверить состояние с помощью светодиода L, но как только я подключаю контакты выключателя питания к Arduino, чтобы включить ПК, светодиод L всегда горит. Это противоречит цели того, что я пытался сделать, поскольку я хотел, чтобы светодиод L выключался, когда компьютер выключен, и загорался, когда компьютер включен, подобно тому, как работает светодиод на кнопке питания ПК.

Если кто-то может поделиться своим мнением, код и схема выводов приведены ниже.

const int ledPin = 13; // Светодиод на ардуино должен гореть при включенном ПК и гаснуть при выключенном ПК
const int pwrPin = 8; // подключен к выключателю питания для включения и выключения ПК
const int PLED = 7;

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

void loop() {
  int status;
  status = digitalRead(PLED); // считывает статус PLED
  if (status == HIGH) { // если компьютер включен, продолжайте, пока скрипт Python не выключит компьютер.
    digitalWrite(ledPin, HIGH);
    Serial.print("PC is on");
    delay(5000);
  }
  else { // когда ПК выключен, arduino должен снова включиться для холодной перезагрузки ПК
    digitalWrite(ledPin, LOW);
    Serial.print("PC is off. Turning on in 10 seconds");
    delay(10000);
    // Добавлен код. Эмулирует нажатие кнопки ПК, когда ПК выключен
    digitalWrite(pwrPin, LOW);
    delay(500);
    digitalWrite(pwrPin, HIGH);
  }
  delay(500);
}

Маленькая рамка с кружками — это заголовок передней панели мобильного устройства.

, 👍0

Обсуждение

Что такое L-светодиод?, @jsotola

@jsotola Arduino со встроенным светодиодом., @Ant

почему в вашем коде он называется ledPin?, @jsotola

что печатается в последовательной консоли? ... скопируйте и добавьте к своему вопросу, @jsotola

почему вы предполагаете, что с LLED что-то не так? ... возможно, ваш код работает правильно, @jsotola

Правильно ли я понял, что светодиод правильно показывал состояние ПК, пока вы, наконец, не подключили контакты выключателя питания к Arduino? Просьба уточнить. Если это правильно: Как именно вы все подключили?, @chrisl

@chrisl Да, это правильно. Когда я отсоединяю контакты выключателя питания, светодиод работает как положено: горит, когда компьютер включен, и выключается, когда компьютер выключен. Тем не менее, когда я вставляю контакты выключателя питания, светодиод всегда включен. Я отредактировал свой пост, чтобы показать контактные соединения., @Ant

Можете ли вы попробовать еще раз, подключившись к контактам выключателя питания, но настроив pwrpin как INPUT? Это не включит ваш компьютер таким образом, но INPUT делает контакт высокоимпедансным (электрический эквивалент неподключенного контакта), и я хочу проверить, меняет ли это что-то (и, возможно, найти что-то об основной проблеме), @chrisl

@chrisl Я пробовал это раньше, но я просто попробовал еще раз, и произошло то же самое. Отдельно я попытался запустить только код для включения ПК в другом файле и обнаружил, что установка pwrpin на OUTPUT работает, а INPUT — нет. Вот почему я установил pwrpin как ВЫВОД в моем основном коде. Надеюсь, эта информация будет полезной., @Ant

@chrisl Кроме того, я не знаю, поможет ли это или вы уже знаете это, но переключатель питания выдает 5 В в любое время, даже когда компьютер выключен. Когда я выключаю блок питания, на переключателе питания нет напряжения, а встроенный светодиод гаснет., @Ant

@ Ant, выключатель питания подключен между землей и линией сигнала включения ... сигнал включения, скорее всего, подтягивается к 5 В с помощью подтягивающего резистора ... переключатель подтягивает его к земле при нажатии переключателя., @jsotola

Вы проверяли внутреннюю схему материнской платы, как управляется светодиод? Скорее всего, переключается «PLED-», а не «PLED+», так что подключение «PLED-» к GND, как вы сделали, будет постоянно включено. Например, измерьте контакты на разъеме ПК., @the busybee

@thebusybee Я знаю, что когда ПК включен, PLED измеряется при 5 В и 0 В, когда ПК выключен. Это то, о чем ты говоришь?, @Ant

@jsotola может ли это быть потенциальной причиной того, что встроенный светодиод всегда горит?, @Ant

Хм, какой из обоих контактов PLED вы имеете в виду? -- Что вы измеряете при «PLED-», если ПК включен, что, если ПК выключен, и что вы измеряете при «PLED+» одновременно? _не_ подключайте Arduino и используйте «GND» в качестве ссылки. Пожалуйста, добавьте эти четыре значения в свой вопрос, [изменив] его., @the busybee


1 ответ


-1

Контакты питания светодиодов на материнской плате, к которой вы подключаетесь, не являются "индикаторами питания+" и "светодиод-", они "светодиод+" для двух отдельных светодиодов (специально предназначенных для зеленого и желтого светодиодов). См. эту страницу. распиновка, используемая Intel.

Все светодиоды используют общее заземление для "светодиод-". Подключив его, как у вас, вы замыкаете один из контактов светодиода. Отсоедините этот контакт от земли, и вы сможете правильно прочитать другой контакт.

,