Как повторить последовательность импульсов?
- Муркиз
- Друг Кота
- Сообщения: 25780
- Зарегистрирован: Пн фев 09, 2009 22:19:49
- Откуда: Когда-то был прекрасный город для людей
Re: Как повторить последовательность импульсов?
Вообще-то там требуется лишь однократная передача пакета, не заметили ? Генерировать ШИМ не требуется...
- Реклама
Re: Как повторить последовательность импульсов?
наша картинка показывает, что у tiny13 всего 64 байт памяти... что для универсального копировальщика мало.
далее... смотрим сигнал...

для сравнения самый распространенный протокол ИК пультов NEC.

как видим разницы нет))

запись.
-берём любой МК.
-включаем прерывание... таймер... записываем в буфер... собираем байты...

всё работает))
получился анализатор ИК пультов ))


Добавлено after 16 minutes 35 seconds:
-если код не меняется то режим записи не нужен.
тогда остаётся только передать фиксированный код.
в этом случае всё упрощается... до уровня 1-го класса... ))

самый простой вариант - передавать обычным ногодрыгом)) через delay.

всё работает))

далее... смотрим сигнал...
для сравнения самый распространенный протокол ИК пультов NEC.
как видим разницы нет))
запись.
-берём любой МК.
-включаем прерывание... таймер... записываем в буфер... собираем байты...
всё работает))
получился анализатор ИК пультов ))
Добавлено after 16 minutes 35 seconds:
-если код не меняется то режим записи не нужен.
тогда остаётся только передать фиксированный код.
в этом случае всё упрощается... до уровня 1-го класса... ))
самый простой вариант - передавать обычным ногодрыгом)) через delay.
всё работает))
- Вложения
-
- )).jpg
- (52.45 КБ) 355 скачиваний
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Как повторить последовательность импульсов?
Классическая задачка лямзить (сниффер-ить) протокол обмена. Простейшее решение - ногодрыг. Ардуина с блинком щас есть у любого электронщика.
Re: Как повторить последовательность импульсов?
[uquote="roman.com",url="/forum/viewtopic.php?p=4783986#p4783986"]наша картинка показывает, что у tiny13 всего 64 байт памяти... что для универсального копировальщика мало.
самый простой вариант - передавать обычным ногодрыгом)) через delay.
[/uquote]
Немного уточняющей инфы.
Полностью пакет выглядит так.
Абсолютно идентичные пакеты следуют с интервалом 680 ms- с момента срабатывания сигнального устройства, и до окончания срабатывания.

Длительности импульсов . Сорри, что от руки.

Буду попробовать ногодрыгом...
самый простой вариант - передавать обычным ногодрыгом)) через delay.
Немного уточняющей инфы.
Полностью пакет выглядит так.
Абсолютно идентичные пакеты следуют с интервалом 680 ms- с момента срабатывания сигнального устройства, и до окончания срабатывания.
Длительности импульсов . Сорри, что от руки.
Буду попробовать ногодрыгом...
- Вложения
-
- photo_2026-01-29_23-21-08.jpg
- (100.15 КБ) 312 скачиваний
-
- photo_2026-01-29_23-23-41.jpg
- (225.07 КБ) 318 скачиваний
Re: Как повторить последовательность импульсов?
при удержании кнопки ИК пульта пульт непрерывно передаёт пакеты с интервалом ~100 мс.
короче... всё стандартно.

Добавлено after 26 minutes 4 seconds:
далее... берём все пульты в доме и читаем код...


самсунг... LG... TV-приставки... кондиционеры... и т.д.
везде протокол NEC... всё одинаково))
отличия только в преамбуле и кода устройства.

Добавлено after 4 minutes 22 seconds:
если писать не будем... а только воспроизводить... то пойдёт убой МК... даже tiny13.
далее... пишем программу... ногодрыг через delay. ))
...
PORTD.5=1;
delay_us(13);
PORTD.5=0;
delay_us(9);
...
delay_us(4500);
...
и т.д.

