Выдача пачки импульсов

На этом форуме Вы можете задать вопросы знатокам программы и автору.
stead
Рядовой
Сообщения: 5
Зарегистрирован: 09.12.2015{, 13:14}
Репутация: 0
Откуда: гомель

Выдача пачки импульсов

#1

Сообщение stead » 09.12.2015{, 13:53}

Здравствуйте! Подскажите пожалуйста какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:

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
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Выдача пачки импульсов

#2

Сообщение DWD » 09.12.2015{, 17:41}

Вы лучше сообщите параметры пачки.
Изображение

stead
Рядовой
Сообщения: 5
Зарегистрирован: 09.12.2015{, 13:14}
Репутация: 0
Откуда: гомель

Выдача пачки импульсов

#3

Сообщение stead » 09.12.2015{, 18:29}

Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Выдача пачки импульсов

#4

Сообщение DWD » 09.12.2015{, 20:58}

Например, так...
Вложения
proba.flp
(124.19 КБ) 52 скачивания
Изображение

stead
Рядовой
Сообщения: 5
Зарегистрирован: 09.12.2015{, 13:14}
Репутация: 0
Откуда: гомель

Выдача пачки импульсов

#5

Сообщение stead » 10.12.2015{, 21:43}

Спасибо огромное! Буду разбираться.

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

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Выдача пачки импульсов

#6

Сообщение rw6cm » 11.12.2015{, 01:34}

stead писал(а):какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:00011000
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
Вложения
bit_00011000.flp
(94.17 КБ) 56 скачиваний
Win10-64, FLProg (portable)

stead
Рядовой
Сообщения: 5
Зарегистрирован: 09.12.2015{, 13:14}
Репутация: 0
Откуда: гомель

Выдача пачки импульсов

#7

Сообщение stead » 11.12.2015{, 08:28}

Вот это то что нужно! Спасибо!

DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18.10.2015{, 13:51}
Репутация: 5
Откуда: Кривой Рог

Выдача пачки импульсов

#8

Сообщение DWD » 11.12.2015{, 14:16}

stead писал(а):В приведённом примере кода в начале топика записано слово 00011000.
Ну, в кодах я не разбираюсь.
Нужно было ТЗ ставить полностью... Изображение
Изображение

stead
Рядовой
Сообщения: 5
Зарегистрирован: 09.12.2015{, 13:14}
Репутация: 0
Откуда: гомель

Выдача пачки импульсов

#9

Сообщение stead » 11.12.2015{, 18:58}

DWD писал(а):Ну, в кодах я не разбираюсь.Нужно было ТЗ ставить полностью...
Ваша схема дала мне определённые знания. В любом случае спасибо!

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#10

Сообщение oren » 03.07.2016{, 22:57}

Здравствуйте,собрал обе схемы ,но почему то работает только  # 4,  та схема,что в Сообщение # 6  на выходе нет ничего, хочу получить код  10 бит ,с возможностью управления позиционированием импульсов на временной оси.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Выдача пачки импульсов

#11

Сообщение rw6cm » 06.07.2016{, 07:41}

oren писал(а):хочу получить код 10 бит ,с возможностью управления позиционированием импульсов на временной оси.
Но ведь эта тема не об этом )
Полагаю это связано с этой темой, тогда нужно что то такое (ниже).
Хотя думаю тяжко будет добиться от ардуины такой точности и стабильности временных параметров, каких там требуют.
Вложения
bit10.flp
(397.31 КБ) 51 скачивание
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#12

Сообщение oren » 06.07.2016{, 19:39}

Большое спасибо,схема выдает пачки импульсов.Если Вам не трудно проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Выдача пачки импульсов

#13

Сообщение rw6cm » 07.07.2016{, 10:07}

oren писал(а):проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?
Начнем из того:
Нам нужен пакет кодированных импульсов.

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

СпойлерПоказать
Собираем проект:

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

СпойлерПоказать
Конечно, нюансов очень много, в которые надо вникать,
и сможет ли ардуина удерживать стабильность с точностью 20.83 мк.сек +- 0,015%
честно говоря сомневаюсь, а замерить не чем.
Вложения
bit10_1.flp
(108.56 КБ) 53 скачивания
5542231.jpg
1471659.png
4886566.png
2199602.png
Последний раз редактировалось rw6cm 07.07.2016{, 10:08}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#14

