Использование аналоговых контактов для питания
Я бы хотел запитать что-то, требующее 5 В постоянного тока, используя аналоговые контакты Arduino Uno. В частности, я следую разделу "Fun Plug-in Hack для Arduino UNO" этого руководства Adafruit. В нем говорится:
"Если вы установите аналоговый вывод A3 на ВЫХОД и ВЫСОКИЙ, а A2 на выход и НИЗКИЙ, вы можете запитать RTC непосредственно от выводов!"
Похоже, это не работает, поэтому я пробую это с помощью мультиметра, подключенного к A2 и A3:
void setup() {
pinMode(A2, OUTPUT);
pinMode(A3, OUTPUT);
analogWrite(A2, LOW);
analogWrite(A3, HIGH);
}
void loop() {}
Я измеряю только ~ 0,8 В, пробуя 2 платы, включая совершенно новую, распакованную. Это одно и то же независимо от того, питается ли плата через USB или от 9-вольтовой батареи в разъеме barrel.
Но я могу измерить ~ 5 В от этих выводов, если я установлю вывод "заземления" как INPUT_PULLUP (используя встроенный подтягивающий резистор) вместо ВЫВОДА:
void setup() {
pinMode(A2, INPUT_PULLUP);
pinMode(A3, OUTPUT);
analogWrite(A3, HIGH);
}
void loop() {}
Я не верю, что Adafruit ошибается, поскольку концептуально имеет больше смысла установить оба вывода на ВЫВОД, один из которых будет ВЫСОКИМ, а другой - НИЗКИМ. Так что же я делаю не так?
@armani, 👍-1
Обсуждение1 ответ
Аналоговые контакты являются не только аналоговыми входами, но и цифровыми выходами (и входами тоже). Вы используете digitalWrite()
для управления ВЫСОКИМ или НИЗКИМ состоянием выхода.
ànalogWrite()
предназначен для использования с выводами PWM (я ненавижу имя, выбранное для этой функции, оно настолько неправильное на стольких уровнях).
Кроме того, этот трюк с питанием работает только для устройств, которым требуются очень малые токи (<около 20 мА), поскольку это максимум, который может обеспечить вывод ввода-вывода.
Кстати, вы можете использовать analogWrite()
на выводе, отличном от PWM, но он либо полностью включен (аналоговое значение> = 127), либо полностью выключен (аналоговое значение < 127). Макросы HIGH и LOW равны 1 и 0 соответственно, так что это означает "полностью выключено" и "полностью выключено" на обычном выводе без ШИМ.
- Как запитать Arduino и 1 цветную светодиодную ленту от одного источника питания
- Как остановить uno от запуска программы при включении питания?
- Питание Arduino напряжением более 5 В
- Режим глубокого сна для Uno без сложных схем?
- Питание двух шаговых двигателей с драйверами A4988
- Как перевести RFID-модуль MFRC522 в спящий режим?
- Не удается включить Arduino Uno + Ethernet Shield с USB-разъема, отличного от компьютера
- Питание Raspberry Pi 3 от Arduino Uno
Что вы пытались сделать силой?, @Majenko
@Majenko DS1307 RTC, @armani