Добавлено after 11 minutes 8 seconds:
ну и в конце самое интересное))
-подключаем МК к интернету.
-пишем приложение для компа и телефона.
-нажимаем кнопочку на компе или телефоне... комп или телефон предаёт по интернету номер кнопки МК.
-МК принимает номер кнопки по интернету и передаёт ИК сигнал телевизору.

сидим на диване... управляем телевизором по интернету ))

всё работает.
прикольно )).

короче... всё стандартно.
Добавлено after 26 minutes 4 seconds:
далее... берём все пульты в доме и читаем код...
самсунг... LG... TV-приставки... кондиционеры... и т.д.
везде протокол NEC... всё одинаково))
отличия только в преамбуле и кода устройства.
Добавлено after 4 minutes 22 seconds:
если писать не будем... а только воспроизводить... то пойдёт убой МК... даже tiny13.
далее... пишем программу... ногодрыг через delay. ))
...
PORTD.5=1;
delay_us(13);
PORTD.5=0;
delay_us(9);
...
delay_us(4500);
...
и т.д.
Добавлено after 11 minutes 8 seconds:
ну и в конце самое интересное))
-подключаем МК к интернету.
-пишем приложение для компа и телефона.
-нажимаем кнопочку на компе или телефоне... комп или телефон предаёт по интернету номер кнопки МК.
-МК принимает номер кнопки по интернету и передаёт ИК сигнал телевизору.
сидим на диване... управляем телевизором по интернету ))
всё работает.
прикольно )).
- Реклама
Re: Как повторить последовательность импульсов?
[uquote="roman.com",url="/forum/viewtopic.php?p=4784045#p4784045"]при удержании кнопки ИК пульта пульт непрерывно передаёт пакеты с интервалом ~100 мс.
короче... всё стандартно.
[/uquote]
Только у меня не пульт
чуток тайминги другие и не ассемблер.
Перевариваю прочитанное. Пока лишь понял, что ногодрыгом проще. Интуитивно понимаю, но не более...
короче... всё стандартно.
Только у меня не пульт
Перевариваю прочитанное. Пока лишь понял, что ногодрыгом проще. Интуитивно понимаю, но не более...
Re: Как повторить последовательность импульсов?
[uquote="Муркиз",url="/forum/viewtopic.php?p=4783936#p4783936"]...Генерировать ШИМ не требуется...[/uquote]Вы не поняли. Нет никакого ШИМ, таймер отсчитывает 50мкс интервалы. Пример формирования меандра с полупериодом 50мкс на лапе PB0 и стробика 9мс на PB1 ниже. Писал вчера, когда новых вводных от стартера ещё не было.
Спойлер
Код: Выделить всё
.INCLUDE "tn13Adef.inc"
.equ Fo=1200000
.ORG 0x000
RESET:
RJMP START
;***********************************
.ORG 0x0006
T0_COMP_A:
RETI
;***********************************
START:
LDI R16,$FF
OUT DDRB,R16
OUT PORTB,R16
GO:
CLI
LDI ZH,HIGH(TB_FRAME*2)
LDI ZL,LOW(TB_FRAME*2)
LDI R16,LOW(50*Fo/1000000-1)
OUT OCR0A,R16
LDI R16,1<<SE ; режим SLEEP IDLE
OUT MCUCR,R16
LDI R16,1<<OCIE0A
OUT TIMSK0,R16
OUT TIFR0,R16
LDI R16,1<<WGM01
OUT TCCR0A,R16 ; режим CTC
LDI R16,0<<WGM02|1<<CS00
OUT TCCR0B,R16 ; режим CTC F/1
SEI
;********************
WAIT_50MKS:
SLEEP
LPM R0,Z+
OUT PORTB,R0
CPI ZL,LOW(TB_FRAME_END*2)
BRLO WAIT_50MKS
RJMP GO
.org 0x080
TB_FRAME:
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE,$FF,$FE
.DB $FF,$FE,$FF,$FC
TB_FRAME_END:
.EXIT
- linux_rulezz
- Вымогатель припоя
- Сообщения: 608
- Зарегистрирован: Пн сен 15, 2025 08:43:23
- Откуда: Маленький СССР посреди шариатской республики
Re: Как повторить последовательность импульсов?
Какие же ардуинщики забавные. Везде этот убогий delay() воткнуть пытаются, даже чтобы паузу на пару микросекунд сделать…
Есть же ТАЙМЕР! Вот и пусть себе ШИМ генерит. Да, вам там с вашей упоротостью не повезло: DMA нет, ну ок: меняйте длину импульса в прерывании таймера... Всяко меньше будет камень нагружаться, и помимо передачи пакета импульсов можно будет еще чем-нибудь заниматься полезным...
// но я таки крайне советую вменяемый МК взять, где и 32 бита, и таймеров полно нормальных, а не убогих.
Добавлено after 1 minute 59 seconds:
roman.com, тебе бы с таким рвением и упорством еще и на линукс перейти - вообще замечательно бы было!
Маздай - это гниль, днище…
Есть же ТАЙМЕР! Вот и пусть себе ШИМ генерит. Да, вам там с вашей упоротостью не повезло: DMA нет, ну ок: меняйте длину импульса в прерывании таймера... Всяко меньше будет камень нагружаться, и помимо передачи пакета импульсов можно будет еще чем-нибудь заниматься полезным...
// но я таки крайне советую вменяемый МК взять, где и 32 бита, и таймеров полно нормальных, а не убогих.
Добавлено after 1 minute 59 seconds:
roman.com, тебе бы с таким рвением и упорством еще и на линукс перейти - вообще замечательно бы было!
Маздай - это гниль, днище…
Windows must die!
Re: Как повторить последовательность импульсов?
да какая разница... всё везде работает одинаково))Dmitrudo писал(а):Только у меня не пульт
смотрим на картинку...
1. сначала идёт преамбула (или стартовый бит)... короткий и длинный импульс.
2. потом идет сам код... 0110010.
3. в конце какой-то импульс... предположительно стоп бит.
и чем это отличается от пульта от телевизора ?
ничем))
[uquote="Dmitrudo",url="/forum/viewtopic.php?p=4784052#p4784052"]Интуитивно понимаю, но не более...[/uquote]
далее... смотрим на картинку и пишем программу...
принцип простой...
выключили... подождали... включили... подождали... и т.д.
// преамбула:
PORTD.5=0; // выключили
delay_us(450); // подождали
PORTD.5=1; // включили
delay_us(11400); // подождали
// код 0110010:
// "0"
PORTD.5=0; // выключили
delay_us(400); // подождали
PORTD.5=1; // включили
delay_us(600); // подождали
// "1"
PORTD.5=0; // выключили
delay_us(400); // подождали
PORTD.5=1; // включили
delay_us(1140); // подождали
// "1"
PORTD.5=0; // выключили
delay_us(400); // подождали
PORTD.5=1; // включили
delay_us(1140); // подождали
// "0"
...
...
...
и т.д.
получили пакет.
это не ассемблер, это Си.
Си - это самый популярный и универсальный язык программирования ))
но можно написать и на ассемблере.
принцип работы тот же. разницы нет.
обычно ассемблер используют когда надо получить максимальную скорость.
например мы хотим подключить МК к интернету...
-берём любой МК.
-подключаем к интернету .
-пишем на ассемблере.
принцип тот же...
выключили... подождали... включили... подождали... и т.д.
получили пакет. максимальная скорость 10 Мбит/с.
всё работает.
прикольно))
а можно вообще не использовать никакие языки программирования.
открываем HEX-редактор и пишем машинные инструкции для МК... ))
принцип тот же...
выключили... подождали... включили... подождали... и т.д.
- Вложения
-
- картинка.jpg
- (113.63 КБ) 244 скачивания
Re: Как повторить последовательность импульсов?
ага и 2G ram чтоб линукс загрузить с гномом, ато отстой жеж, ногодрыгlinux_rulezz писал(а):но я таки крайне советую вменяемый МК взять, где и 32 бита, и таймеров полно нормальных, а не убогих.
щас программеры такие что sos проморгать светодиодом не могут без dma, у них 32-407 перегружается сразу от ногодрыга 1kHz
посему щас даже светеодиодные фонарики не смогут производить без 60nm техпроцесса мляу.
мне кажется что всетаки постепенно этому прийдет конец, но может и нет
но бурное развитие в том же направлении точно остановится
Re: Как повторить последовательность импульсов?
[uquote="roman.com",url="/forum/viewtopic.php?p=4784106#p4784106"]
выключили... подождали... включили... подождали... и т.д.
// преамбула:
PORTD.5=0; // выключили
delay_us(450); // подождали
PORTD.5=1; // включили
delay_us(11400); // подождали
// код 0110010:
// "0"
PORTD.5=0; // выключили
delay_us(400); // подождали
PORTD.5=1; // включили
delay_us(600); // подождали
получили пакет.
[/uquote]
Вот!
Вот, эта мысль и крутилась у меня в голове! Но выхода не нашла!
Вы доходчиво донесли принцип...
Спасибо, и- всем спасибо! Натолкнули на решение.
У меня тини 13а. Буду пробовать.
Си- осилю.
принцип простой...Dmitrudo писал(а):Только у меня не пульт
выключили... подождали... включили... подождали... и т.д.
// преамбула:
PORTD.5=0; // выключили
delay_us(450); // подождали
PORTD.5=1; // включили
delay_us(11400); // подождали
// код 0110010:
// "0"
PORTD.5=0; // выключили
delay_us(400); // подождали
PORTD.5=1; // включили
delay_us(600); // подождали
получили пакет.
Вот!
Вот, эта мысль и крутилась у меня в голове! Но выхода не нашла!
Вы доходчиво донесли принцип...
Спасибо, и- всем спасибо! Натолкнули на решение.
У меня тини 13а. Буду пробовать.
Си- осилю.
Re: Как повторить последовательность импульсов?
[uquote="AlexS4",url="/forum/viewtopic.php?p=4784173#p4784173"]посему щас даже светеодиодные фонарики не смогут производить без 60nm техпроцесса[/uquote]
Ну так как же без него - туда же ещё нужно RTOS впиндюрить

