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

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

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

Сообщение stead »

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

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 окт 2015, 13:51
Откуда: Кривой Рог

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

Сообщение DWD »

Вы лучше сообщите параметры пачки.
Изображение
stead
Рядовой
Сообщения: 5
Зарегистрирован: 09 дек 2015, 13:14
Откуда: гомель

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

Сообщение stead »

Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

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

Сообщение DWD »

Например, так...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Изображение
stead
Рядовой
Сообщения: 5
Зарегистрирован: 09 дек 2015, 13:14
Откуда: гомель

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

Сообщение stead »

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

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

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

Сообщение rw6cm »

stead писал(а):какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:00011000
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
stead
Рядовой
Сообщения: 5
Зарегистрирован: 09 дек 2015, 13:14
Откуда: гомель

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

Сообщение stead »

Вот это то что нужно! Спасибо!
DWD
Лейтенант
Сообщения: 353
Зарегистрирован: 18 окт 2015, 13:51
Откуда: Кривой Рог

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

Сообщение DWD »

stead писал(а):В приведённом примере кода в начале топика записано слово 00011000.
Ну, в кодах я не разбираюсь.
Нужно было ТЗ ставить полностью... Изображение
Изображение
stead
Рядовой
Сообщения: 5
Зарегистрирован: 09 дек 2015, 13:14
Откуда: гомель

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

Сообщение stead »

DWD писал(а):Ну, в кодах я не разбираюсь.Нужно было ТЗ ставить полностью...
Ваша схема дала мне определённые знания. В любом случае спасибо!
oren
Рядовой
Сообщения: 38
Зарегистрирован: 07 сен 2015, 21:02

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

Сообщение oren »

Здравствуйте,собрал обе схемы ,но почему то работает только  # 4,  та схема,что в Сообщение # 6  на выходе нет ничего, хочу получить код  10 бит ,с возможностью управления позиционированием импульсов на временной оси.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

oren писал(а):хочу получить код 10 бит ,с возможностью управления позиционированием импульсов на временной оси.
Но ведь эта тема не об этом )
Полагаю это связано с этой темой, тогда нужно что то такое (ниже).
Хотя думаю тяжко будет добиться от ардуины такой точности и стабильности временных параметров, каких там требуют.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
oren
Рядовой
Сообщения: 38
Зарегистрирован: 07 сен 2015, 21:02

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

Сообщение oren »

Большое спасибо,схема выдает пачки импульсов.Если Вам не трудно проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

oren писал(а):проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?
Начнем из того:
Нам нужен пакет кодированных импульсов.
[spoiler=Спойлер][/spoiler]
Пакет (TimeSlot) состоит из 10 мест (Bins).
Одно место разбито на 16 ячеек длительностью 20 мк.сек., в интервале которого может находится импульс сигнала.
То есть кодировка сигнала на осциллографе должна выглядеть примерно так:
[spoiler=Спойлер][/spoiler]
Собираем проект:
[spoiler=Спойлер][/spoiler]
В генераторе ставим 10 мк.сек, в счетчике сброс на 16, тем самым формируем одно место.
В массив заносим кодировку на 10 мест, и с помощью второго счетчика формируем пакет.
т.е. пакет будет составлять 20х16х10=3200 мк.сек.
и на выходе получается такая форма.
[spoiler=Спойлер][/spoiler]
Конечно, нюансов очень много, в которые надо вникать,
и сможет ли ардуина удерживать стабильность с точностью 20.83 мк.сек +- 0,015%
честно говоря сомневаюсь, а замерить не чем.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось rw6cm 07 июл 2016, 10:08, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
oren
Рядовой
Сообщения: 38
Зарегистрирован: 07 сен 2015, 21:02

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

Сообщение oren »

Спасибо,очень красивое решение,как я понимаю ,можно добавлять массивы с кодами и выбирать нужный с помощью переключателя.К сожалению с генератора  10мк.сек выходит импульс 50 мк.сек,он занимает сразу 2 bins и код не читается,попробую простой симметричный генератор заменить на собранный тут же на форуме в разделе:"Падение частоты генератора"вид импульса прилагаю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

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

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

Сообщение Сергей »

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

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

Не примите в обиду, но так читать удобней. Когда в тексте встречаешь мк.сек, то приходится замедлять скорость чтения и присмотреться что это за величина, что бы не ошибиться. Мы же все читаем не по буквам, а визуально помня как слово выглядит. Тоже и с величинами, встречается в тексте незнакомая надпись, притормаживаешь, что бы по буквам прочитать.
Аватара пользователя
rw6cm
Полковник
Сообщения: 2372
Зарегистрирован: 06 сен 2015, 20:25
Имя: Владимир
Поблагодарили: 41 раз

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

Сообщение rw6cm »

Сергей писал(а):но так читать удобней.
Хорошо. Просто так выделяю на что обратить внимания ).
Но если уж писать правильно то   мкс   (все малыми буквами)
С большой буквы пишут единицы измерения названные в честь ученых их открывших.
Последний раз редактировалось rw6cm 09 июл 2016, 07:21, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
oren
Рядовой
Сообщения: 38
Зарегистрирован: 07 сен 2015, 21:02

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

Сообщение oren »

Спасибо Сергей,обычно пишу "MHz"."us",но если писать кириллицей,то уж все до конца,
oren
Рядовой
Сообщения: 38
Зарегистрирован: 07 сен 2015, 21:02

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

Сообщение oren »

По теме "Создание пачки импульсов" хочу попробовать такую схему,генератор выдает нужную частоту ,хотя не стабильно,в воскресенье попробую,
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
Сергей
Лейтенант
Сообщения: 578
Зарегистрирован: 31 авг 2015, 15:06
Имя: Сергей
Контактная информация:

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

Сообщение Сергей »

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

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

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя