Схема подключения 5461as 1

Анатолий Беляев (aka Mr.ALB). Персональный сайт

Да пребудут с вами Силы СВЕТА!

2022-12-20
В раздел Нумерология добавлена страница
Парамагинумерология

2017-01-19
Добавлен раздел
Веды

Таймер

Сделал небольшой генератор для катушки Мишина и мне понадобился таймер с фиксированными значениями времени. Для его реализации воспользовался Arduino Pro Mini. Таймер получился, в некотором роде, универсальным, его можно использовать не только для включения генератора для катушки Мишина, но и для управления разными нагрузками или устройствами, вплоть до нагрузок на

Подразделы

Описание

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

Таймер имеет две кнопки управления. Первая кнопка позволяет устанавливать фиксированное время, а вторая кнопка запускает или останавливает отсчёт времени. При пуске таймера на выходном порте устанавливается низкий уровень. При останове таймера на выходном порте устанавливается высокий уровень. После пуска таймера, по прошествии установленного времени, выдаётся звуковой сигнал, сообщающий об окончании пройденного времени и происходит отключение на выходном порте (устанавливается высокий уровень) .

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

220 В) . Это позволяет, к примеру, управлять устройством по приготовлению живой и мёртвой воды, или любыми нагревателями или охладителями, или какими-то другими устройствами по желанию.

Схема Таймера

Схема таймера представлена на картинке ниже. Не отображён блок питания, так как возможно использование любого подходящего блока питания на выходное напряжение 5 В и ток 150 мА.

Pic 1. Схема электрическая принципиальная

Схема собрана на Arduino Pro Mini 328 (можно использовать любую: Arduino UNO, Arduino Nano и подобные им) . Более оптимально советую применить Arduino Pro Mini 168, так как скетч использует всего 2190 байт. У меня такой под рукой не оказалось, использовал то, что было. Впоследствии заменю.

Для индикации времени используется четырёх разрядный семисегментный индикатор SH5461AS с общим катодом. Управление этим индикатором осуществляется через сдвиговый регистр на микросхеме SN74HC595N, что позволяет уменьшить количество портов для управления индикатором. Индикация динамическая.

К выходному порту OUT (Arduino pin 9; клема X7) подключается минус от генератора для катушки Мишина. Плюс питания генератора подключается к клеме X6. При пуске таймера на порте устанавливается низкий уровень, что включает генератор. При отключении – на порту устанавливается высокий потенциал и генератор выключается. К порту OUT так же подключен вход от модуля с реле, через его контакты X3 (NC), X4(COM), X5(NO) можно управлять внешними нагрузками, или более мощными нагрузками.

Таймер запитывается от сети

220 В через импульсный блок питания. В моём случае был под рукой блок на +9 В, поэтому после него установил линейный стабилизатор на микросхеме LM317T с выходным напряжением +5 В. Этим напряжением одновременно запитывается и Ардуино, и модуль с реле, и генератор для катушки Мишина. Оптимальным же вариантом является готовый блок питания на +5 В. Как такой прибудет по почте из Китая, то переделаю.

Кнопки управления сенсорные. Использованы, чтобы убрать толкатели и лишний код программы на устранение дребезга. Кнопки TTP223 достаточно чувствительные и легко срабатывают через оргстекло толщиной в 4 мм.

Скетч

Ниже представлен скетч таймера. Файл со скетчем можно скачать в подразделе Приложение.

Реализация

Таймер выполнен в стиле Ардуино . Две пластины из оргстекла, скреплённых саморезами и стойками из пластиковых трубочек, определяют внутреннее пространство устройства. В этом пространстве размещены платы с: Ардуино, модулем индикации, модулем реле, модулем блока питания, сенсорными кнопками, клавишей включения и платой с генератором синусоидального сигнала для катушки Мишина. Общие размеры устройства: 100 * 63 * 42 мм.

Вначале был изготовлен модуль индикации для четырёхразрядного семисегментного светодиодного индикатора типа SH5461AS, или ему подобного с общим катодом у разряда. На небольшой плате установлена панелька DIP16 под микросхему сдвигового регистра SN74HC595N. Сверху этой микросхемы в гнездовые панельные контакты вставляется сам светодиодный индикатор.

