FLProg
Вход на сайт
Логин:
Пароль:
Мы в VK
Поиск
Статистика


Яндекс.Метрика
Понедельник, 05.12.2016, 19:33
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход

Поиск по сайту


Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 212»
Модератор форума: support, Сергей 
Форум » Основной » Спросить у знатоков » Выдача пачки импульсов
Выдача пачки импульсов
stead
Дата: Среда, 09.12.2015, 13:53 | Сообщение # 1
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте! Подскажите пожалуйста какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:

digitalWrite(cmdPin, LOW);  //Write bit 0.
delayMicroseconds(bitDuration);
digitalWrite(cmdPin, LOW);  //Write bit 1
delayMicroseconds(bitDuration);
digitalWrite(cmdPin, LOW);  //Write bit 2
delayMicroseconds(bitDuration);digitalWrite(cmdPin, HIGH);  //Write bit 3
delayMicroseconds(bitDuration); digitalWrite(cmdPin, HIGH);  //Write bit 4
delayMicroseconds(bitDuration);digitalWrite(cmdPin, LOW);  //Write bit 5
delayMicroseconds(bitDuration);digitalWrite(cmdPin, LOW);  //Write bit 6
delayMicroseconds(bitDuration);digitalWrite(cmdPin, LOW);  //Write bit 7
delayMicroseconds(bitDuration);
 
DWD Дата: Среда, 09.12.2015, 17:41 | Сообщение # 2
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Вы лучше сообщите параметры пачки.

 
stead Дата: Среда, 09.12.2015, 18:29 | Сообщение # 3
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
 
DWD Дата: Среда, 09.12.2015, 20:58 | Сообщение # 4
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Например, так...
Прикрепления: proba.flp(124Kb)


 
stead Дата: Четверг, 10.12.2015, 21:43 | Сообщение # 5
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Спасибо огромное! Буду разбираться.

Добавлено (10.12.2015, 21:43)
---------------------------------------------
Всё хорошо, но данная схема генерит просто пачки импульсов с заданной переодичностью. А мне надо выдавать слово из восьми бит. В приведённом примере кода в начале топика записано слово 00011000. Вот как это прописать блоками? Прошу прощения если не корректно изясняюсь. sad

 
rw6cm Дата: Пятница, 11.12.2015, 01:34 | Сообщение # 6
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата stead ()
какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:00011000
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
Прикрепления: bit_00011000.flp(94Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
stead Дата: Пятница, 11.12.2015, 08:28 | Сообщение # 7
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Вот это то что нужно! Спасибо!
 
DWD Дата: Пятница, 11.12.2015, 14:16 | Сообщение # 8
Подполковник
Группа: Проверенные
Сообщений: 279
Награды: 12
Репутация: 5
Статус: Offline
Цитата stead ()
В приведённом примере кода в начале топика записано слово 00011000.
Ну, в кодах я не разбираюсь.
Нужно было ТЗ ставить полностью... smile


 
stead Дата: Пятница, 11.12.2015, 18:58 | Сообщение # 9
Рядовой
Группа: Проверенные
Сообщений: 5
Награды: 0
Репутация: 0
Статус: Offline
Цитата DWD ()
Ну, в кодах я не разбираюсь.Нужно было ТЗ ставить полностью...
Ваша схема дала мне определённые знания. В любом случае спасибо!
 
oren Дата: Воскресенье, 03.07.2016, 22:57 | Сообщение # 10
Сержант
Группа: Проверенные
Сообщений: 42
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте,собрал обе схемы ,но почему то работает только  # 4,  та схема,что в Сообщение # 6  на выходе нет ничего, хочу получить код  10 бит ,с возможностью управления позиционированием импульсов на временной оси.
 
rw6cm Дата: Среда, 06.07.2016, 07:41 | Сообщение # 11
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата oren ()
хочу получить код 10 бит ,с возможностью управления позиционированием импульсов на временной оси.
Но ведь эта тема не об этом )
Полагаю это связано с этой темой, тогда нужно что то такое (ниже).
Хотя думаю тяжко будет добиться от ардуины такой точности и стабильности временных параметров, каких там требуют.
Прикрепления: bit10.flp(397Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)
 
oren Дата: Среда, 06.07.2016, 19:39 | Сообщение # 12
Сержант
Группа: Проверенные
Сообщений: 42
Награды: 0
Репутация: 0
Статус: Offline
Большое спасибо,схема выдает пачки импульсов.Если Вам не трудно проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?
 
rw6cm Дата: Четверг, 07.07.2016, 10:07 | Сообщение # 13
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата oren ()
проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?

Начнем из того:
Нам нужен пакет кодированных импульсов.


Пакет (TimeSlot) состоит из 10 мест (Bins).
Одно место разбито на 16 ячеек длительностью 20 мк.сек., в интервале которого может находится импульс сигнала.
То есть кодировка сигнала на осциллографе должна выглядеть примерно так:


Собираем проект:


В генераторе ставим 10 мк.сек, в счетчике сброс на 16, тем самым формируем одно место.
В массив заносим кодировку на 10 мест, и с помощью второго счетчика формируем пакет.
т.е. пакет будет составлять 20х16х10=3200 мк.сек.
и на выходе получается такая форма.


Конечно, нюансов очень много, в которые надо вникать,
и сможет ли ардуина удерживать стабильность с точностью 20.83 мк.сек +- 0,015%
честно говоря сомневаюсь, а замерить не чем.
Прикрепления: 2199602.png(56Kb) · 4886566.png(15Kb) · 1471659.png(10Kb) · 5542231.jpg(59Kb) · bit10_1.flp(109Kb)


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Четверг, 07.07.2016, 10:08
 
oren Дата: Четверг, 07.07.2016, 19:16 | Сообщение # 14
Сержант
Группа: Проверенные
Сообщений: 42
Награды: 0
Репутация: 0
Статус: Offline
Спасибо,очень красивое решение,как я понимаю ,можно добавлять массивы с кодами и выбирать нужный с помощью переключателя.К сожалению с генератора  10мк.сек выходит импульс 50 мк.сек,он занимает сразу 2 bins и код не читается,попробую простой симметричный генератор заменить на собранный тут же на форуме в разделе:"Падение частоты генератора"вид импульса прилагаю.
Прикрепления: 7493015.jpg(123Kb)
 
rw6cm Дата: Пятница, 08.07.2016, 07:39 | Сообщение # 15
Генерал-майор
Группа: Проверенные
Сообщений: 478
Награды: 43
Репутация: 32
Статус: Offline
Цитата oren ()
К сожалению с генератора 10мк.сек выходит импульс 50 мк.сек,
Да, забыл совсем, в том году брал у сына цифровик, несколько вечеров потратил на эксперименты с ункой,
в частности с генераторами, и обратил внимание, что если  до 100 мк.сек, параметры еще как то бьются, то ниже расползаются.
А сигнал меньше 15 мк.сек(период 30) не получался.
Так что придется вам или выбирать более скоростные, или заточенные под это контроллеры, или формировать пакет на железной логике.
С вариантом замены генератора тоже не получится, ради эксперимента подал частоту с внешнего генератора, результат тот же.


PC, E8400, 3.5Gb, Win7-32, ver.FLP(portable)

Сообщение отредактировал rw6cm - Пятница, 08.07.2016, 07:50
 
Форум » Основной » Спросить у знатоков » Выдача пачки импульсов
Страница 1 из 212»
Поиск:

FLProg © 2016
Яндекс.Метрика