|   Войти

Разработка устройств на PIC-контроллерах с помощью приемов ТРИЗ

Авторы: Ермолов К. А.,

Манойлов В. В.

2018 год.

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

Рассмотрим несколько трудностей, с которыми можно столкнуться при разработке некоторых устройств с использованием многоразрядных 7-мисегментных дисплеев с общим катодом, и как эти трудности можно разрешить с помощью приемов ТРИЗ.

Чтобы вывести цифру на одноразрядный 7-сегментный дисплей с общим катодом, достаточно подать единичные уровни (+5 В) на соответствующие выводы микроконтроллера, подсоединенные к каждому из 7 сегментов (рис. 1).

Рис. 1

При этом общий катод дисплея подключен к земле.

Если мы хотим вывести двузначное число, то необходимо использовать еще один одноразрядный 7-сегментрый дисплей. Однако, чтобы управлять двумя дисплеями, потребуется 14 выводов микроконтроллера. Однако, у микроконтроллера PIC16F84A есть только 13 выводов (8 выводов порта B и 5 выводов порта A), значит, чтобы подключить два дисплея, нужно использовать два микроконтроллера, а это увеличивает стоимость, да и программа для микроконтроллеров усложнится, так как они должны взаимодействовать друг с другом.

Противоречие следующее:

ТП1: Если дисплей станет двойным, то информации он сможет отобразить больше, но при этом схема становится более сложной и дорогой.

ТП2: Если дисплей будет один, то схема упростится и станет более дешевой, но такой дисплей станет отображать меньше информации.

Какие приемы разрешения ТП мы можем использовать? Следует учесть, что оба дисплея выполняют одну и ту же функцию. Самым подходящим оказывается прием «Объединения»: «Соединить однородные или предназначенные для смежных операций объекты».

В согласии с этим приемом можно соединить аноды дисплеев параллельно, но возникает новая проблема: оба дисплея будут показывать одну и ту же цифру. Возникает новое ТП:

ТП1: Если дисплеи соединить параллельно, то устройство будет простым и дешевым, но цифры на обоих дисплеях будут одинаковыми.

ТП2: Если дисплеи не соединять параллельно, то они будут показывать правильное число, но устройство станет более сложным и дорогим.

Для разрешения данного противоречия можно использовать программу TRIZ Calculator и выбрать раздел «Приемы разрешения ТП». В списке «что нужно изменить по условиям задачи» выбирать «Удобство изготовления», а в списке «что ухудшается при изменении» - «Потери информации». Программа предлагает следующие приемы: «Изменение окраски», «принцип посредника», «использование механических колебаний» и «принцип частичного или избыточного решения».

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

Принцип посредника: чтобы включить и выключить один из дисплеев, нужно подключать его не прямо к «земле», а к «посреднику», т.е. к устройству, которое будет управлять включением и выключением соответствующего разряда. Таким посредником может выступать сам микроконтроллер.

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

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

В итоге получается следующая схема (рис. 2):

Рис. 2

Как видно, все аноды обоих дисплеев соединены параллельно. Катоды этих дисплеев подключены через транзисторы VT1 и VT2 к микроконтроллеру, который управляет их включением и выключением. Транзисторы нужны для того, чтобы усилить ток, выдаваемый ножкой контроллера. Этот ток не должен превышать 20 мА, тогда как через катод дисплея может течь ток до 140 мА.

А если нам понадобится отобразить 3-, 4-, 5-тиразрядные числа или даже числа с большим количеством разрядов? Сразу возникает следующая идея - необходимо взять столько дисплеев, сколько разрядов в числе, соединить их аноды параллельно, а катод каждого дисплея соединить через транзистор с соответствующей ножкой микроконтроллера. В этом случае цифры будут также отображаться по очереди с большой скоростью переключения. Кроме того производители дисплеев упростили нам задачу, объединив несколько одноразрядных дисплеев в один корпус и соединив аноды уже внутри корпуса. Для 4-хразрядного 7-сегментного дисплея схема подключения к микроконтроллеру будет выглядеть следующим образом (рис. 3):

Иногда нужны дисплеи с большим количеством разрядов. Предположим, что для какого-то устройства нам понадобится 8-миразрядный дисплей. Для подключения такого дисплея необходимо 15 выводов микроконтроллера (7 выводов для анодов-сегментов + 8 выводов для катодов).

Причина этого в том, что микроконтроллер выводит слишком много информации. Если посчитать, сколько нужно двоичной информации, чтобы отобразить цифры от 0 до 9 и вывести их на разряд с номером от 0 до 7, то оказывается, что необходимо 4 бита для цифры и 3 бита для номера разряда, итого 7 бит. т.е. нам хватит всего семи выводов микроконтроллера, но нам требуется целых 15! Контроллер выдает столько информации, потому что он преобразует ее в формат, понятный человеку. Вместо 4 бит для вывода цифры, он использует 7, так как в дисплее семь сегментов, и вместо 3 бит номера разряда, контроллеру пришлось бы использовать 8, так как дисплей 8-миразрядный. Сформулируем ТП, ФП и ИКР.

ТП1: Если микроконтроллер будет преобразовывать информацию, то она будет понятна для человека, но при этом неэкономно будут расходоваться ресурсы контроллера.

ТП2: Если микроконтроллер не будет преобразовывать информацию, то его ресурсы будут расходоваться экономно, но информация будет не понятна человеку.

ФП: Микроконтроллер должен преобразовывать информацию, чтобы она была понятна человеку, но он не должен преобразовывать информацию, чтобы экономно расходовать свои ресурсы.

ИКР: Х-элемент сам преобразовывает информацию в формат, понятный человеку, освобождая тем самым ресурсы микроконтроллера.

Для разрешения данного ФП воспользуемся следующим приемом - разделение противоречивых свойств в пространстве. Микроконтроллер будет выводить информацию, но преобразовываться она будет в другом месте Х-элементом. Таким Х-элементом могут быть декодеры – специальные микросхемы, преобразующие двоичный код. Один из таких декодеров - микросхема SN74LS248. Она преобразует 4-битное двоичное число в формат 7-сегментного дисплея. Другой декодер – микросхема SN74HC138. Это декодер 3х8. Он преобразует 3-битное двоичное число, и подает на соответствующую ножку микросхемы низкий уровень. В результате, заняв всего 7 выводов микроконтроллера PIC16F84A, мы можем получать информацию на 8-миразрядный 7-мисегментный дисплей (рис. 4). При этом целых 6 выводов микроконтроллера остались незадействованными. Их мы можем использовать для ввода-вывода информации, например для подключения кнопок управления.

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

 

Рис. 4.

Проблема управления многоразрядным 7-мисегментным дисплеем – это лишь одна из множества трудностей, с которыми сталкиваются учащиеся, при разработке устройств на микроконтроллерах. Однако с помощью приемов ТРИЗ все эти трудности легко решаются.