Ну так как же без него - туда же ещё нужно RTOS впиндюрить
- Муркиз
- Друг Кота
- Сообщения: 25780
- Зарегистрирован: Пн фев 09, 2009 22:19:49
- Откуда: Когда-то был прекрасный город для людей
Re: Как повторить последовательность импульсов?
А слабо написать функцию "мигнуть" светодиодом и скормить ей числовой массив из значений задержек ?
- Ariadna-on-Line
- Это не хвост, это антенна
- Сообщения: 1479
- Зарегистрирован: Вс май 13, 2012 00:01:54
Re: Как повторить последовательность импульсов?
[uquote="roman.com",url="/forum/viewtopic.php?p=4784045#p4784045"]сидим на диване... управляем телевизором по интернету ))[/uquote]Почему у унитазных бачков не делают дистанционное управление ? ...
- Муркиз
- Друг Кота
- Сообщения: 25780
- Зарегистрирован: Пн фев 09, 2009 22:19:49
- Откуда: Когда-то был прекрасный город для людей
Re: Как повторить последовательность импульсов?
Мокро там очень потому что...
Re: Как повторить последовательность импульсов?
[uquote="Ariadna-on-Line",url="/forum/viewtopic.php?p=4784413#p4784413"][uquote="roman.com",url="/forum/viewtopic.php?p=4784045#p4784045"]сидим на диване... управляем телевизором по интернету ))[/uquote]Почему у унитазных бачков не делают дистанционное управление ? ...[/uquote]
Товарищ! Да, вы- экстрасенс!
Вся эта канитель- как раз для управления... унитазным бачком!
Только громко не ржать, прошу!
Жизня заставила.
Старый дедушка в доме за собой уже не смывает. Помимо запаха еще вечно черная дыра сливная. Обработка кислотой дает эффект ровно на неделю- потом все снова зарастает камнем. Плюс финансово- на кислоты уходит больше, чем если бы бачок смывался сплошным потоком воды- круглые сутки.
Купил на озоне смывной механизм на моторчике, но он управляется- тоже рукой, то есть снова мимо, но к нему шла приблуда, которая по синезубу коннектится и срабатывает по отражению света от ИК-диода. Появляешься в луче, потом уходишь и через 6 сек она срабатывает.
Вот к ней я и делаю таймер, который будет помимо отражения, просто каждые пол часа смывать- вне зависимости.
Можно было проще сделать, типа таймер тупо замыкает что-то там и все срабатывает, без всяких там пачек импульсов, но прямых путей не ищем решил пойти вокруг.
Идея подкинутая Романом зашла.
И да, Тов. Муркиз пишет "...А слабо написать функцию "мигнуть" светодиодом и скормить ей числовой массив из значений задержек ?..."
Почти именно так и вышло.