Сообщение oren » 07.07.2016{, 19:16}

Спасибо,очень красивое решение,как я понимаю ,можно добавлять массивы с кодами и выбирать нужный с помощью переключателя.К сожалению с генератора  10мк.сек выходит импульс 50 мк.сек,он занимает сразу 2 bins и код не читается,попробую простой симметричный генератор заменить на собранный тут же на форуме в разделе:"Падение частоты генератора"вид импульса прилагаю.
Вложения
7493015.jpg

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Выдача пачки импульсов

#15

Сообщение rw6cm » 08.07.2016{, 07:39}

oren писал(а):К сожалению с генератора 10мк.сек выходит импульс 50 мк.сек,
Да, забыл совсем, в том году брал у сына цифровик, несколько вечеров потратил на эксперименты с ункой,
в частности с генераторами, и обратил внимание, что если  до 100 мк.сек, параметры еще как то бьются, то ниже расползаются.
А сигнал меньше 15 мк.сек(период 30) не получался.
Так что придется вам или выбирать более скоростные, или заточенные под это контроллеры, или формировать пакет на железной логике.
С вариантом замены генератора тоже не получится, ради эксперимента подал частоту с внешнего генератора, результат тот же.
Последний раз редактировалось rw6cm 08.07.2016{, 07:50}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Выдача пачки импульсов

#16

Сообщение Сергей » 08.07.2016{, 22:02}

Ребят, не мне вас учить, но хотел обратить ваше внимание на грамматические ошибки.
мк.сек - это, я так понимаю, микросекунды?
Предлагаю правильный вариант: в математике обозначение величин выглядят так (на примере частот):
ГГц - гигагнрцы
МГц - мегагерцы
кГц - килогерцы
Гц - герцы
0 и все что ниже нуля (на примере емкости):
мФ - милифарады
мкФ - микрофарады
нФ - нанофарады
пФ -пикофарады
т. е. приставки:
Г - гига
М - мега
к - кило
0
м - мили
мк - микро
н - нано
п - пико
добавляются к названию величины измерения.

Это все справедливо к любым величинам измерений, и секундам в том числе. Название единицы измерения всегда пишется через пробел после значения и с большой буквы + приставка. Если миллисекунды, то - мС, если микросекунды, то - мкС.

Не примите в обиду, но так читать удобней. Когда в тексте встречаешь мк.сек, то приходится замедлять скорость чтения и присмотреться что это за величина, что бы не ошибиться. Мы же все читаем не по буквам, а визуально помня как слово выглядит. Тоже и с величинами, встречается в тексте незнакомая надпись, притормаживаешь, что бы по буквам прочитать.

Аватара пользователя
rw6cm
Полковник
Сообщения: 2283
Зарегистрирован: 06.09.2015{, 20:25}
Репутация: 334
Имя: Владимир

Выдача пачки импульсов

#17

Сообщение rw6cm » 09.07.2016{, 06:58}

Сергей писал(а):но так читать удобней.
Хорошо. Просто так выделяю на что обратить внимания ).
Но если уж писать правильно то   мкс   (все малыми буквами)
С большой буквы пишут единицы измерения названные в честь ученых их открывших.
Последний раз редактировалось rw6cm 09.07.2016{, 07:21}, всего редактировалось 1 раз.
Win10-64, FLProg (portable)

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#18

Сообщение oren » 09.07.2016{, 08:15}

Спасибо Сергей,обычно пишу "MHz"."us",но если писать кириллицей,то уж все до конца,

oren
Рядовой
Сообщения: 38
Зарегистрирован: 07.09.2015{, 21:02}
Репутация: 0

Выдача пачки импульсов

#19

Сообщение oren » 09.07.2016{, 08:24}

По теме "Создание пачки импульсов" хочу попробовать такую схему,генератор выдает нужную частоту ,хотя не стабильно,в воскресенье попробую,
Вложения
bit10_out_gen.flp
(185.22 КБ) 55 скачиваний

Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31.08.2015{, 15:06}
Репутация: 6
Имя: Сергей
Контактная информация:

Выдача пачки импульсов

#20

Сообщение Сергей » 09.07.2016{, 10:23}

rw6cm писал(а):С большой буквы пишут единицы измерения названные в честь ученых их открывших.
Точно! Это уже я ошибся).

Ответить

Вернуться в «Спросить у знатоков»