Pic 2. Плата модуля индикации. Вид сверху

На каждый сегмент у меня установлен ограничивающий резистор 1,2 кОм (можно от 750. 1000 Ом) для уменьшения тока потребления. При этом яркость индикатора снижена, но в обстановке помещения вполне хорошо видно.

Pic 3. Плата модуля индикации. Вид снизу

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

Pic 4. Плата модуля индикации в сборе

Когда модуль индикации был готов, приступил к написанию программы. Вначале использовал Arduino UNO.

Pic 5. Макетирование и отладка программы на Arduino UNO

. но потом для уменьшения размеров устройства использовал Arduino Pro Mini. Используйте вариант на 16 кБ, что более экономно.

Pic 6. Макетирование и отладка программы на Arduino Pro Mini

Pic 7. Устройство таймера. Вид сверху Pic 8. Устройство таймера. Разные виды

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

Pic 9. Устройство таймера. Разные виды Pic 10. Устройство таймера. Разные виды

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

Pic 11. Подключение генератора с катушкой Мишина

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

Вам понравится:  Стинол 107 схема подключения терморегулятора

Pic 12. Таймер Pic 13. Таймер с катушкой Мишина

При каждом касании сенсорной кнопки ВЫБОР происходит смена времени уставки таймера. Значения фиксированные. Заданы в массиве a_time[15] (см. скетч строчку 100) . При касании сенсорной кнопки ПУСК/СТОП происходит запуск таймера, при повторном касании – останов. Максимальное значение времени 59 минут 59 секунд.

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

Приложение

На развитие сайта и проектов Arduino

Ниже на форме выберите сумму и источник перевода:
Кошелёк Ю-money, Карта банка

Yoomoney .ru (Яндекс.Деньги)
9516

Есть возможность и другим способом оказать помощь на развитие сайта.

Источник

Четырехразрядный семисегментный индикатор Ардуино

Светодиодный четырехразрядный семисегментный индикатор Ардуино используется для создания счетчиков или таймеров на Arduino, вывода числовых значений с датчиков в готовых проектах. Рассмотрим распиновку четырехсимвольного светодиодного индикатора, как подключить модуль к плате Arduino и рассмотрим несколько примеров использования индикатора с подробным описанием программ.

Распиновка 4 разрядного 7 сегментного индикатора

Распиновка сегментов индикатора, состоящего из четырех символов ничем не отличается от одно символьного семисегментного индикатора Ардуино. Отличие модуля в количестве разрядов (символов) — каждый разряд включается отключением питания от соответствующего катода. Таким образом все светодиоды одного сегмента в разрядах (например, A-A-A-A) подключены параллельно к общему катоду.

Распиновка четырехразрядного семисегментного светодиодного индикатора

С включением сегмента довольно просто разобраться. Разберем небольшой пример. Изначально на все 4 разряда (D1, D2, D3, D4) подано напряжение. Чтобы включить сегмент A на втором символе, необходимо на ножку A (анод) подать напряжение. Но сегмент не загорится, пока мы не отключим напряжение у ножки D2. Таким образом можно включать любой светодиод на модуле 7 сегментного индикатора.

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

Подключение 4 разрядного 7 сегментного индикатора

Для этого занятия потребуется:

  • Arduino Uno / Arduino Nano / Arduino Mega;
  • четырехразрядный семисегментный индикатор;
  • макетная плата (breadboard);
  • тактовая кнопка;
  • аналоговый датчик воды;
  • резисторы 220 Ом;
  • провода «папа-папа».

В первом примере мы продемонстрируем простую программу, чтобы можно было наглядно понять, как работает 4-разрядный 7-сегментный индикатор к Ардуино. Схема подключения индикатора к микроконтроллеру представлена на схеме выше, но в первом примере не все пины Ардуино используются в программе. Подключите светодиодный четырехразрядный индикатор к плате и загрузите следующий код.

Источник

Схема подключения 5461as 1

Как подключить 7-сегментные дисплеи на Arduino

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

