МегаТермо

Рассказать в:

Автор: Алексей aka Gordon Shumway
Все началось с того, что мне в руки попал дисплей от народной Нокии 3310, а вернее его китайский аналог. И доэкспериментировался я с ним до термометра, поскольку решил попутно позаниматься с термодатчиками DS18b20.

В результате получился домашний термометр, который кушает мало энергии, умеет показывать температуру в комнате и на улице, запоминать и показывать по необходимости максимум и минимум за период измерения.  И все это с картинками !

МегаТермо

 

Измерение температуры делается раз в 15 секунд, по таймерному прерыванию.

После измерения информация выводится на дисплей, и микроконтроллер уходит в режим Idle. В любой момент времени можно нажать кнопку S1 для просмотра зафиксированных  максимумов и минимумов для внутреннего и наружного датчиков.

При нажатии S2 максимумы и минимумы будут сброшены на текущие показания температуры.

В исходном состоянии на дисплей слева от показаний могут выводиться стрелки, которые указывают на изменение температуры в сравнении с предыдущим измерением.

Появление смайлика в правом верхнем углу указывает на то, что сейчас идет процесс снятия показаний с датчиков температур и вывод обновленной информации на дисплей.

МегаТермо

Левая кнопка - показать максимумы и минимумы, правая - сбросить максимумы и минимумы на текущие показания. Под дисплей я подложил отрезок листа белой бумаги - так картинка смотриться лучше. Справа виден датчик, который должен висеть на улице.

 

МегаТермо

Внутренняя температура понизилась, внешняя - повысилась. В такую жару куры несутся вкрутую !

 

МегаТермо

Просмотр максимумов и минимумов. Немного кривовато получилось :)

 

МегаТермо

Вид сзади.

 

Программа разрабатывалась на Bascom AVR, использовалась немного доработанная библиотека для дисплея Nokia3310:

  • в файле 3310end.bas были закомментированы строки с неиспользованными символами, что сильно экономит память;
  • были нарисованы новые символы (знак градуса, смайлик, стрелки);
  • были внесены изменения в прорисовку самих символов (чтобы сама картинка не портилась при выводе информации).
 

Картинки рисовались в программе FastLCD.

Символы делались в экселевском генераторе символов.

 

Схема питается от трех вольт.

В режиме Idle схема употребляет 0.4мА с микроконтроллером Atmega8a-pu (au),

и 0,6 мА с микроконтроллером Atmega8-16PU (но работа его от трех вольт не гарантирована).

При измерении температуры ток возрастает до 2,5 мА.

Повышать питание выше трех вольт не рекомендуется, ибо чревато для дисплея.

Я запитал схему от элемента питания CR123A (от фотоаппаратов).

В процессе работы над термометром у меня появлялось много вопросов по работе с дисплеем от Nokia3310 в среде Bascom AVR.  Были эксперименты (иногда со спецэффектами), не обошлось без Гугла и одного погибшего смертью экспериментатора дисплея. В результате я решил набросать небольшой мануал для быстрого старта в работе  с диспелеем на Bascom AVR. Все необходимые файлы для глумления над кодом есть в архиве.  Так же в архиве есть стандарная  и доработанные библиотеки для дисплея.

 

