PWM в Ардуино

kennspark
Offline
Зарегистрирован: 24.07.2015

Доброго здравия.

Интересует вопрос, выйдет ли смодулировать с помощью Arduino следующий сигнал:

bwn
Offline
Зарегистрирован: 25.08.2014

Конкретно у дуины только бинарный выход.

Denis_1704
Offline
Зарегистрирован: 28.05.2014

Легко если с двух пинов  и двух резисторов

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Denis_1704, когда говорт легко -то обычно пишут как именно :)  Это что-то новенькое, завтра утром подумаю, заинтересовало..

vk007
Offline
Зарегистрирован: 16.06.2015

dimax пишет:

Denis_1704, когда говорт легко -то обычно пишут как именно :)  Это что-то новенькое, завтра утром подумаю, заинтересовало..

это обычный ЦАП, только сопротивление резисторов подобрать надо

Denis_1704
Offline
Зарегистрирован: 28.05.2014

dimax, схема встрочку: PWM1 -   3кОм - сигнал (5в или 3в или 2в или 0) - 2 кОм - PWM2, но остальное скетч твари как хочешь

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

vk007, понятное дело что соединить 2 или 4 резистора -это обычный цап. Тут интересна программная сторона, эти 2 сигнала нужно взять с одного таймера, работающего в режиме phase  ( а может и  and frequency) correct. А тут уже придёться пошуршать несколькими страничками даташита...:)

PS: kennspark, кстати о какой частоте и скважности примерно речь шла?

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Именно так, на резисторах, абсолютно легко выдать нарисованные импульсы.
Легко сформировать на задержках или таймером, но не ШИМом.

Какая фаза? Делай раз-два-три.

Два выхода:
1 такт   один в "0", другой в "1".
2 такт оба в "0"
3 такт оба в "1".

 

vk007
Offline
Зарегистрирован: 16.06.2015

ТС спрашивал о возможности смодулировать сигнал, об использовании штатного ШИМа речи не шло

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Предлагаю создать новую тему:

Мигаем светодиодом без millis()

И даже линк придумал :  http://arduino.ru/tutorials/BlinkWithoutMillis

kennspark
Offline
Зарегистрирован: 24.07.2015

dimax пишет:

vk007, понятное дело что соединить 2 или 4 резистора -это обычный цап. Тут интересна программная сторона, эти 2 сигнала нужно взять с одного таймера, работающего в режиме phase  ( а может и  and frequency) correct. А тут уже придёться пошуршать несколькими страничками даташита...:)

PS: kennspark, кстати о какой частоте и скважности примерно речь шла?

Частота изменяемая так как это тахометр (0-500 Гц), со скважностью не скажу, но по осцилу D(Duty Cycle) примерно 80%, но могу и ошибаться =\

Denis_1704
Offline
Зарегистрирован: 28.05.2014

kennspark пишет:

Частота изменяемая так как это тахометр (0-500 Гц), со скважностью не скажу, но по осцилу D(Duty Cycle) примерно 80%, но могу и ошибаться =\

ну все просто осталось надыбать 2 резюка, частота медлянаая все через micros()

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

kennspark, Просто нужны данные для расчётов, у вас на картинке 2 периода. Один период состоит из трёх отрезков времени. (1) длительность среднего уровня. (2) длительность лог. 0 (3) длительность лог.1. Эти данные нужны для расчёта  и программирования таймера.

Joiner
Offline
Зарегистрирован: 04.09.2014

kennspark пишет:

Доброго здравия.

Интересует вопрос, выйдет ли смодулировать с помощью Arduino следующий сигнал:

Интересная задача. Мне кажется, что есть решение.

kennspark
Offline
Зарегистрирован: 24.07.2015

Сейчас вот получилось что-то подобное, собирал на коленке, нихрена нету делал через delay. Происходит деление на два, считаешь 50Гц, выходит 25Гц. Завтра приеду домой, постараюсь довести до ума =) Всем спасибо

 

ЗЫ. Тут заполнение на 50%.

dimax
dimax аватар
Offline
Зарегистрирован: 25.12.2013

Вот, набросал эскиз. Сигналы снимаются с 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() {}

Скриншот :)

Клапауций 999
Offline
Зарегистрирован: 06.06.2015

dimax пишет:

Вот, набросал эскиз. Сигналы снимаются с 9 и 10 ноги ардуино.

теперь всё тоже самое, пожалуйста, но с 17-ю ногами - бум делать 16-ти битный звук.

Radjah
Offline
Зарегистрирован: 06.08.2014

Клапауций 999 пишет:

dimax пишет:

Вот, набросал эскиз. Сигналы снимаются с 9 и 10 ноги ардуино.

теперь всё тоже самое, пожалуйста, но с 17-ю ногами - бум делать 16-ти битный звук.

И парсер WAVE еще.

kennspark
Offline
Зарегистрирован: 24.07.2015

Ещё раз всем спасибо! Как оказалось для тахометра не важна форма/напряжение сигнала, путем эксперементального тыка выяснил что тахометр распознаёт сигнал от 1 до 5 вольт, и любой скважности. В итоге можно обойтись без двух-вольтовой полки. На 50Гц 5в 50% заполнения тахометр показывает 1000об/мин.

ЗЫ. Сокращаем кол-во используемых ног, так как на ардуине требуется сочинить делитель для спидометра, и умножитель для тахометра.