Выдача пачки импульсов
Выдача пачки импульсов
Здравствуйте! Подскажите пожалуйста какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:
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);
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);
Выдача пачки импульсов
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
Выдача пачки импульсов
Например, так...
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Выдача пачки импульсов
Спасибо огромное! Буду разбираться.
Добавлено (10.12.2015, 21:43)
---------------------------------------------
Всё хорошо, но данная схема генерит просто пачки импульсов с заданной переодичностью. А мне надо выдавать слово из восьми бит. В приведённом примере кода в начале топика записано слово 00011000. Вот как это прописать блоками? Прошу прощения если не корректно изясняюсь.
Добавлено (10.12.2015, 21:43)
---------------------------------------------
Всё хорошо, но данная схема генерит просто пачки импульсов с заданной переодичностью. А мне надо выдавать слово из восьми бит. В приведённом примере кода в начале топика записано слово 00011000. Вот как это прописать блоками? Прошу прощения если не корректно изясняюсь.

- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Выдача пачки импульсов
stead писал(а):какие блоки надо использовать для получения на выходе пачки импульсов? Чтоб получился такой код:00011000
Длительность одного бита 104 микросекунды. Восемь бит, затем пауза 5 милисекунд.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Выдача пачки импульсов
Ну, в кодах я не разбираюсь.stead писал(а):В приведённом примере кода в начале топика записано слово 00011000.
Нужно было ТЗ ставить полностью...

Выдача пачки импульсов
Ваша схема дала мне определённые знания. В любом случае спасибо!DWD писал(а):Ну, в кодах я не разбираюсь.Нужно было ТЗ ставить полностью...
Выдача пачки импульсов
Здравствуйте,собрал обе схемы ,но почему то работает только # 4, та схема,что в Сообщение # 6 на выходе нет ничего, хочу получить код 10 бит ,с возможностью управления позиционированием импульсов на временной оси.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Выдача пачки импульсов
Но ведь эта тема не об этом )oren писал(а):хочу получить код 10 бит ,с возможностью управления позиционированием импульсов на временной оси.
Полагаю это связано с этой темой, тогда нужно что то такое (ниже).
Хотя думаю тяжко будет добиться от ардуины такой точности и стабильности временных параметров, каких там требуют.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Win10-64, FLProg (portable)
Выдача пачки импульсов
Большое спасибо,схема выдает пачки импульсов.Если Вам не трудно проясните ,пожалуйста,каким образом я могу изменить длительность импульса (20 микросекунд) установить общую длительность "пачки"-3,6 миллисекунды ?
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Выдача пачки импульсов
Начнем из того: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)
Выдача пачки импульсов
Спасибо,очень красивое решение,как я понимаю ,можно добавлять массивы с кодами и выбирать нужный с помощью переключателя.К сожалению с генератора 10мк.сек выходит импульс 50 мк.сек,он занимает сразу 2 bins и код не читается,попробую простой симметричный генератор заменить на собранный тут же на форуме в разделе:"Падение частоты генератора"вид импульса прилагаю.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Выдача пачки импульсов
Да, забыл совсем, в том году брал у сына цифровик, несколько вечеров потратил на эксперименты с ункой,oren писал(а):К сожалению с генератора 10мк.сек выходит импульс 50 мк.сек,
в частности с генераторами, и обратил внимание, что если до 100 мк.сек, параметры еще как то бьются, то ниже расползаются.
А сигнал меньше 15 мк.сек(период 30) не получался.
Так что придется вам или выбирать более скоростные, или заточенные под это контроллеры, или формировать пакет на железной логике.
С вариантом замены генератора тоже не получится, ради эксперимента подал частоту с внешнего генератора, результат тот же.
Последний раз редактировалось rw6cm 08 июл 2016, 07:50, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Выдача пачки импульсов
Ребят, не мне вас учить, но хотел обратить ваше внимание на грамматические ошибки.
мк.сек - это, я так понимаю, микросекунды?
Предлагаю правильный вариант: в математике обозначение величин выглядят так (на примере частот):
ГГц - гигагнрцы
МГц - мегагерцы
кГц - килогерцы
Гц - герцы
0 и все что ниже нуля (на примере емкости):
мФ - милифарады
мкФ - микрофарады
нФ - нанофарады
пФ -пикофарады
т. е. приставки:
Г - гига
М - мега
к - кило
0
м - мили
мк - микро
н - нано
п - пико
добавляются к названию величины измерения.
Это все справедливо к любым величинам измерений, и секундам в том числе. Название единицы измерения всегда пишется через пробел после значения и с большой буквы + приставка. Если миллисекунды, то - мС, если микросекунды, то - мкС.
Не примите в обиду, но так читать удобней. Когда в тексте встречаешь мк.сек, то приходится замедлять скорость чтения и присмотреться что это за величина, что бы не ошибиться. Мы же все читаем не по буквам, а визуально помня как слово выглядит. Тоже и с величинами, встречается в тексте незнакомая надпись, притормаживаешь, что бы по буквам прочитать.
мк.сек - это, я так понимаю, микросекунды?
Предлагаю правильный вариант: в математике обозначение величин выглядят так (на примере частот):
ГГц - гигагнрцы
МГц - мегагерцы
кГц - килогерцы
Гц - герцы
0 и все что ниже нуля (на примере емкости):
мФ - милифарады
мкФ - микрофарады
нФ - нанофарады
пФ -пикофарады
т. е. приставки:
Г - гига
М - мега
к - кило
0
м - мили
мк - микро
н - нано
п - пико
добавляются к названию величины измерения.
Это все справедливо к любым величинам измерений, и секундам в том числе. Название единицы измерения всегда пишется через пробел после значения и с большой буквы + приставка. Если миллисекунды, то - мС, если микросекунды, то - мкС.
Не примите в обиду, но так читать удобней. Когда в тексте встречаешь мк.сек, то приходится замедлять скорость чтения и присмотреться что это за величина, что бы не ошибиться. Мы же все читаем не по буквам, а визуально помня как слово выглядит. Тоже и с величинами, встречается в тексте незнакомая надпись, притормаживаешь, что бы по буквам прочитать.
- rw6cm
- Полковник
- Сообщения: 2372
- Зарегистрирован: 06 сен 2015, 20:25
- Имя: Владимир
- Поблагодарили: 41 раз
Выдача пачки импульсов
Хорошо. Просто так выделяю на что обратить внимания ).Сергей писал(а):но так читать удобней.
Но если уж писать правильно то мкс (все малыми буквами)
С большой буквы пишут единицы измерения названные в честь ученых их открывших.
Последний раз редактировалось rw6cm 09 июл 2016, 07:21, всего редактировалось 1 раз.
Win10-64, FLProg (portable)
Выдача пачки импульсов
Спасибо Сергей,обычно пишу "MHz"."us",но если писать кириллицей,то уж все до конца,
Выдача пачки импульсов
По теме "Создание пачки импульсов" хочу попробовать такую схему,генератор выдает нужную частоту ,хотя не стабильно,в воскресенье попробую,
У вас нет необходимых прав для просмотра вложений в этом сообщении.
- Сергей
- Лейтенант
- Сообщения: 578
- Зарегистрирован: 31 авг 2015, 15:06
- Имя: Сергей
- Контактная информация:
Выдача пачки импульсов
Точно! Это уже я ошибся).rw6cm писал(а):С большой буквы пишут единицы измерения названные в честь ученых их открывших.
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 3 гостя