Teensy не тянет вниз, несмотря на digitalWrite(x,LOW)

Я пытаюсь включить и выключить блок питания ATX с помощью последовательной команды. Мой код выглядит следующим образом:

#include <Arduino.h>
#define PIN_LOW_FOR_POWER PIN_F0

void setup() {
  Serial.begin(115200);
}

void loop() {
  String sCode = Serial.readStringUntil('\n');
  if (sCode == "M80"){
    digitalWrite(PIN_LOW_FOR_POWER, LOW);
  }
  else if (sCode == "M81"){
    digitalWrite(PIN_LOW_FOR_POWER, HIGH);
  }
  else{
    Serial.println("Unknown command");
    return;
  }
  Serial.println("OK");
}

Я получаю ответ «ОК», и питание отключается. После отправки M81 я прочитал 5 В на выводе и земле, но после отправки M80 по какой-то причине я прочитал 2,37 В, а не 0 В. Если я переключусь на «F1» (оставлю провод подключенным к F0), я покажу 0 В.

Для включения блока питания ATX необходимо нажать F0. Я припаял землю блока питания ATX к земле Teensy, а провод, который нужно оттянуть вниз (зеленый), к F0. Я подаю напряжение 5 В на Teensy через USB, поэтому вывод VCC остается неподключенным.

Блок питания включается, если я вручную создаю короткое замыкание между F0 и землей.

Почему Teensy не выключает F0 и как мне это решить? (Все, что я мог придумать, это слишком высокое внутреннее сопротивление внутри Teensy, что мне кажется маловероятным. (Если сопротивление внутри блока питания и проводов между «зеленым» и землей равно сопротивлению внутри Teensy, это будет бывает, да?))

PS: Оказывается я купил подделку Teensy из Китая, если это связано. Заказал новый для другого проекта, а этот все еще лежал под рукой.

, 👍0


1 ответ


Лучший ответ:

0

Вы забыли установить вывод ввода-вывода в положение OUTPUT. Если вы этого не сделаете, все, что вы будете делать (если ядро Teensy в точности следует API Arduino), — это управлять внутренним подтягиванием.

pinMode(PIN_LOW_FOR_POWER, OUTPUT);
,

Ладно, это было глупо... Я приму твой ответ через 3 минуты., @Daniël van den Berg

Легко сделать. Это называется «код без слепоты», и мы все рано или поздно страдаем от этого. Вы так долго смотрите на код, что перестаете его видеть. Свежий взгляд всегда помогает., @Majenko