Разбирая текст программы, несложно разобраться с принципом вывода информации на дисплей, но я остановлюсь на нескольких деталях:

 
  • Файлы из библиотеки должны быть в одной папке с вашей программой.
     
    • Дисплей Nokia 3310 состоит из 14 столбцов (с 0 по 13) и 6 строк (с 0 по 5).
       
      • Выводить можно только строковую переменную или нужный текст в кавычках:
         

               $include "3310init.bas"             

               Call D3310reset                            ‘сброс и инициализация дисплея

               Call D3310init

               Call D3310clear                           ‘очистка дисплея 

         

              Dim a as integer

              Dim b As String * 10

         

        ‘Программа, в результате чего считаем переменную “a”

         

             b = str (a)

            Call D3310position(4 , 1)     ‘ здесь задаем позицию для вывода, X и Y

            Call D3310print(b)               ‘ и выводим значение “b”

         

            Call D3310position(4 , 3)

            Call D3310print(“Hello world !!!”)   ‘ здесь выводим текст

         

           *   *   *   *   *

         

        $include "3310end.bas"   ‘в самом конце программы !

         
        • Картинку готовим в программе FastLCD – выбираем размер экрана 84х48 точек, и сетку 6х8 – так мы будем видеть экран,  поделенный на знакоместа. Рисуем точками, потом нажимаем кнопку BAS и сохраняем полученный файл в виде файла “имя.bas”.    Открываем полученный файл и приводим его к такому виду:
         

        bmp:

        data &hFC,&h02,&h01,&h01,&h01,&h01,&h01,&h01,&h81,&h41,&h21,&h11,&hC9,&h11

        data &hF9,&hF9,&h01,&h01,&h01,&h01,&h01,&h01,&h01,&h01,&h01,&h01,&h01,&h01

           

        А выводим так:

         

        Restore Bmp                                             

        Call D3310bmpout

           *   *   *   *   *  

        Текст программы

           *   *   *   *   *

         

        $include "имя.bas"    ‘в самом конце программы !

         

        •    Нужные символы рисуем так: открываем генератор символов, ставим единички там, где нужно закрасить точку. Потом копируем строку Data и вставляем ее в файл 3310end.bas в блок “ASCII data” вместо нужного символа. Например, нам не нужен символ "b", вместо него мы хотим нарисовать символ градуса. Находим строку:

              B1:

              Data &H7F , &H48 , &H44 , &H44 , &H38

           

              И вставляем свою:

           

              B1

              Data &H00 , &H00 , &H06 , &H06 , &H00

           

              Теперь если написать

           

              Call D3310position(4 , 3)

              Call D3310print(b)

           

          то выведется символ градуса.

           

          Символы рисуются размером 5x7 точек, нижняя шестая строка и правый восьмой столбец забиваются автоматически нулями, чтобы был межсимвольный и межстроковой интервал.

          Это делает сама библиотека.

           

          PS:    Хочу выразить свою огромную благодарность посетителю форума edm2007

          за его огромную помощь, напутствия и тестирование сего девайса !  СПАСИБО !!!   

           


          Файлы:
          Оригинальная библиотека 
          Файлы проекта 
          Генератор символов 
          Рисовалка 





          Раздел: [Устройства на микроконтроллерах]

          Сохрани статью в:

          Оставь свой комментарий или вопрос:


          Наше сообщество в VK, а ты с нами? Присоединяйся!!!
          Тясячи схем в категориях:
          -> Прочее
          -> Измерительная техника
          -> Приборы
          -> Схемыэлектрооборудования
          -> Источники питания (прочие полезные конструкции)
          -> Теоретические материалы
          -> Справочные материалы
          -> Устройства на микроконтроллерах
          -> Зарядные устройства (для батареек)
          -> Зарядные устройства (для авто)
          -> Преобразователи напряжения (инверторы)
          -> Все для кулера (Вентилятора)
          -> Радиомикрофоны, жучки
          -> Металоискатели
          -> Регуляторы мощности
          -> Охрана (Сигнализация)
          -> Управление освещением
          -> Таймеры (влажность, давление)
          -> Трансиверы и радиостанции
          -> Конструкции для дома
          -> Конструкции простой сложности
          -> Конкурс на лучшую конструкцию на микроконтроллерах
          -> Конструкции средней сложности
          -> Стабилизаторы
          -> Усилители мощности низкой частоты (на транзисторах)
          -> Блоки питания (импульсные)
          -> Усилители мощности высокой частоты
          -> Приспособления для пайки и конструирования плат
          -> Термометры
          -> Борт. сеть
          -> Измерительные приборы (тахометр, вольтметр итд)
          -> Железо
          -> Паяльники ипаяльные станции
          -> Радиопередатчики
          -> Вспомогательные устройства
          -> Телевизионная техника
          -> Регуляторы тембра, громкости
          -> Блоки питания (лабораторные)
          -> Усилители мощности низкой частоты (на микросхемах)
          -> Другие устройства для усилителей
          -> Cветовое оформление новогодней ёлки или праздничного зала
          -> Глушилки
          -> Телефонные жуки
          -> Инфракрасная техника
          -> Медицинская техника
          -> Телефония
          -> Для животного мира
          -> Конструируем усилители
          -> Антенны и усилители к ним
          -> Звонки
          -> Электронные игрушки
          -> Усилители мощности низкой частоты (ламповые)
          -> Управление двигателями (питание от однофазной сети)
          -> Программаторы микроконтроллеров
          -> Сверлилки
          -> Изучаем микроконтроллеры
          -> Радиоприемники
          -> Сигнализации
          -> Сотовая связь
          -> USB-устройства
          -> Блоки питания (трансформаторные)
          -> Радиостанции простые в изготовлении
          -> Источники питания (для усилителей)
          -> Прочеее
          -> защита от короткого замыкания (электронные предохранители)
          -> Зарядные устройства (для радиостанций)
          -> Мигалки
          -> Cварочное оборудование
          -> Кодовые электронные замки
          -> Блоки питания (бестрансформаторные)
          -> Часы
          -> Управление поворотниками
          -> Зажигание
          -> Управление водой (насосы для скважин или колодцев, полив растений)
          -> Моделирование
          -> Блоки управления стеклоочистителями
          -> Предварительные усилители
          -> Защита от перегрузки и перегрева
          -> Динамики
          -> Ремонт бытовой техники
          -> Дистанционное управление компьютером
          -> Акустические микрофоны и преобразователи
          -> Спутниковое ТВ
          -> Gsm антенны, примочки, усилители, ретрансляторы.
          -> Пищалки
          -> Роботы
          -> Ретрансляторы
          -> Паяльники и паяльные станции
          -> Звуковые сигнализаторы
          -> Рули и джойстики
          -> Схемы электрооборудования
          -> Все для "кулера" (Вентилятора)
          -> Работа с BGA микросхемами
          -> Фильтры
          -> Сабвуферы
          Рейтинг@Mail.ru