Видео к сожалению не делал... Это ж "простейшие" - там только описание (вполне возможно корявое). Да и с размещением ... разве что через яндекс-диск с гостевой ссылью...
У меня адуринка-нано на 168 меге без всяких переделок минимум часов 6 непрерывно молотила секундомером (
- это черновой набросок был, позднее работа с max7219 ушла в отдельную библиотеку). Дальше терпения не хватило проверять. Так и акумулятор от мобилки с распродажи "убитых неликвидов" (от 10рупь/штука). В принципе при наличии управляемого ключа и контроля напружки на аккумуляторе при энергонезависимом счетчике общей наработки можно и более удобный режим работы установить. Может и чего ешшо помудрю - СИшная тема "вызов функции по указателю" пока не закрыта (под ассемблером то проблем с сменой функционала дисплея и кнопок в зависимости от режима работы устройства проблем не представляет).
Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.
Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре.
Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.
А смысл в таком варианте? Это ж только при питании "от сети" - со ШНУРКОМ (коего надо всеми силами избегать)... Там баръер на уровне сигнальных линий управления регистрами. Предпочтение минимуму - только Rx/Tx при питании силовой части от сети. Типовая игрушка с "высоковольтными" светиками в "максимальном" варианте: http://img.radiokot.ru/files/20529/tcsnkhver.GIF Только вот жрать оное устройство будет весьма много...
В таком случае одной развязки по отключению питания может быть недостаточно. Необходимо также отслежиавть возможность подпитки внешнего устройства через сигнальные линии. Выходы у АВРок достаточно мощные - могут также "паразитно" подпитать ненужные цепи. Минимальный вариант - предварительный перевод сигнальных линий в состояние либо логического нуля, либо "вход с Z-состоянием" и уже затем снимать питание с помощью ключа.
Не знал что подарить супруге на Н.Г. кроме денег. Слепил за 3 вечера: ВИДЕО.
-Oled дисплей. -Удобное управление -"Компьютерная" батарейка (CR2032) -Обратный счет от 99:59 -Прямой счет до 99:59 -Рингтон из "Бумера" -Индикация напряжения на батарейке
Контроллер (Atmega328p) ждет нажатия кнопки в режиме PowerDown потребляя при этом 1uA. В таком режиме батарейки должно хватить лет на 10, теоретически. Скорее сдохнет от саморазряда. Контроллер слишком жирный для такой безделушки. Нашел его в старом хламе. Можно использовать 48ю Мегу или Attiny2313.
Я уже четвёртый вечер парюсь с одним только засыпанием и пробуждением. То камушек уснёт, забудет выключить дисплей, то забудет включить прерывания, чтобы проснуться и заснёт навсегда. То начнёт время отсчитывать и по пути уснёт. То сам проснётся а дисплей не включит. Это просто какое-то кю.
К стати хорошо что напомнили, тоже сделаю индикацию напряжения.
oled_init(); // Включаем питание дисплея и инициализируем его
// измеряем напряжение питания measure_power();
// разрешаем спящий режим (режим Idle) SMCR=(1<<SE) | (0<<SM2) | (0<<SM1) | (0<<SM0); // разрешаем спящий режим (режим Idle)
} else { // засыпаем в режиме Idle #asm("sleep") // Просыпаемся } }
// Главная void main(void) {
...
// Инициализация прерывания от кнопок // External Interrupt(s) initialization // INT0: Off // INT1: Off // Interrupt on any change on pins PCINT0-7: Off // Interrupt on any change on pins PCINT8-14: On // Interrupt on any change on pins PCINT16-23: Off EICRA=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00); EIMSK=(0<<INT1) | (0<<INT0); PCICR=(0<<PCIE2) | (1<<PCIE1) | (0<<PCIE0); PCMSK1=(0<<PCINT14) | (0<<PCINT13) | (0<<PCINT12) | (1<<PCINT11) | (1<<PCINT10) | (1<<PCINT9) | (1<<PCINT8); PCIFR=(0<<PCIF2) | (1<<PCIF1) | (0<<PCIF0);
...
// режим Idle и разрешаем спящий режим SMCR=(1<<SE) | (0<<SM2) | (0<<SM1) | (0<<SM0);
// Global enable interrupts #asm("sei")
oled_init(); // Включаем питание дисплея и инициализируем его
Я уже четвёртый вечер парюсь с одним только засыпанием и пробуждением.
Ну с этим могу помочь
Эээ
Не в этом дело. Я вообще использую библиотеку, она сама всё делает. У меня таймер не одноканальный до 8 независимых отсчетов и когда один настраиваешь, другие считают и выключиться можно только когда выключены все. Есть поддержка RTC. и тогда можно ставить большие выдержки и спать с пробуждением каждые 8 секунд от сторожевика. Если RTC впаян, то может показывать время Но может обходиться и без RTC. Тогда при отсчете гаснет только дисплей, а сон только когда все каналы выключены. Может питаться от розетки и тогда можно вообще не спать И кроме того есть поддержка "токового клеща" (магнитного измерителя тока). При изменении тока если к примеру включили электроплиту, таймер автоматом включает отсчет.
Когда-то делалось... 16 каналов с независимым началом/окончанием отсчета (уставка в пределах 1-99 минут, точность отсчета 1 секунда) + главные часы. Индикация статуса по каждому каналу двуцветным светиком с отображением любого из выбранных на дисплее главных часов. ДААВНОО то было... еще на 51-й и под "ассемблером на тетрадке". Но там без полной 16-кнопочной клавиатуры не обойтись...
16 каналов с независимым началом/окончанием отсчета (уставка в пределах 1-99 минут, точность отсчета 1 секунда) + главные часы. Индикация статуса по каждому каналу двуцветным светиком с отображением любого из выбранных на дисплее главных часов.
Оперативное управление как выборкой режима, так и текущими таймерами (когда их аж 16) без полной клавиатуры весьма затруднительно. Допустим... оператор занят настройкой какого-то режима и одновременно поступила стработка одного/двух других таймеров, которую необходимо сбросить. Беготня по менюшкам там вряд-ли допустима.
Та древня конструкция отрабатывала функционал процедурных часов кабинета физиотерапии.
Та древня конструкция отрабатывала функционал процедурных часов кабинета физиотерапии.
если физиотерапия, то конечно ! там и 51-ый камень вообще-то не желательно, а то зажарится больной ) На кухне проще. Кнопки "пуск" вообще нету, а по этому как только нажал что-то, то на этом настройка уже вообщем и закончена, таймер уже инициализировался и уже отсчитывает. Дальше добавляешь уже "на ходу". Вообщем ещё не было неприятных коллизий. По хорошему надо строить очередь тревог, но у меня это не доделано. тупо последняя музыка забивает все предидущие. Но тем не менее индикация всех тревожащихся таймеров остаётся пока её не потушат руками или не пройдёт 25 минут, в течение которых каждая тревога повторится по 2 раза.
51я по "дуростойкости" весьма удачна. Вопрос же устойчивости к внешним помехам решается корректно вылизанным алгоритмом и соответствующими приемами использования ресурсов. При удачной схемотехнике и хорошо вылизанной программе сбой практически нереален. Единственно писались те прожки таки на ассемблере.
Так в многоканалке звуковой сигнал сработки и будет присутствовать до тех пор, пока все активные не будут отключены. А сами сработавшие отображаются двухцветными светиками - пока работает - мигает зеленым, сработал - горит красный, настройка - непрерывно зеленый и информация на табло главных часов. В то же время сам таймер помещается в ячейке ОЗУ совместно с контрольными флагами. Используется свойство того, что 60 минут (один час) в двоичном виде занимает всего 6 бит. В старших разрядах помещаются флаги управления. (Даже при 99 минутном варианте есть место для флага разрешения счета). Т.е. каждую секунду помимо главных часов сканируется набор таймеров. Разрешенные к счету обрабатываются. Единственное условие - обработчик должен вписаться в 0,5 секунды при наихудшем варианте - когда необходима обработка ВСЕХ имеющихся в устройстве таймеров. Тут уж и быстродействие МК и оптимальность алгоритма внимательно смотреть надо.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 20
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения