Мои вкусняхи

Сводный список записей блога

--->>>> Сводный список записей блога <<<<---

14 мая 2021

Управление нагрузкой 220 вольт

Управление нагрузкой.


Иногда так складывается, что устройство должно включать и выключать какую то нагрузку по линии 220 вольт. Например, тот же блок питания. Или лампочку. Или нагреватель.

Казалось бы, чего проще - берем реле и управляем.

Это хорошо для какой то резистивной нагрузки. Например, для лампочки накаливания или ТЭНа. Хотя с ТЭНом уже сложности. Он мощный. И в момент включения/выключения на контактах реле проскакивает искра.
Такая же сложность возникает, если включать какую то ёмкостную или индуктивную нагрузку. 
В результате недорогие реле сравнительно быстро могут выйти из строя. Ну или нужно брать заведомо мощное (и дорогое) реле.

10 мая 2021

Гори оно всё огнём.... Огненная лампа на WS2812 по мотивам лампы Гайвера


Попала мне в руки матрица из программируемых светодиодов WS2812, 16 х 16 = 256 диодов. На гибкой печатке. "Нужно что то с этим делать" - шепнуло мироздание. Интернет услужливо подсунул большой и успешный проект Алекса Гайвера - Огненную лампу.

Вроде бы все просто - бери и делай. Но я не хотел повторять его проект, плюс мне не совсем нравился эффект пламени, реализованный в лампе Гайвера. И описанные в видео алгоритмы я попробовал, но они не возбудили меня. Штирлиц шел по улицам Берлина. Что то выдавало в нём советского разведчика. То ли фуражка с красной звездой, то ли парашют за спиной...

 Когда то один товарищ из Симбирска сказал - "Мы пойдем другим путем". Ну вот и я решил попробовать придумать свой алгоритм пламени. Получится - будет хорошо, не получится - фиг с ним, передерём Гайверовский. Хотя передерастом быть не хочется, поэтому надо придумать свой.

06 мая 2021

PANAPLEX - ну о-о-очень большая неонка

 Версия fw 1.07 (30.10.22)


Камрад ViG0r накопал где то в Штатах стопочку газоразрядных дисплеев.
Больших 15 х 5 см, высота цифры 27 мм, 5 цифр.
И поменьше 6,8 х 3,8 см. цифра 14мм, 4 цифры.

И мы сделали из этих дисплеев очередные часы.



12 апреля 2021

Фиолетовый свет далеких планет ...

... или управляем лампочкой по таймеру

Обновлено 12.04.2021

(рекламное фото AliExpress)

 

Окна у меня смотрят на северо-восток-восток. И солнышко бывает у меня в гостях только утром. А зимой - иногда и вообще не бывает.

Соответственно, на кухонном подоконнике цветочки, котячья трава, зеленый лук и прочая растительность растут, но хреново. Что бы было цветочкам веселее, купил я на али лампочку для цветочков. Вот тут . 

07 марта 2021

Цветовое пространство HSV, его осмысление и как с этим знанием дальше жить...


Привычные радиолюбителю RGB-светодиоды имеют в своем составе три кристалла - красного, зеленого и синего цвета свечения. И комбинацией мощности свечения каждого кристалла можно получить различные цвета и оттенки. Что сделает обычный радиолюбитель? Возьмет три переменных резистора, подключит к ним светодиод и, вращая ручки этих резисторов, будет себе настраивать желаемый цвет. 

А продвинутый радиолюбитель, который слышал слово "микроконтроллер", знает, что в микроконтроллерах есть специальные выходы, на которых можно получить сигналы с широтно-импульсной модуляцией (ШИМ или по-заморскому PWM). И что если к этим выходам подключить такой светодиод, то призвав в помощь опытного программиста, можно заставить светодиод светиться разными цветами без участия человека. А если еще этот радиолюбитель и сам немножко программист - то тут и все карты в руки.

Но вот беда. Пока нужно просто помигать-посветить разными цветами - цветовая модель RGB остается удобной. А когда таких светодиодов много, да когда наступают более интересные задачи независимого изменения цвета и яркости, то в ряде случаев в мозгах программиста-радиолюбителя может наступить "деление на ноль". Ибо вопрос - как учесть сразу несколько характеристик цвета и света и всё это в цветовой модели RGB - зачастую бывает сложный.

И тут на помощь приходит цветовая модель HSV (Hue - цветовой тон, Saturation - насыщенность, Value - уровень или же яркость). Модель придумал в середине 1970-х некий Элви Рэй Смит, один из со-основателей Pixar. Я не знаю, для чего это было нужно Элви Рэю, но нам эта модель позволит независимо выбирать цвет свечения светодиода, яркость свечения светодиода и насыщенность цвета. Прям как крутилки на старых тёплых ламповых цветных телевизорах.

Ниже - информация, которая может помочь осмыслению цветовой модели HSV и применением ее в любимом микроконтроллере.

04 марта 2021

RadAlert - радиометр-показометр

 

Внимание! Опубликована вторая версия данного устройства. Более компактная, на OLED-дисплее.

В какой то момент мне захотелось, что б в доме был дозиметр прибор, который умеет "мерять" радиацию. И что б он себе просто лежал на полочке, постоянно включенный и заверещал, когда фон вдруг подскочит выше установленного порога (надеюсь, мироздание этого не допустит).

Прибор - это, наверное, громко сказано. ибо ни поверки нет, ни калибровки по контрольному источнику... В общем. не прибор, а показометр...