Семисегментных дисплеев бывает самых разных размеров и цветов. Красный, синий и зеленый — основные цвета. Размеры варьируются от небольших 1,5 см дисплеев до больших 10-и и даже 17 см дисплеев. Некоторые дисплеи имеют одну цифру(разряды), а другие две или четыре.

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

ОСНОВЫ СВЕТОДИОДОВ
Один светодиод состоит из двух клемм, анода и катода. Анод является положительным выводом, а катод — отрицательным выводом:

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

АНОД К GPIO
Когда анод светодиода подключен к цифровому выводу, катод заземлен:

Примечание. Всем светодиодам необходим резистор для ограничения тока, размещенный либо на стороне анода, либо на стороне катода для предотвращения выгорания светодиода. Значение резистора будет определять, насколько ярко светится светодиод. 1 кОм — хорошее место для начала, но вы можете рассчитать идеальное значение с помощью светодиодного резисторного калькулятора .

Чтобы зажечь светодиод с анодом, подключенным к цифровому контакту, подаем на цифровой контакт ВЫСОКИЙ (HIGH) уровень:

void setup() <
pinMode(7, OUTPUT);
digitalWrite(7, HIGH);
>

В блоке void setup () мы настраиваем вывод GPIO 7 как выход pinMode (7, OUTPUT); и подаем на него высокий уровень с помощью digitalWrite (7, HIGH);

КАТОД К GPIO
С катодом светодиода, подключенным к цифровому выводу, анод подключен к Vcc. Для включения светодиода цифровой вывод переключается на НИЗКИЙ уровень, что замыкает цепь на землю:

В этом случае мы подаем на контакт GPIO 7 НИЗКИЙ уровень с помощью digitalWrite (7, LOW); Это замыкает цепь и позволяет току течь от Vcc к земле:

void setup() <
pinMode(7, OUTPUT);
digitalWrite(7, LOW);
>

КАК РАБОТАЮТ 7-СЕГМЕНТНЫЕ ДИСПЛЕИ
Семисегментные дисплеи состоят из 7 светодиодов, называемых сегментами, расположенных в форме «8». Большинство 7-сегментных дисплеев на самом деле имеют 8 сегментов, с точкой справа от цифры, которая служит десятичной точкой. Каждый сегмент именуется буквой от A до G и DP для десятичной точки:

Каждый сегмент на дисплее может управляться индивидуально, как обычный светодиод.
Существует два типа 7-сегментных дисплеев — с общим катодом и с общим анодом .

ДИСПЛЕИ С ОБЩИМ КАТОДОМ
В обычных катодных дисплеях все катоды подключены к земле, а отдельные сегменты включаются и выключаются путем переключения питания на аноды:

Вам понравится:  Транзисторы для усилителя агеева

ДИСПЛЕИ С ОБЩИМ АНОДОМ
В обычных анодных дисплеях все аноды подключены к Vcc, а отдельные сегменты включаются и выключаются путем переключения питания на катоды:

ПОДКЛЮЧЕНИЕ 7-СЕГМЕНТНЫХ ДИСПЛЕЕВ К ARDUINO
Одноразрядные семисегментные дисплеи обычно имеют 10 контактов. Два контакта подключаются к земле, а остальные 8 подключаются к каждому из сегментов. Вот схема контактов популярного катодного дисплея 5161AS :

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

КАК ОПРЕДЕЛИТЬ, КАКОЙ У ВАС ДИСПЛЕЙ С ОБЩИМ АНОДОМ ИЛИ С ОБЩИМ КАТОДОМ
Это можно проверить с помощью тестовой схемы, сконструированной следующим образом:

Подключите заземляющий (черный) провод к любому выводу дисплея. Затем вставьте положительный (красный) провод в каждый из других контактов. Если ни один сегмент не загорелся, переместите провод заземления на другой контакт и повторите процесс. Делайте это, пока не загорится хотя бы один сегмент.

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

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

КАК ОПРЕДЕЛИТЬ РАСПИНОВКУ ДЛЯ ВАШЕГО ДИСПЛЕЯ
Теперь нарисуйте схему, показывающую контакты на вашем дисплее. Когда общий контакт подключен к заземляющему проводу (общий катод) или положительному проводу (общий анод), проверьте каждый контакт другим проводом. Когда сегмент загорается, запишите имя сегмента (AG или DP) рядом с соответствующим выводом на диаграмме.

