ИССЛЕДОВАНИЕ АЛГОРИТМОВ (ПРОГРАММ), РЕАЛИЗУЮЩИЕ ПОДОБНЫЕ ФУНКЦИИ



Исследование входных/выходных сигналов

Микроконтроллерный модуль Arduino Mega 2560 R3, используемый при разработке программного обеспечения для автоматического термостата серверных помещений, способен принимать и обрабатывать как цифровые, так и аналоговые сигналы.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
5
       Цифровой сигнал — сигнал, который можно представить в виде последовательности дискретных (цифровых) значений. В наше время наиболее распространены двоичные цифровые сигналы (битовый поток) в связи с простотой кодирования и используемостью в двоичной электронике. Для передачи цифрового сигнала по аналоговым каналам (например, электрическим или радиоканалам) используются различные виды модуляции.

    Важным свойством цифрового сигнала, определившего его доминирование в современных системах связи, является его способность к полной регенерации в ретрансляторе (до некоторого порогового отношения сигнал/шум). Когда в ретранслятор приходит сигнал с небольшими помехами, он преобразуется в цифровую форму, и ретранслятор заново формирует сигнал, полностью убирая искажения. Аналоговый же сигнал удаётся усилить лишь вместе с наложившимися на него шумами. С другой стороны, если цифровой сигнал приходит с большими помехами, восстановить его невозможно, в то время как из искаженного аналогового сигнала можно извлечь часть информации, хотя и с трудом. Если сравнивать сотовую связь аналогового формата (AMPS, NMT) с цифровой связью (GSM, CDMA), то при помехах на цифровой линии из разговора выпадают порой целые слова, а на аналоговой можно вести разговор, хотя и с помехами. Выход из данной ситуации — чаще регенерировать цифровой сигнал, вставляя регенераторы в разрыв линии связи, или уменьшать длину линии связи (например, уменьшать расстояние от сотового телефона до базовой станции, что достигается более частым расположением базовых станций на местности).

    Использование в цифровых системах алгоритмов проверки и восстановления цифровой информации позволяет существенно увеличить надёжность передачи информации.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
6
    Аналоговый сигнал — сигнал данных, у которого каждый из представляющих параметров описывается функцией времени и непрерывным множеством возможных значений.

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

· Отсутствие чётко отличимых друг от друга дискретных уровней сигнала приводит к невозможности применить для его описания понятие информации в том виде, как она понимается в цифровых технологиях. Содержащееся в одном отсчёте «количество информации» будет ограничено лишь динамическим диапазоном средства измерения.

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

Рис.1 «Виды сигналов»

 

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
7
Рассмотрим разработку действующей модели автоматического термостата с использованием семисегментной индикации:

Рис.2 «Схема электрическая принципиальная автоматического термостата с семисегментным индикатором»

Семисегментный индикатор — это набор обычных светодиодов в одном корпусе. Просто они выложены восьмёркой и имеют форму палочки-сегмента. Можно подключить его напрямую к Arduino, но тогда будет занято 7 контактов, а в программе будет необходимо реализовать алгоритм преобразования числа из двоичного представления в соответствующие «калькуляторному шрифту» сигналы.

Для упрощения этой задачи существует 7-сегментный драйвер. Это простая микросхема с внутренним счётчиком. У неё есть 7 выходов для подключения всех сегментов (a, b, c, d, e, f, g pins), контакт для сбрасывания счётчика в 0 (reset pin) и контакт для увеличения значения на единицу (clock pin). Значение внутреннего счётчика преобразуется в сигналы (включен / выключен) на контакты a-g так, что мы видим соответствующую арабскую цифру.

На микросхеме есть ещё один выход, обозначенный как «÷10». Его значение всё время LOW за исключением момента переполнения, когда значение счётчика равно 9, а его увеличивают на единицу. В этом случае значением счётчика снова становится 0, но выход «÷10» становится HIGH до момента следующего инкремента. Его можно соединить с clock pin другого драйвера и таким образом получить счётчик для двузначных чисел. Продолжая эту цепочку, можно выводить сколь угодно длинные числа.

Микросхема может работать на частоте до 16 МГц, т.е. она будет фиксировать изменения на clock pin даже если они будут происходить 16 миллионов раз в секунду. На той же частоте работает Arduino, и это удобно: для вывода определённого числа достаточно сбросить счётчик в 0 и быстро инкрементировать значение по единице до заданного. Глазу это не заметно.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
8
К существенным недостаткам проектирования данной действующей модели автоматического термостата можно отнести сложность написания программного кода для обеспечения корректной работы семисегментной индикации. Кроме того, применение семисегментной индикации без драйвера предполагает использование большого количества выводов микроконтроллера, что также усложняет написание программного обеспечения.

Рассмотрим ещё одно из существующих схемных решений автоматического термостата на базе микроконтроллера Attiny 2313:

Рис.3 «Схема электрическая принципиальная устройства подобного типа»

    1-Wire (с англ. — «один провод») — двунаправленная шина связи для устройств с низкоскоростной передачей данных (обычно 15,4 Кбит/с, максимум 125 Кбит/с в режиме overdrive), в которой данные передаются по цепи питания (то есть всего используются два провода — один общий (GND), а второй для питания и данных; в некоторых случаях используют и отдельный провод питания). Разработана корпорацией Dallas Semiconductor (англ.) (с 2001 года — Maxim Integrated (англ.)) и является её зарегистрированной торговой маркой.

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
9
Соответственно, топология такой сети — общая шина. Сеть устройств 1-Wire со связанным основным устройством названа «MicroLan», это также торговая марка Dallas Semiconductor.

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

Устройство 1-Wire может находиться как на печатной плате вместе с устройством управления, так и отдельно. Иногда они предназначены лишь для поддержки устройств 1-Wire, но во многих коммерческих приложениях устройство 1-Wire — просто один из чипов, создающих нужное решение. Иногда они присутствуют, например, в аккумуляторных батареях ноутбуков и сотовых телефонов.

Некоторые лабораторные системы и другие системы сбора данных и управляющие системы подключают к устройствам 1-Wire, используя шнуры с модульными разъёмами или с кабелем CAT-5, с устройствами, установленными в разъём, включёнными в небольшую печатную плату, или присоединёнными к исследуемому объекту. В таких системах популярен разъём RJ11 (6P2C или модульные разъёмы 6P4C, обычно используемые для телефонов).

Системы датчиков и приводов могут быть связаны компонентами 1‑Wire, каждый из которых включает в себя всё необходимое для функционирования шины 1-Wire. В качестве примера можно привести термометрию, таймеры, датчики напряжений и токов, контролирование батарей, и память. Они могут быть подключены к ПК при помощи преобразователей шины. Последовательные интерфейсы USB, RS-232, и параллельный интерфейс (LPT) являются популярными решениями для соединения MicroLan с ПК. MicroLan также является интерфейсом для микроконтроллеров, таких, как Atmel AVR, Parallax BASIC Stamp и семейство Microchip PIC. Однако аппаратной поддержки этой шины микроконтроллеры (AVR, PIC и другие), как правило, не имеют, и работа с шиной реализуется

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
10
программно, с использованием сторонних библиотек (вроде Arduino и других), либо программист, имея спецификацию, может разработать сам необходимую функциональность.

Несомненным достоинством данного устройства является использование вышеописанного протокола 1-Wire, а к недостаткам действующей модели автоматического термостата можно отнести осложнение

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
11
программного обеспечения использованием светодиодной индикации без соответствующего драйвера.

Исследование алгоритмов

Рассмотрим программный код первой описанной выше действующей модели автоматического термостата:

int termPin = A 0; // Аналоговый вход термистора

int relayPin = 2; // Цифровой выход управления реле

int ledPin = 3; // Цифровой выход управления сигнальным светодиодом

void setup()

{

    pinMode ( relayPin , OUTPUT ); // оба цифровых вывода – на выход

    pinMode(relayPin, OUTPUT);

}

void loop()

{

    // Считываем показания термистора и сравниваем их

    //с пороговыми значениями в середине диапазона АЦП

if ( analogRead ( termPin ) > 510) {

    // Если температура низкая (сопротивление термистора высокое),

    // включаем нагреватель и светодиод

    digitalWrite(relayPin, HIGH);

    digitalWrite(ledPin, HIGH);

}

if ( analogRead ( termPin ) < 490) {

    // Если температура высокая – выключаем

    digitalWrite(relayPin, LOW);

    digitalWrite(ledPin, LOW);

}

}

Изм.
Лист
№ докум.
Подпись
Дата
Лист
КП-09.02.01.КС42.09.03.19 ПЗ  
 Разраб.
Михайлова А.С
12
    В соответствии с программой срабатывание реле будет происходить вблизи значения на выходе АЦП, равного 500. Это составляет примерно середину 10‑разрядного диапазона (вся шкала – 1024 градации), т. е. такое значение установится при приблизительном равенстве верхнего и нижнего сопротивлений относительно входа АО (напряжение на этом входе тогда составит примерно 2,5 вольта).

     Для предотвращения дребезга в программу введен гистерезис: реле включается при превышении значения кода 510, а выключается при снижении до значения 490. В промежутке оно будет сохранять предыдущее состояние. Двадцать единиц кода соответствуют примерно 10 милливольтам, т. е. гистерезис при температуре в пределах 30–40 градусов составит чуть меньше одной десятой градуса.

     Установка температуры срабатывания с помощью резистора R2 при таких параметрах возможна в пределах примерно от 22 до 96 °C. Разумеется, на практике такой широкий диапазон регулировки не требуется, потому целесообразно номинал R2 уменьшить. Величина R1 подбирается так, чтобы R1 и номинальное значение R2 в сумме составляли сопротивление термистора при нижнем значении желаемого диапазона температур.

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

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

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

 


Дата добавления: 2019-07-15; просмотров: 240; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!