Соответственно - требования были простые:
- лежать на полочке долго-долго от одного заряда батарейки
- помнить какую то историю радиационного фона.

Под это дело подходил описанный на радиокоте "Нанит". Ну - почти подходил.
Хотелось
 а) на датчике СБМ-20, хоть он и больше
 б) что то своё. что б все хотелки не впихивать в чужой код, а написать свои
 в) поскольку я на тот момент начинал "щупать" STM32 - хотелось сделать на STM-ке....

Ну и что сказать. Изделие, в принципе, получилось. Я доволен.

03 марта 2021

Часы с радиоприемником и метеодатчиками TouchClock - II

Версия прошивки - от 8 февраля 2021 года.

 



 

Часы построены на базе микроконтроллера ATMEGA128A и 3.2" цветного TFT-дисплея 320*240 точек на базе контроллера ILI9341 с резистивной тач-панелью.

Что часы умеют:

  • Часы, календарь
    • Помесячное перелистывание календаря
    • Ежечасный звуковой сигнал (с 23 до 7 отключен принудительно)
    • Таймер, до 9ч 59мин 59сек, дискретность установки 1сек
    • 5 будильников (3 мелодии или FM приемник, выбор громкости, выбор дней недели)
    • 4 выхода типа "открытый сток", управляемых из будильников, с несколькими режимами управления
    • Прямое управление выходами
    • Три языка интерфейса
    • Несколько шрифтов отображения данных
    • Несколько цветовых схем (переключение вручную или по рандому)
    • 7 уровней яркости подсветки
    • Авторегулировка яркости подсветки по внешнему фотодатчику и/или по времени
    • FM - приемник RDA5807, с возможностью его использования в качестве будильника
    • Память на 48 станций приемника с возможностью задания названия станции
    • Отдельный блок отображения метеоданных
    • Почасовая история метеоданных за 5 дней с графиками этих метеоданных
    • Поддержка датчика температуры/давления/влажности ВМЕ280 (ВМР280) и двух датчиков DS18B20
    • Возможность подключения по UART / беспроводному каналу двух внешних модулей с датчиками ВМЕ280 и DS18B20.
    • При использовании двух внешних модулей данные второго модуля принудительно заменяют показания встроенной ВМЕ280 и первого DS18B20.
    • Отключаемые звуковые сигналы при изменении количества метеодатчиков (с 23 до 7 отключены принудительно)
    • Отключаемый звуковой сигнал при резком изменении данных от метеодатчиков (изменение влажности на 10%, давления на 8мм или темпераутры на 12° в течении часа, с 23 до 7 отключен принудительно)
    • Отображение другим цветом резко изменившихся метеопоказаний
    • Выбор корректирующих констант влажности (+/-50%) и температуры (+/-10°) для каждого физического датчика
    • Выбор для каждого физического датчика его расположения - дом/улица, отображение символа "домика" или "елочки" на графиках и в кратком отображении метеоданных
    • Напоминания о важных датах (до 64 напоминаний).
    • Фильтрация некорректных данных от внешнего модуля
    • Отображение предупреждения о критичном разряде батарейки внешнего датчика
    • Selftest при включении, вывод фатальных ошибок
    • Таймер автоотключения приемника - 5, 10, 15, 20, 30, 45, 60, 90 минут
    • Поддержка физической кнопки отключения будильника/таймера

      28 февраля 2021

      Термометр на DS18B20

      Так сложилось, что один хороший человек собрал чей то термометр на ATMEGA8, датчике DS18B20 и OLED-дисплее 128*64 на контроллере SSD1306. Но исходная прошивка ему не нравилась и я предложил написать новую прошивку под собранную им схему.



      Термометр рассчитан на периодическое включение выключателем и отображение температур с обнаруженных датчиков, соответственно, никаких режимов энергосбережения или сна не предусмотрено.

      26 февраля 2021

      Дисплей ST7920 и с чем его едят


      (картинко не моё, найдено в гуголе)

       Короткая памятка по подключению.

      Дисплей дурной. Но поскольку он есть - надо писать.

      RST. Резет - он и в Мордорской домне резет. Активный уровень - низкий. Согласно ДШ должен удерживаться не менее чего то там. У меня это "чего то там" - 70 мс. После отпускания резета до отправки команд нужно подождать еще пару-тройку мс.

      Дисплей может работать как по параллельному, так и по последовательному интерфейсу. За это отвечает контакт PSB.
      Если этот контакт соединен с землёй - интерфейс последовательный. Если через 4к7 подтянут к питанию - параллельный 4/8-битный. (Сразу скажу, 4-битный не пробовал).

      Тут есть мелкая засада. На некоторых ревизиях дисплея PCB может быть перемычкой или пофигистором притянут к питанию или земле. Мультиметр решает. Если таки да - найди и отпаять. Внизу по одной из ссылок (на drive2 ru) как раз и описана такая ситуация.

      Вроде всё красиво, но дьявол кроется в деталях. Проблема в том, что обработка любой команды выполняется за время не менее 72 мкс. Т.е. отправил команду - жди 72 мкс. Отправил байт данных - жди 72 мкс... и т.д.
      Те несколько дисплеев, что у меня были - вели себя по разному. Один удалось "разогнать" до 64 мкс. Второй нормально работал при периоде 78 мкс. В интернетах пишут, что некоторые экземпляры гнались до периода в 36-40 мкс. 
      Итого - время обновления дисплея - это отправка 1024 байт данных + 128 командных байт.
      В идеальном случае - 1152 байт * 72 мкс = приблизительно 83 мс. Или 12 fps.