Как вывести два сигнала ШИМ, один с рабочим циклом 50%, другой с рабочим циклом 25%, от Arduino Uno?

Мне нужно вывести два сигнала ШИМ, один с рабочим циклом 50%, другой с рабочим циклом 25%, от Arduino. Подайте оба сигнала в два канала PicoScope и измерьте:

а) разница во времени между нарастающим импульсом трасс и б) время, необходимое сигналу для достижения 50% кривой.

Я понимаю, что мне не могут помочь с частью вопроса, касающейся Пикоскопа, однако мне нужна помощь с другой частью.

Я новичок в Arduino и не совсем понимаю, что делаю. Любая помощь будет оценена по достоинству!

, 👍-1

Обсуждение

изучите пример блинкбезделея в среде разработки Arduimo... используйте его для синхронизации нарастающего и спадающего фронтов двух сигналов, @jsotola


1 ответ


1

Функция analogWrite генерирует сигналы ШИМ. Подробности см. в документации.

Вы используете analogWrite(pin_for_25_percent, 64); для 25 % и analogWrite(pin_for_50_percent, 128); для 50 %.

const int pin_for_25_percent = /* ваш выбор */;
const int pin_for_50_percent = /* ваш выбор */;

void setup() {
    analogWrite(pin_for_25_percent, 64);
    analogWrite(pin_for_50_percent, 128);
}

void loop() {
}
,

В AVR-Arduino каждый аппаратный таймер управляет двумя выводами ШИМ. Результаты, касающиеся синхронизации/синхронизации сигналов ШИМ, могут различаться в зависимости от выбранных контактов., @DataFiddler

@DataFiddler В вопросе, касающемся синхронных сигналов, нет требований. ;-) Я предполагаю, что это всего лишь вводный эксперимент домашнего задания или лабораторного задания. Но, если бы требования были более четкими и четкими, вы _могли бы_ иметь точку зрения., @the busybee

@busybee Я понимаю «разницу во времени между нарастающими импульсами трасс» как вопрос о синхронизации двух сигналов ШИМ. Но вы правы, задача, скорее, направлена на ручное срабатывание цифровых контактов., @DataFiddler