Поклонники продукции Microchip Technology Inc тусуются тут.
Ответить

Частота моргания светодиода

Чт окт 21, 2021 15:47:46

Добрейший день.

Мне нужно задать частоту включения и выключения светодиода

+8850, -4450 + 550, -1650 + 600, -1650 + 550, - 550
+ 600, - 550 + 550, - 550 + 550, - 550 + 600, - 500
+ 600, -1650 + 550, -1650 + 600, - 550 + 550, -1650
+ 600, - 500 + 600, -1650 + 550, - 550 + 600, -1650
+ 550, - 550 + 550, - 550 + 600, - 550 + 550, - 550
+ 550, - 550 + 550, -1700 + 550, - 550 + 550, - 550
+ 550, -1700 + 550, -1650 + 550, -1700 + 550, -1650
+ 550, -1700 + 550, - 550 + 550, -1700 + 550, -1650
+ 550, - 550 + 550

Это частота в МИКРОСЕКУНДАХ - На одном из форумов я видел в начале пик процессора задали частоту 4000000 и 0,1 секунда равнялась 100000 цифре (Может Я и путаю чтото )

Подскажите пожалуста для 16f628a (моему любимому ПИКу) как можно задать такие микросекунды

Тоесть мне нужно в начале включить на 8850 микросекунд , потом отключить на 4450 микросекуд , потом включить на 550 микросекунд выключить 1650 микросекунд


Вобщем чтобы мои цыфры якобы подошли (Я опять могу ошибаться) мне порекомендовали сделать эту частоту 56 000

Re: Частота моргания светодиода

Чт окт 21, 2021 17:25:04

... Мне нужно задать частоту включения и выключения светодиода ...

Может быть. Но если не дадите полную информацию (что это за устройство, для чего будет использоваться, полный или предполагаемый x-ки ...), то тогда "рискуем"/"рискуете" неоднократно начинать разрабатывать свою программу "с нуля". (частично пользуюсь переводчиком БГ->РУ)

Re: Частота моргания светодиода

Чт окт 21, 2021 21:16:16

Вот,может поможет такая программа

Ну да, это если ручками рассчитывать каждую задержку.
1en2 правильно подметил - таблица длительностей кратна 50-ти... Примерно так:
Код:
const int on_off[] = {
 8850, 4450, 550, 1650, 600, 1650, 550,  550,
  600,  550, 550,  550, 550,  550, 600,  500,
  600, 1650, 550, 1650, 600,  550, 550, 1650,
  600,  500, 600, 1650, 550,  550, 600, 1650,
  550,  550, 550,  550, 600,  550, 550,  550,
  550,  550, 550, 1700, 550,  550, 550,  550,
  550, 1700, 550, 1650, 550, 1700, 550, 1650,
  550, 1700, 550,  550, 550, 1700, 550, 1650,
  550,  550, 550
}

for (char i = 0; i < sizeof(on_off) / sizeof(on_off[0]); i++) {
  toggle(LED);
  int d = on_off[i] / 50;
  while (d--)
    delay_us(50);
}

Re: Частота моргания светодиода

Чт окт 21, 2021 22:55:44

хоть показал бы скан, откуда ты эти длительности снял. Вот эти пары 1700 (1650) и 600(550) это период. Соотношение в периоде указывает на то, что передаётся 0 or 1. И не надо там таблицы делать. Выставляешь свои 32 бита и двигаешь их влево в порт. Ну а уже по флагу C загружаешь либо 1700, либо 600.
Вот только есть один момент - ты не можешь просто включать/выключать пин (светодиод), ты должен включать/отключать модуль шим, который в свою очередь настроен на частоту нужной тебе модуляции.

Re: Частота моргания светодиода

Пт окт 22, 2021 06:06:10

Спасибо за ответы скан снял через Ардуино пульт от ТВ - не хотел всем загромождать Вас уважаемые


Мне всё что нужно это повторить моргания светодиода - в тектовом документе - это Я 3 раза нажал на кнопку.


Также есть вот такая вещ unsigned int data = 0xC1AA09F6;

это 16 ричный код - Мне так обьяснили если делать пульт через ардуино то этого кода достаточно чтобы светодиод отработал правильно


Может и в пике можно будет както указать включение светодиода по такому коду - или же сконвертировать под другой тип цифры - ну Я так понял двоичный (но он не пойдёт ) так как незнаем сами задержки

А выше стоящие цыфры и есть сами логические нули и единицы поэтому Я Вам и дал кусок того.

Спасибо всем кто участвует )))
Вложения
пульт.txt
(3.09 KiB) Скачиваний: 100

Re: Частота моргания светодиода

Пт окт 22, 2021 06:30:37

Судя по тому, что вижу, это команды пульта дистанционного управления NEK.
Есть давно написанные библиотеки, которые прекрасно работают (напр. на Arduino).
Все здесь: Arduino-IRremote: https://github.com/Arduino-IRremote/Arduino-IRremote

например в версии 2.0.1 (которым я пользовался долгое время):
https://github.com/Arduino-IRremote/Ard ... ree/stable

