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 из Китая, если это связано. Заказал новый для другого проекта, а этот все еще лежал под рукой.
1 ответ
Лучший ответ:
Вы забыли установить вывод ввода-вывода в положение OUTPUT. Если вы этого не сделаете, все, что вы будете делать (если ядро Teensy в точности следует API Arduino), — это управлять внутренним подтягиванием.
pinMode(PIN_LOW_FOR_POWER, OUTPUT);
- Библиотека DHT.h не импортируется
- Напряжение меняется, но цифровой поток всегда HIGH
- Потенциометр 10 кОм против резистора 10 кОм на ЖК-дисплее
- Сброс Arduino UNO с помощью SIM800L
- Вложенный цикл
- Как узнать, нужно ли мне использовать резистор в цепи?
- В чем разница между выводами SCLK и CLK?
- Индустриализация Arduino - 24V io? (Электроника)
Ладно, это было глупо... Я приму твой ответ через 3 минуты., @Daniël van den Berg
Легко сделать. Это называется «код без слепоты», и мы все рано или поздно страдаем от этого. Вы так долго смотрите на код, что перестаете его видеть. Свежий взгляд всегда помогает., @Majenko