ПОДКЛЮЧЕНИЕ ОДНОРАЗРЯДНЫХ ДИСПЛЕЕВ К ARDUINO
Как только вы разобрались с расположением выводов, подключить дисплей к Arduino уже будет довольно просто. На этой схеме показано, как подключить одноразрядный дисплей 5161AS (обратите внимание на ограничивающий ток резистор 1 кОм, подключенный последовательно с общими контактами):

В приведенных ниже примерах программ контакты сегментов подключаются к Arduino в соответствии с этой таблицей:

ПРОГРАММИРОВАНИЕ ОДНОРАЗРЯДНЫХ ДИСПЛЕЕВ
УСТАНОВИТЬ БИБЛИОТЕКУ
Мы будем использовать библиотеку SevSeg для управления дисплеем. Библиотека SevSeg работает с одноразрядными и многоразрядными семисегментными дисплеями. Вы можете скачать ZIP-файл библиотеки с GitHub :

Чтобы установить его, откройте Arduino IDE, перейдите в «Sketch»> «Включить библиотеку»> «Добавить .ZIP библиотеку» и выберите загруженный ZIP-файл SevSeg.

ВЫВОД ЧИСЕЛ НА ДИСПЛЕЕ
Эта программа напечатает число «4» на одноразрядном 7-сегментном дисплее:

#include «SevSeg.h»
SevSeg sevseg;

void setup() <
byte numDigits = 1;
byte digitPins[] = <>;
byte segmentPins[] = <6, 5, 2, 3, 4, 7, 8, 9>;
bool resistorsOnSegments = true;

byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
>

void loop() <
sevseg.setNumber(4);
sevseg.refreshDisplay();
>

В этой программе мы создаем объект sevseg в строке 2. Чтобы использовать дополнительные дисплеи, вы можете создать другой объект и вызвать соответствующие функции для этого объекта. Отображение инициализируется с помощью функции sevseg.begin () в строке 11. Другие функции описаны ниже:

hardwareConfig = COMMON_CATHODE; Этот параметр устанавливает тип дисплея. Я использую общий катод, но если вы используете общий анод, тогда используйте COMMON_ANODE.

byte numDigits = 1; Этот параметр устанавливает количество цифр на вашем дисплее. Я использую одноразрядный дисплей, поэтому я установил его на 1. Если вы используете 4-разрядный дисплей, установите это на 4.

byte digitPins [] = <>; Создает массив, который определяет заземляющие контакты при использовании 4-разрядного или многоразрядного дисплея. Оставьте его пустым, если у вас есть одноразрядный дисплей. Например, если у вас 4-разрядный дисплей и вы хотите использовать выводы Arduino 10, 11, 12 и 13 в качестве заземляющих выводов цифр, вы должны использовать это так: byte digitPins [] = <10, 11, 12, 13>; , См. ниже пример ипользования 4-разрядного дисплея для получения дополнительной информации.

byte segmentPins[] = <6, 5, 2, 3, 4, 7, 8, 9>; Это объявляет массив, который определяет, какие выводы Arduino подключены к каждому сегменту дисплея. Порядок в алфавитном порядке (A, B, C, D, E, F, G, DP, где DP — десятичная точка). Таким образом, в этом случае контакт 6 Arduino подключается к сегменту A, контакт 5 подключается к сегменту B, контакт 2 подключается к сегменту C и так далее.

resistorsOnSegments = true; Это должно быть установлено в true, если ваши текущие ограничивающие резисторы соединены последовательно с сегментными выводами. Если резисторы соединены последовательно с цифровыми выводами, установите для этого параметра значение false. Установите это значение true при использовании многозначных дисплеев.

sevseg.setBrightness (90); Эта функция устанавливает яркость дисплея. Его можно настроить от 0 до 100.

