ШИМ-выхода нет
Недавно я сделал проект, в котором выходные данные исходят из разницы между чтением данных и эталонным значением. Он работает в моей симуляции Proteus, но на моем реальном устройстве нет выхода PWM.
Вот мой листинг кода
for (z = 0; z <= output2; z++)
if (output2 >= 30) {
toggle == HIGH;
en = !en;
}
if (en == true) {
OCR1A = map(z, 0, 255, 0, ICR1); ;
OCR1B = 0;
} else {
OCR1A=0;
OCR1B = map(z, 0, 255, 0, ICR1);
}
if (output2 < 30) {
en = !en;
analogWrite(9, 0);
analogWrite(10, 0);
}
@john caren, 👍-1
Обсуждение1 ответ
▲ 1
Я не знаю, чего вы пытаетесь добиться, но вы записываете константу 0
в аналоговый выход.
if (output2 < 30) { en = !en; analogWrite(9, 0); analogWrite(10, 0); }
Процитировать документ analogWrite()
.Синтаксис
аналоговая запись(вывод, значение)
Параметры
пин: пин для записи. Допустимые типы данных: int.
значение: рабочий цикл: от 0 (всегда выключен) до 255 (всегда включен). Допустимые типы данных: int
Если вы хотите увидеть вывод, вам нужно указать значение от 0 до 255.
,
@RubberDuck
да, это намеренно дает 0 циклов, когда выход меньше 30, @john caren
Смотрите также:
- Установите частоту ШИМ на 25 кГц.
- Какова частота PWM-выхода на Arduino
- Управление скоростью вентилятора с помощью библиотеки Arduino PID
- Как устранить шум от вентилятора 12 В с ШИМ-управлением на низкой скорости
- Генерация частоты ШИМ выше 125 кГц с помощью Arduino Uno
- Увеличить разрядность PWM
- Как вывести истинное аналоговое напряжение на выходной контакт
- PWM-вывод Arduino Nano не функционирует
Чего вы хотите добиться, вызвав
map()
? Вы знаете, что такое OCR1A/B и как работает функцияanalogWrite()
?, @Sim Sonя видел из другой программы, которая предназначена для настройки несущей частоты, поэтому, если icr1 = 1600, 0-255 = 0-10 кГц, cmiiw,, @john caren