PWM в Ардуино
- Войдите на сайт для отправки комментариев
Пт, 24/07/2015 - 18:59
Доброго здравия.
Интересует вопрос, выйдет ли смодулировать с помощью Arduino следующий сигнал:
Доброго здравия.
Интересует вопрос, выйдет ли смодулировать с помощью Arduino следующий сигнал:
Конкретно у дуины только бинарный выход.
Легко если с двух пинов и двух резисторов
Denis_1704, когда говорт легко -то обычно пишут как именно :) Это что-то новенькое, завтра утром подумаю, заинтересовало..
Denis_1704, когда говорт легко -то обычно пишут как именно :) Это что-то новенькое, завтра утром подумаю, заинтересовало..
это обычный ЦАП, только сопротивление резисторов подобрать надо
dimax, схема встрочку: PWM1 - 3кОм - сигнал (5в или 3в или 2в или 0) - 2 кОм - PWM2, но остальное скетч твари как хочешь
vk007, понятное дело что соединить 2 или 4 резистора -это обычный цап. Тут интересна программная сторона, эти 2 сигнала нужно взять с одного таймера, работающего в режиме phase ( а может и and frequency) correct. А тут уже придёться пошуршать несколькими страничками даташита...:)
PS: kennspark, кстати о какой частоте и скважности примерно речь шла?
Именно так, на резисторах, абсолютно легко выдать нарисованные импульсы.
Легко сформировать на задержках или таймером, но не ШИМом.
Какая фаза? Делай раз-два-три.
Два выхода:
1 такт один в "0", другой в "1".
2 такт оба в "0"
3 такт оба в "1".
ТС спрашивал о возможности смодулировать сигнал, об использовании штатного ШИМа речи не шло
Предлагаю создать новую тему:
Мигаем светодиодом без millis()
И даже линк придумал : http://arduino.ru/tutorials/BlinkWithoutMillis
vk007, понятное дело что соединить 2 или 4 резистора -это обычный цап. Тут интересна программная сторона, эти 2 сигнала нужно взять с одного таймера, работающего в режиме phase ( а может и and frequency) correct. А тут уже придёться пошуршать несколькими страничками даташита...:)
PS: kennspark, кстати о какой частоте и скважности примерно речь шла?
Частота изменяемая так как это тахометр (0-500 Гц), со скважностью не скажу, но по осцилу D(Duty Cycle) примерно 80%, но могу и ошибаться =\
Частота изменяемая так как это тахометр (0-500 Гц), со скважностью не скажу, но по осцилу D(Duty Cycle) примерно 80%, но могу и ошибаться =\
ну все просто осталось надыбать 2 резюка, частота медлянаая все через micros()
kennspark, Просто нужны данные для расчётов, у вас на картинке 2 периода. Один период состоит из трёх отрезков времени. (1) длительность среднего уровня. (2) длительность лог. 0 (3) длительность лог.1. Эти данные нужны для расчёта и программирования таймера.
Доброго здравия.
Интересует вопрос, выйдет ли смодулировать с помощью Arduino следующий сигнал:
Интересная задача. Мне кажется, что есть решение.
Сейчас вот получилось что-то подобное, собирал на коленке, нихрена нету делал через delay. Происходит деление на два, считаешь 50Гц, выходит 25Гц. Завтра приеду домой, постараюсь довести до ума =) Всем спасибо
ЗЫ. Тут заполнение на 50%.
Вот, набросал эскиз. Сигналы снимаются с 9 и 10 ноги ардуино. 10ю ногу через килоом включил, 9ю ногу через 2кОм.
Скетч:
void setup() { DDRB|=B00000110; TCCR1A=(1<<COM1B1)|(1<<COM1A1)|(1<<WGM10); TCCR1B=(1<<CS12)|(1<<WGM12); OCR1A=200; OCR1B=55; } void loop() {}Скриншот :)
Вот, набросал эскиз. Сигналы снимаются с 9 и 10 ноги ардуино.
теперь всё тоже самое, пожалуйста, но с 17-ю ногами - бум делать 16-ти битный звук.
Вот, набросал эскиз. Сигналы снимаются с 9 и 10 ноги ардуино.
теперь всё тоже самое, пожалуйста, но с 17-ю ногами - бум делать 16-ти битный звук.
Ещё раз всем спасибо! Как оказалось для тахометра не важна форма/напряжение сигнала, путем эксперементального тыка выяснил что тахометр распознаёт сигнал от 1 до 5 вольт, и любой скважности. В итоге можно обойтись без двух-вольтовой полки. На 50Гц 5в 50% заполнения тахометр показывает 1000об/мин.
ЗЫ. Сокращаем кол-во используемых ног, так как на ардуине требуется сочинить делитель для спидометра, и умножитель для тахометра.