sevseg.setNumber (); Эта функция выводит номер на дисплей. Например, sevseg.setNumber (4); напечатает число «4» на дисплее. Вы также можете печатать числа с десятичными точками. Например, чтобы напечатать число «4.999», вы должны использовать sevseg.setNumber (4999, 3); , Второй параметр (3) определяет, где находится десятичная точка. В этом случае это 3 цифры от самой правой цифры. На одноразрядном дисплее установка второго параметра на «0» включает десятичную точку, а установка на «1» отключает его.

sevseg.refreshDisplay (); Эта функция требуется в конце секции цикла, чтобы продолжить отображение номера.

ТАЙМЕР ОБРАТНОГО ОТСЧЕТА
Эта простая программа будет отсчитывать от нуля до 9 и затем возвращаться к началу:

Вам понравится:  Транзистор s8550 его аналог

#include «SevSeg.h»
SevSeg sevseg;

void setup() <
byte numDigits = 1;
byte digitPins[] = <>;
byte segmentPins[] = <6, 5, 2, 3, 4, 7, 8, 9>;
bool resistorsOnSegments = true;

byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
>

void loop() <
for(int i = 0; i
sevseg.setNumber(i, i%2);
delay(1000);
sevseg.refreshDisplay();
>
>

Код похож на предыдущий скетч. Единственное отличие состоит в том, что мы создаем переменную count «i» в операторе for в строке 16 и увеличиваем ее по одному числу за раз.

Sevseg.setNumber (I, I% 2); функция печатает значение i. Аргумент i% 2 делит i на 2 и возвращает остаток, в результате чего десятичная точка включает все остальные числа.

Таймер обратного отсчета — хороший способ продемонстрировать основы программирования дисплея, но теперь давайте попробуем сделать что-то более интересное.

ИГРАЛЬНЫЕ КОСТИ
Этот пример состоит из кнопки и одного 7-сегментного дисплея. Каждый раз, когда нажимается и удерживается кнопка, на дисплее быстро появляются цифры 0-9. Как только кнопка отпущена, дисплей продолжает цикл в течение того периода времени, почти равного времени нажатия кнопки, а затем отображает число вместе с десятичной точкой, чтобы указать новый номер.
Чтобы построить схему (с дисплеем 5161AS), подключите его следующим образом:

Затем загрузите эту программу в Arduino:

#include «SevSeg.h»
SevSeg sevseg;

const int buttonPin = 10; // the pin that the pushbutton is attached to
int buttonState = 0; // current state of the button
int lastButtonState = LOW; // previous state of the button
int buttonPushCounter = 0; // counter for the number of button presses
long counter = 0;
long max_long_val = 2147483647L;

void setup() <
byte numDigits = 1;
byte digitPins[] = <>;
byte segmentPins[] = <6, 5, 2 , 3, 4 , 7, 8, 9>;
bool resistorsOnSegments = true;

byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);

pinMode(buttonPin, INPUT_PULLUP);
Serial.begin(9600);
lastButtonState = LOW;
>

void loop() <
buttonState = digitalRead(buttonPin);
if(buttonState == HIGH) <
buttonState = LOW;
>

else
buttonState = HIGH;