Товарищ! Да, вы- экстрасенс!
Вся эта канитель- как раз для управления... унитазным бачком!
Только громко не ржать, прошу!
Жизня заставила.
Старый дедушка в доме за собой уже не смывает. Помимо запаха еще вечно черная дыра сливная. Обработка кислотой дает эффект ровно на неделю- потом все снова зарастает камнем. Плюс финансово- на кислоты уходит больше, чем если бы бачок смывался сплошным потоком воды- круглые сутки.
Купил на озоне смывной механизм на моторчике, но он управляется- тоже рукой, то есть снова мимо, но к нему шла приблуда, которая по синезубу коннектится и срабатывает по отражению света от ИК-диода. Появляешься в луче, потом уходишь и через 6 сек она срабатывает.
Вот к ней я и делаю таймер, который будет помимо отражения, просто каждые пол часа смывать- вне зависимости.
Можно было проще сделать, типа таймер тупо замыкает что-то там и все срабатывает, без всяких там пачек импульсов, но прямых путей не ищем решил пойти вокруг.
Идея подкинутая Романом зашла.
И да, Тов. Муркиз пишет "...А слабо написать функцию "мигнуть" светодиодом и скормить ей числовой массив из значений задержек ?..."
Почти именно так и вышло.
- Вложения
-
- Monosnap Digital Oscilloscope 2026-01-31 12.07.51.jpg
- (44.63 КБ) 132 скачивания
-
- Monosnap Digital Oscilloscope 2026-01-31 12.09.29.jpg
- (34.98 КБ) 146 скачиваний
-
- Monosnap Digital Oscilloscope 2026-01-31 12.05.30.jpg
- (58.44 КБ) 151 скачивание
Re: Как повторить последовательность импульсов?
Стесняюсь спросить, а зачечм там приблуда с синезубом и пультом, плюс теперь еще и эмулятор этого самого пульта ?
Это прям оверинжиниринг какой-то...
Хотя, с такой жаждой деятельности там точно нужен и RTOS, и линух, на худой конец - просто DMA.
Это прям оверинжиниринг какой-то...
Хотя, с такой жаждой деятельности там точно нужен и RTOS, и линух, на худой конец - просто DMA.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Re: Как повторить последовательность импульсов?
[uquote="abc",url="/forum/viewtopic.php?p=4784440#p4784440"]Стесняюсь спросить, а зачечм там приблуда с синезубом и пультом, плюс теперь еще и эмулятор этого самого пульта ?
Это прям оверинжиниринг какой-то...
Хотя, с такой жаждой деятельности там точно нужен и RTOS, и линух, на худой конец - просто DMA.[/uquote]
Согласен, не самое элегантное решение.
Приблуда (назовем ее- пульт) шла в комплекте со смывателем. Они коннектятся по синезубу. Пачки импульсов- это я так понимаю "ключ" для того, чтобы, к примеру конечно, в общественном китайском туалете приблуда (пульт) срабатывала именно на свой смыватель, а не на все сразу.
Вот этот пульт я хотел дополнить таймером, чтобы смывала- по времени, вне зависимости от посещений, путем отсылки пачки импульсов на смыватель.
Вы спросите: а чего не поставить таймер на сам смыватель и не управлять двигателем- напрямую? Так мне показалось сложней. Я могу расписать, конечно почему, но самое главное, как мне показалось- в этом случае мог быть конфликт между приблудой (пультом) и самой смывалкой, когда они решат крутить мотор одновременно, но в разные напрвления. В общем- сложно...
Линух- пропустим. Два года я пытался делать вид, что мне его "хватает на все", но эмулятор винды работал в нем постоянно. В итоге я решил, что если так, то лучше в случае надобности эмулировать линукс и вернул винду. И вот что забавно... за много лет эмулировать линукс мне не понадобилось- ни разу. Странно, понимаю, но объяснить не могу. Хотя, на работе поставил и люди работаею на нем!
Это прям оверинжиниринг какой-то...
Хотя, с такой жаждой деятельности там точно нужен и RTOS, и линух, на худой конец - просто DMA.[/uquote]
Согласен, не самое элегантное решение.
Приблуда (назовем ее- пульт) шла в комплекте со смывателем. Они коннектятся по синезубу. Пачки импульсов- это я так понимаю "ключ" для того, чтобы, к примеру конечно, в общественном китайском туалете приблуда (пульт) срабатывала именно на свой смыватель, а не на все сразу.
Вот этот пульт я хотел дополнить таймером, чтобы смывала- по времени, вне зависимости от посещений, путем отсылки пачки импульсов на смыватель.
Вы спросите: а чего не поставить таймер на сам смыватель и не управлять двигателем- напрямую? Так мне показалось сложней. Я могу расписать, конечно почему, но самое главное, как мне показалось- в этом случае мог быть конфликт между приблудой (пультом) и самой смывалкой, когда они решат крутить мотор одновременно, но в разные напрвления. В общем- сложно...
Линух- пропустим. Два года я пытался делать вид, что мне его "хватает на все", но эмулятор винды работал в нем постоянно. В итоге я решил, что если так, то лучше в случае надобности эмулировать линукс и вернул винду. И вот что забавно... за много лет эмулировать линукс мне не понадобилось- ни разу. Странно, понимаю, но объяснить не могу. Хотя, на работе поставил и люди работаею на нем!
Re: Как повторить последовательность импульсов?
Если от механизма смыва не приходит какая-то обратная связь (через проточные датчики, токовые или какие-либо другие), то - да, поставить именно таймер управления этим механизмом, будет проще всего.
>(*.*)<
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
Котище огромно, ушасто, пушисто, глазасто, зубасто, колючелапо и мявай. (c)
- Муркиз
- Друг Кота
- Сообщения: 25780
- Зарегистрирован: Пн фев 09, 2009 22:19:49
- Откуда: Когда-то был прекрасный город для людей
Re: Как повторить последовательность импульсов?
Просто каждый час импульс на исполнительное устройство может и платка таймера 555 без проблем и без конфликтов вообще-то.
Но вот сколько воды зря утечет ... Нам к потопу готовится, ковчег строить ?
Но вот сколько воды зря утечет ... Нам к потопу готовится, ковчег строить ?
Последний раз редактировалось Муркиз Сб янв 31, 2026 17:14:54, всего редактировалось 1 раз.