Ваши числа для времен в примере (пульт.txt) присутствуют в стандартных командах NEC
в ir_NEC.cpp:
Код:
#define NEC_BITS          32
#define NEC_HDR_MARK    9000
#define NEC_HDR_SPACE   4500
#define NEC_BIT_MARK     560
#define NEC_ONE_SPACE   1690
#define NEC_ZERO_SPACE   560
#define NEC_RPT_SPACE   2250


Можете использовать информацию из примеров: напр. IRsendDemo (отправить код, напр. 0xC1AA09F6) или IRsendRawDemo (RAW, "ручное", через время импульса), но Вам все еще нужны подробности о выбранном методе, напр. "carrier frequency for the NEC protocol":

IRsendRawDemo.ino
https://github.com/Arduino-IRremote/Ard ... awDemo.ino

Вам необходимо собрать управляющие фрагменты IRremote NEC и код для требований к Вашей новой программе: например несколько кнопок, экран, мигающие диоды, инфракрасный светодиод ...
Последний раз редактировалось veso74 Пт окт 22, 2021 06:48:03, всего редактировалось 2 раз(а).

Re: Частота моргания светодиода

Пт окт 22, 2021 06:39:16

То что без проблем можно использовать на Ардуинко это понятно


Задача другая использовать PIC 16F628A


Нужен кусок правильного кода по задеркам включения и выключения



Я планировал по типу вот так

symbol S = PORTA.0
TRISA=%11111110
MAIN:
S=1
pause 1000
S=0
pause 500
S=1
pause 500
S=0
PAUSE 500
S=1
PAUSE 500
goto main
end

Это чтото типа примерно

Добавлено after 35 seconds:
без всяких заморочек
Последний раз редактировалось SpirkinLAB Пт окт 22, 2021 06:48:24, всего редактировалось 1 раз.

Re: Частота моргания светодиода

Пт окт 22, 2021 06:42:26

Правда, Вы можете "заново открыть для себя колесо" :/.
Последний раз редактировалось veso74 Пт окт 22, 2021 07:03:27, всего редактировалось 1 раз.

Re: Частота моргания светодиода

Пт окт 22, 2021 06:47:51

У меня в коде будет реализовано следующее

при начале работы - Регистратура включает свет у себя на рабочем месте , с помощью Фото резистора и пару транзисторов будет подаваться сигнал обнаружения света и логической единицы на вход , как пик увидет логическую единицу срабатывает программа - 1 раз нажатия кнопки на пульте - тоесть 1 раз проганяется код который по факту от пульта выше стоящий и дальше начинает ожидать когда пропадёт логическая единица

(тоесть свет выглючат в регистратуре)


после того как свет выключили в регистратуре там реальная темнота почти то код переходит дальше к программе нажатия на пульт 2 раза с промежутком 3 секунды тоесть код должен повториться с промежутком в 3 секунды после того как код отработал программа возвращается в исходное положение .


Осталось только правильно выставить включение и выключение диода.


В начале статьи Я писал что гдето на просторах интернета Я видел что там както задали частоту 4 000 000 и могли указать 0,1 секунду аж числом 100 000 , тоесть 0,01 секунда равнялась 10 000 и тогдалее получается так что можно было бы указать МИКРОСЕКУНДЫ , сам процессор умеет работать на 4 мегагердцах остолсь за малым правильно накрутить ))))))))))))))

Re: Частота моргания светодиода

Пт окт 22, 2021 07:06:10

Я планировал по типу вот так ...

Так не пойдет. Светодиод не только мигает. Чтобы принимать фотоприемник команды, то нужна модуляция, ШИМ, PWM, как писали выше коллеги.

времевая диаграмма IR Remote Control (случайной выборки из интернета):
necmodulation.png
(2.42 KiB) Скачиваний: 114

Re: Частота моргания светодиода

Пт окт 22, 2021 19:54:44

SpirkinLAB писал(а):Мне нужно задать ..... МИКРОСЕКУНДАХ


Прочитай как работает модуль CCP (CaptureComparePWM) режим Compare.

Re: Частота моргания светодиода

Сб окт 23, 2021 06:16:45

SpirkinLAB писал(а):Мне нужно задать ..... МИКРОСЕКУНДАХ


Прочитай как работает модуль CCP (CaptureComparePWM) режим Compare.




Вот про это Я и говорил Уважаемый !!!!
https://habr.com/ru/post/98147/

там и задаётся такая частота !!!! и 1 число = 1 микросекунде

Re: Частота моргания светодиода

Сб окт 30, 2021 18:18:55

вобщем понял одно - буду делать тогда на ардуино НАНО чтобы минимальная версия получилась со спичный коробок


Мега спасибо всем !!!!

Re: Частота моргания светодиода

Пн ноя 01, 2021 15:28:05

А я думал что уже давно сделал. Да там на час работа - полчаса прочитать как работает ССР и полчаса программу написать .....

:facepalm:

Re: Частота моргания светодиода

Вт ноя 02, 2021 10:17:53

...на час работа...

Удиви сообщество - сделай.

Re: Частота моргания светодиода

Вт ноя 02, 2021 11:47:09

Милости просим - лови

МК = 12F683, первые 6


PS: 3.10.21 8:00
Код убрал. Пусть ТС сам сделает.

Re: Частота моргания светодиода

Ср ноя 03, 2021 08:12:00

Код убрал
Ответить