Можно записать только 5 В или 0 В, но не что-то среднее между ними.
Я работаю над более крупным проектом и мне нужно выдавать напряжение от 0 до 5 В. Я написал такой код:
int ledPin = 12; // Светодиод подключен к цифровому выводу
void setup(){
pinMode(ledPin, OUTPUT); // устанавливает вывод как выход
}
void loop(){
analogWrite(ledPin, 255);
delay(2000);
analogWrite(ledPin, 0);
delay(2000);
analogWrite(ledPin, 127);
delay(2000);
analogWrite(ledPin, 128);
delay(2000);
}
Если я правильно понял, сначала должно быть около 5 В, затем 0 В, затем 2,5 В и снова 2,5 В. Однако мой вольтметр показывает только 5 В и 0 В, с интервалом в 2 секунды. Я подключил вольтметр к контакту 12 и земле. Плата Arduino также заземлена.
2 ответа
Выводы ШИМ выдают прямоугольный сигнал напряжением от 0 до 5 В. Если вам нужно что-то более похожее на постоянный ток, пропустите сигнал через резисторно-емкостный (RC) фильтр нижних частот. 1 кОм и 10 мкФ должны хорошо сглаживать прямоугольные сигналы. http://sim.okawa-denshi.jp/en/CRtool.php
На Uno выводы 3,5,6,9,10,11 являются выводами ШИМ и выдают сигнал с частотой ~ 490 Гц или 980 Гц с рабочим циклом от 1 до 254. 0 — полностью выключено, 255 — полностью включено.
Большинство плат Arduino не имеют полноценного аналогового выхода, способного выдавать напряжение в диапазоне. Чтобы узнать, есть ли у конкретной платы полноценный аналоговый выход, проверьте спецификации и найдите контакты с маркировкой «ЦАП» (DAC) или «Цифро-аналоговый преобразователь» (DAC). Имейте в виду, что поддерживаемый диапазон напряжений может различаться в зависимости от платы.
Функция analogWrite() использует широтно-импульсную модуляцию для имитации аналогового выхода.
Если вам нужен настоящий аналоговый выход, вам потребуется подключить цифро-аналоговый преобразователь (ЦАП) к Arduino, например, https://learn.adafruit.com/mcp4725-12-bit-dac-tutorial
ОБНОВЛЕНИЕ: Если ваша цель — управлять двигателем с помощью SN754410, вы должны иметь возможность использовать аналоговый выход ШИМ для управления двигателем с различной скоростью. Вот пример: http://web.ics.purdue.edu/~fwinkler/616/sn754410_Arduino.pdf
- Есть ли способ воспроизводить звуки с Arduino без использования звукового экрана?
- В чем разница между analogWrite и digitalWrite?
- Какова частота PWM-выхода на Arduino
- Как вывести истинное аналоговое напряжение на выходной контакт
- Отправка значения с одного Arduino на другой
- Проблема с выходным контактом ШИМ (PWM)
- Пассивный зуммер работает с AnalogWrite(), но не с DigitalWrite(). Он также имеет постоянный статический шум.
- Вопрос об измерении сопротивления с помощью arduino