if(buttonState == HIGH) <
Serial.println(«on»);
lastButtonState = HIGH;
buttonPushCounter++;
if(counter
counter++;
buttonPushCounter %= 9;
sevseg.setNumber(buttonPushCounter, 1);
sevseg.refreshDisplay();
delay(100 — (counter%99));
>

else <
Serial.println(«off»);
if(lastButtonState == HIGH) <
Serial.println(«in»);
buttonPushCounter++;
buttonPushCounter %= 7;
if(buttonPushCounter == 0)
buttonPushCounter = 1;
counter—;
sevseg.setNumber(buttonPushCounter, 1);
sevseg.refreshDisplay();
delay(100 — (counter%99));
if(counter == 0) <
lastButtonState = LOW;
sevseg.setNumber(buttonPushCounter, 0);
sevseg.refreshDisplay();
>
>
>
>

4-РАЗРЯДНЫЙ 7-СЕГМЕНТНЫЙ ДИСПЛЕЙ
До сих пор мы работали только с одноразрядными 7-сегментными дисплеями. Для отображения такой информации, как время или температура, нам нужно использовать 2- или 4-разрядный дисплей или подключать несколько одноразрядных дисплеев рядом.

В многоразрядных дисплеях один сегментный вывод (A, B, C, D, E, F, G и DP) контролирует один и тот же сегмент на всех цифрах. Многоразрядные дисплеи также имеют отдельные общие выводы для каждой цифры. Это цифровые контакты. Вы можете включить или выключить цифру, переключив цифровой pin.

Я использую 4-разрядный 7-сегментный дисплей марки 5641AH, но приведенные ниже схемы подключения также будут работать с 5461AS.
Вот схема, показывающая распиновку этих дисплеев:

Цифровые контакты D1, D2, D3 и D4 должны быть подключены к токоограничивающим резисторам, поскольку они являются общими клеммами цифр. Соединения показаны ниже:

Эта простая программа выведет число «4.999» на дисплей:

#include «SevSeg.h»
SevSeg sevseg;

void setup() <
byte numDigits = 4;
byte digitPins[] = <10, 11, 12, 13>;
byte segmentPins[] = <9, 2, 3, 5, 6, 8, 7, 4>;

bool resistorsOnSegments = true;
bool updateWithDelaysIn = true;
byte hardwareConfig = COMMON_CATHODE;
sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
sevseg.setBrightness(90);
>

void loop() <
sevseg.setNumber(4999, 3);
sevseg.refreshDisplay();
>

В приведенном выше коде мы устанавливаем количество цифр в строке 5 с помощью byte numDigits = 4; ,

Поскольку в многоразрядных дисплеях используются цифровые контакты, нам также необходимо определить, какие контакты Arduino будут подключаться к цифровым контактам. Использование byte digitPins [] = <10, 11, 12, 13>; в строке 6 вывод Arduino 10 в качестве первого разряда, Arduino 11 в качестве второго разряда и так далее.

Чтобы напечатать числа с десятичной точкой, мы устанавливаем второй параметр в sevseg.setNumber (4999, 3); до трех, что ставит его на три знака после запятой справа от цифры.

ДИСПЛЕЙ ТЕМПЕРАТУРЫ
Этот пример считывает температуру с термистора и отображает ее на четырехзначном дисплее.
Подключите схему следующим образом:

!Если у вас есть вопросы по использованию термистора или вы просто хотите узнать о них больше, ознакомьтесь с нашим другим руководством по использованию термистора с Arduino.

Как только все подключится, загрузите этот код в Arduino:

#include «SevSeg.h»
SevSeg sevseg;

int ThermistorPin = 0;
int Vo;
float R1 = 10000;
float logR2, R2, T;
float c1 = 1.009249522e-03, c2 = 2.378405444e-04, c3 = 2.019202697e-07;

void setup() <
byte numDigits = 4;
byte digitPins[] = <10, 11, 12, 13>;
byte segmentPins[] = <9, 2, 3, 5, 6, 8, 7, 4>;
bool resistorsOnSegments = true;
byte hardwareConfig = COMMON_CATHODE;

sevseg.begin(hardwareConfig, numDigits, digitPins, segmentPins, resistorsOnSegments);
>

void loop() <
Vo = analogRead(ThermistorPin);
R2 = R1 * (1023.0 / (float)Vo — 1.0);
logR2 = log(R2);
T = (1.0 / (c1 + c2 * logR2 + c3 * logR2 * logR2 * logR2));
T = T — 273.15;
T = (T * 9.0) / 5.0 + 32.0; //Comment out for Celsius

static unsigned long timer = millis();

if (millis() >= timer) <
timer += 300;
sevseg.setNumber(T, 2);
>

Это выведет температуру в градусах Фаренгейта. Чтобы отобразить температуру в градусах Цельсия, закомментируйте строку //Comment out for Celsius.

Сам по себе дисплей будет обновляться каждый раз, когда температура меняется даже незначительно. Это создает раздражающее мерцание. Чтобы справиться с этим, мы вводим механизм таймера, где мы читаем значение из термистора каждые 300 миллисекунд (строки с 30 по 34).

Переменная температуры «T» выводится на дисплей в строке 35 с sevseg.setNumber (T, 2, false); ,

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

Источник

Поделиться с друзьями
Радиолюбительские схемы
Adblock
detector