индикатор ардуино

Содержание

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

Одноразрядный 7-сегментный индикатор

индикатор ардуино

Мы имеем дело опять с набором светодиодов, только на этот раз их 8 (семь полосок и один кружочек) и они расположены не друг за другом, а в определённом порядке, которые позволяют вам выводить цифры от 0 до 9.

Важная отличительная черта — у индикатора имеются общие ножки для катода (ножки 3 и 8). Всего их две и они равноценны. Это удобно, вам не нужно будет от каждого катода вести отдельный провод на землю. Достаточно выбрать один из общих катодов и от неё соединиться с GND. Аноды у всех отдельные.

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

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

Схематично можно изобразить следующим образом.

индикатор ардуино

индикатор ардуино

индикатор ардуино

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

индикатор ардуино

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

Если мы хотим помигать цифрой 1, то нам надо использовать светодиоды 4 и 6, которые идут на порты 4 и 6 платы микроконтроллера.

Если мы захотим вывести цифру 5, то понадобится работать с пятью светодиодами, цифру 8 — уже семь светодиодов. При сложных проектах работать с таким количеством становится затруднительно. Придётся каждый раз смотреть на схему, что вспомнить, какие светодиоды нужно включить для отображения каждой цифры.

Но можно пойти другим путём. А поможет нам единица информации — байт. Байт в своём двоичном представлении состоит из 8 бит. Каждый бит может принимать значения 0 или 1. А наш светодиодный индикатор как раз и состоит из восьми светодиодов. Таким образом мы можем представить цифру на индикаторе в виде набора байт, где единица будет отвечать за включённый диод, а ноль — за выключенный диод.

Число в двоичном виде записывается следующим образом:

Первые два символа 0b дают понять, что речь идёт о двоичном счёте. Все нули означают, что все светодиоды будут выключены.

У нас задействованы порты от 2 по 9. Второй порт записывается в самую правую позицию. Чтобы его включить, поставим единицу.

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

Комбинируя набор нулей и единиц, можно создать нужные нам цифры. Например, цифра 0 будет представлена как 0b01110111.

Давайте напишем пример вывода цифры 0.

Код немного избыточен, переменная mask здесь лишняя, но она нам пригодится в следующем примере. Здесь важно, что мы пробегаемся в цикле по числу светодиодов и устанавливаем у всех режим OUTPUT. Затем также в цикле проходим через все светодиоды и узнаём, комбинацию бит с помощью метода bitRead(). Полученная информация помогает нам подсветить нужные светодиоды и получить цифру 0 на выходе.

Для остальных цифр можно также подготовить нужные наборы бит.

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

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

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

Позже я добавил на плату ещё один светодиод, который загорался при значении 0. При других значениях он был выключен.

На Амперке есть упоминания о двух компонентах, которые можно использовать для светодиодного индикатора. Я пока ими не пользовался:

Четырёхразрядный 7-сегментный индикатор

индикатор ардуино

У четырёхразрядного 7-сегментного индикатора двенадцать выводов: 8 для каждого разряда с точкой и 4 для выбора нужного разряда. Чтобы разобраться в подключении, желательно иметь картинку перед глазами.

Если индикатор держать точкой вниз, то отсчёт идёт против часовой стрелки от нижнего левого угла.

индикатор ардуино

Выводы 6, 8, 9 и 12 отвечают за конкретные разряды. Это могут быть общие катоды или общие аноды.

Выводы 1, 2, 3, 4, 5, 7, 10, 11 отвечают за конкретные сегменты. Например, самая верхняя полоска обозначена буквой A и имеет номер вывода 11. Таким образом, если подключить выводы 11 и 12 индикатора к выводу 11 и 12 на плате Arduino, то можем управлять этой полоской стандартным способом, например, помигать светодиодом.

индикатор ардуино

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

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

Включаем букву H на всех разрядах.

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

Библиотека fDigitsSegtPin

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

Модули 7-сегментных дисплеев

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

Как сделать индикатор уровня воды с помощью Arduino

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

индикатор ардуино

Когда может пригодиться?

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

Часто узнать количество воды в резервуаре может быть утомительной задачей. Обычно вы поднимаетесь по лестнице и проверяете уровень вручную или вы услышите что вода переполняется сверху.

индикатор ардуино

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

Мы решим эту задачу с совершенно другим подходом к знанию уровня воды — с использованием ультразвукового модуля и Ардуино. Преимущество этого метода заключается в том, что он бесконтактный, поэтому такие проблемы, как коррозия электродов, не будут влиять на эту систему. Кроме того, этот индикатор уровня воды Arduino намного проще устанавливать, чем обычные системы.

Как работает индикатор уровня воды Arduino?

Этот индикатор уровня воды Ардуино использует ультразвуковой датчик или, по-другому, Ping датчик для определения уровня воды в баке. Датчик Ping измеряет расстояние, используя гидролокатор.

индикатор ардуино

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

Этот проект может быть реализован на одной из плат Arduino, если микроконтроллером платы является непосредственно микроконтроллер ATmega 328.

Комплектующие

По традиции переходим к комплектующим, набор деталей довольно большой:

1 Микроконтроллер ATMega328P или плата Arduino
1 HC-SR04 ультразвуковой модуль (также известный как датчик PING)
1 10K резистор
1 Кристалл 16 МГц
2 22pf дисковые конденсаторы
Провода-перемычки
1 Регулятор LM7805 5V
1 9В батарея и разъем
1 Электролитический конденсатор 10uF
1 Макетная плата (или печатная плата)
1 Инструмент для зачистки проводов

Схема соединений

индикатор ардуино

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

Скетч для Ардуино

Скопируйте прилагаемый ниже скетч в Arduino >

Загрузите код для индикатора уровня воды Arduino непосредственно на плату Arduino или в микроконтроллер ATMega328P.

Ультразвуковой датчик и водный резервуар

Закрепите датчик так, чтобы он непосредственно смотрел на воду в баке. Основная плата управления со светодиодами может быть закреплена внутри дома в любом удобном положении. Любые многожильные кабели (Ethernet-кабель) могут использоваться для соединения датчика и остальной части схемы.

Теперь просто подключите аккумулятор (питание) и ваш индикатор уровня воды Ардуино готов к использованию.

цифровая электроника вычислительная техника встраиваемые системы

Arduino и четырехразрядный семисегментный индикатор

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

индикатор ардуино

В данном случае будем использовать модуль четырехзначного светодиодного индикатора с общим катодом.

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

индикатор ардуино

Светодиодные сегменты индикатора требуют подключения токоограничивающих резисторов при питании от 5 В на логическом выводе. Значение резистора обычно берется между 330 и 470 Ом. Также рекомендуется использование транзисторов для обеспечения дополнительного тока, поскольку каждый вывод микроконтроллера может выдавать максимум 40 мА. Если включить все сегменты разряда (цифра 8), то потребляемый ток превысит этот предел. На рисунке ниже показана схема подключения четырехразрядного семисегментного индикатора с применением транзисторов токоограничивающих резисторов.

индикатор ардуино

Далее приведены схемы подключения индикатора к выводам Arduino. Здесь использованы биполярные npn-транзисторы BC547. Потенциометр 10 КОм, подключенный ко входу платы A0 позволяет изменять отображаемое на индикаторе значение от 0 до 1023.

индикатор ардуино

индикатор ардуино

На плате Arduino цифровые выходы D2-D8 в данном случае предназначены для управления сегментами от «a» до «g», а цифровые выходы D9-D12 используются для управления разрядами от D0 до D3. Следует заметить, что в данном примере точка не используется, но в скетче, приведенном ниже, есть возможность ее задействовать. Вывод D13 платы Arduino зарезервирован для управления сегментом точки.

индикатор ардуино

Ниже представлен код, который позволяет управлять четырехразрядным сегментным индикатором с помощью платы Arduino. В нем в массиве numeral задаются коды чисел от 0 до 9 в двоичной форме. Данный скетч поддерживает как индикаторы с общим катодом (по умолчанию), так и индикаторы с общим анодом (для этого нужно раскомментировать одну строчку в конце скетча).

Программирование Arduino урок 12 — семисегментный индикатор часть 1

Доброго времени суток! После моего затяжного и вынужденного перерыва, продолжим освоение курса «Программирование Ардуино». В одном из наших предыдущих уроков, мы уже работали с последовательностью светодиодов, теперь пора переходить к следующему этапу обучения. Темой сегодняшней статьи будет – 7-сегментный индикатор.

индикатор ардуино

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

Прошлый раз мы работали с последовательностью из 8 светодиодов, сегодня их также будет 8 (7 – светодиодных полосок и 1 точка). В отличии от предыдущей последовательности, элементы этого набора не выстроенные в ряд (друг за дружкой), а расположены в определённом порядке. Благодаря чему используя лишь один компонент можно вывести 10 цифр (от 0 до 9).

Еще одно существенное отличие, что выделяет данный индикатор на фоне простых светодиодов. У него общий катод (вернее две равноценные ножки 3 и 8, на который заведен катод). Достаточно всего лишь соединить один из катодов с землей (GND). Аноды у всех элементов индикатора индивидуальные.

Небольшое отступление. Все выше сказанное относится к 7-сегментным индикаторам с общим катодом. Однако существуют индикаторы с общим анодом. Подключение таких индикаторов имеет существенные отличия, поэтому прошу не путать «грешное с праведным». Необходимо четко понимать, какой именно тип семисегментника у вас в руках!

Кроме отличий между простыми светодиодами и 7-сегментными индикаторами, есть и общие черты. Например: индикаторы, как и светодиоды, можно смонтировать в ряд (последовательность) для отображения двух-, трёх-, четырехзначных чисел (разрядов). Однако не советую сильно заморачиваться по поводу самостоятельной сборки сегментных наборов. В продаже «рядом» с одноразрядными индикаторами, продаются и многоразрядные.

Надеюсь, вы не забыли об необходимости использования токоограничивающих резисторов при подключении светодиодов. Это же относится и к индикаторам: на каждый элемент индикатора должен быть подключен свой резистор. 8 элементов ( 7 + 1) – 8 резисторов.

У меня под рукой оказался семисегментник с маркировкой 5161AS (общий катод). Распиновка контактов:

индикатор ардуиноиндикатор ардуиноиндикатор ардуино

индикатор ардуино

Как говорил ранее, для того, чтобы включить сегмент «А» подключим к любому общему контакту (3 или 8) «землю», а на вывод 7 подадим 5В питания. Если индикатор с общим анодом, то на анод подаём 5В, а на вывод сегмента «землю»!

Соберём тестовый стенд. Соединяем провода по порядку, начиная с первой ножки, которая идёт на 2-й вывод платы Ардуино. Землю подключим к 8 выводу индикатора.

индикатор ардуино

После того, как стенд собран можно приступать к написанию прошивки.

Для проверки индикатора запустим написанную программу. Выберем элемент «А» и помигаем им.

индикатор ардуино

Теперь помигаем цифрой 2. Для этого включим еще несколько элементов.

индикатор ардуино

Чтобы вывести одну цифру, нужно написать n-число строчек кода. Затруднительно, не находите.

Есть другой путь. Для того, чтобы вывести любую цифру на индикаторе, сначала её нужно представить в виде определенной последовательности бит.

Таблица соответствия.

индикатор ардуино

Если у дисплея общий анод, то 1 нужно заменить на 0, а 0 – на 1!

Столбец hex – представление цифры в байтовом виде (более детально поговорим об этом во второй части).

Число в двоичной системе счисления записывается следующим образом: 0b00000000. 0b – двоичная система. Нули означают, что все светодиоды выключены.

При подключении мы задействовали выводы с 2 по 9. Чтобы включить 2 вывод записываем в него единицу = 0b00000001. За точку отвечает четвёртый бит справа. За чёрточку посередине индикатора отвечает самый последний бит.

Давайте напишем пример вывода цифры 0.

индикатор ардуино

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

Примечание: функция bitRead() считывает состояние указанного бита и возвращает значение состояния (0 или 1). bitRead(x, n) где, x — число, бит которого необходимо считать; n — номер бита, состояние которого необходимо считать. Нумерация начинается с младшего значащего бита (крайнего правого) с номером 0.

И в завершении первой части напишем небольшой счетчик.

arduinoLab

индикатор ардуино

Динамическая индикация и 7 сегментный индикатор, модуль на двух 74HC595, код из видео

4bit Digital Tube LED Display Module — Обзор модуля с семисегментным индикатором и двумя сдвиговыми регистрами 74HC595. разберем работу с динамической индикацией.

Особенности модуля:

Модуль базируется на двух сдвиговых регистрах TM74HC595 к которым подключен 4х разрядный 7 сегментный индикатор ZS3641BS. Схема похожего модуля, с двумя индикаторами ZS3641BS и 8 сегментами ниже, отличие только в дополнительном индикаторе.

индикатор ардуино

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

Динамическая индикация:

Для отображения всех разрядов применяется динамическая индикация, что это и как работает показано в видео ниже.

Подключение модуля к Arduino:

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

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

● Проект 7: Матрица 4-разрядная из 7-сегментных индикаторов. Делаем динамическую индикацию

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

Необходимые компоненты:

Матрица 4-разрядная из семисегментных индикаторов состоит из четырех семисегментных индикаторов и предназначена для одновременного вывода на матрицу 4 цифр, также есть возможность вывода десятичной точки. Схема 4-разрядной матрицы на 7-сегментных индикаторах показана на рис. 7.1.

индикатор ардуино

Для вывода цифры необходимо зажечь нужные светодиоды на контактах A–G и DP и выбрать нужную матрицу подачей LOW на вывод 6, 8, 9 или 12.
Подключим контакты матрицы к плате Arduino и будем выводить цифры на различные разряды матрицы. Для подключения нам понадобятся 12 выводов Arduino. Схема соединений для подключения 4-разрядной матрицы к плате Arduino показана на рис. 7.2. При подключении контактов используются ограничительные резисторы 510 Ом.

индикатор ардуино

Напишем скетч последовательного вывода цифр (0–9) на произвольный регистр матрицы. Для выбора случайного значения из диапазона будем использовать функцию random(). В массиве numbers[] хранятся значения, соответствующие данным для отображения цифр 0–9 (старший разряд байта соответствует метке сегмента A индикатора, а младший – сегменту G), в массиве pins[] – значения контактов для сегментов A–G и DP, в массиве pindigits[] – значения контактов для выбора разряда матрицы. Содержимое скетча показано в листинге 7.1.

Порядок подключения:

1. Подключаем семисегментный индикатор по схеме на рис. 7.3.
2. Загружаем в плату Arduino скетч из листинга 7.2.

3. Нажатием кнопки запускаем или останавливаем секундомер.

Подключение семисегментного индикатора (1 разряд) к Arduino по SPI

Наверняка у многих валяется вот такая светодиодная панелька:

индикатор ардуино

Правильное название: семисегментный индикатор

Он получил такое названия благодаря тому, что в его корпусе находится 7 сегментов — светодиодов (часто добавляют ещё 8-й — точку).

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

Работать с семисегментом надо как со сборкой светодиодов (с общим катодом или анодом). Распиновку можно узнать, прозванивая ножки мультиметром. У меня получилось так: ( общий катод)

индикатор ардуино

Каждый сегмент — это отдельный светодиод (красный или зелёный). Если подключаем к источнику 5V, то последовательно с каждым из них нужно подключить по резистору (150-300 ом) — чтобы не перегорели.

А соединять с Arduino я предлагаю через сдвиговый регистр 74HC595N (интерфейс SPI)

индикатор ардуино

схема на BreadBoard:

индикатор ардуино

Принципиальную схему не смог нарисовать в sPlan (нет 28-пиновой Atmega), так-что сделал в Fritzing:

индикатор ардуино

Описание схемы:

— ноги 15,1,2,3,4.5,6,7 — это выходы регистра. Их подключаем к соответствующим ногам индикатора (A к Q0, B к Q1, C к Q3, ну и т. д.. Главное, чтобы было по порядку — тогда часть программирования будет проще)
— ноги 8 и 16 — это питание микросхемы (подключаем к GND и +5V Arduino)
— 10 ногу к +5V
— 13 ногу к GND
— Ноги 14, 12, 11 — управляющие пины шины SPI .
11 (SH_CP) — тактовая шина (clock) к 13 контакту Arduino (не принципиально)
12 (ST_CP) — защёлка (latch) к 12 контакту Arduino (не принципиально)
14 (DS) — данные (data) к 8 контакту Arduino (не принципиально)

Прошивка

Код очень простой. Мы даже не будем использовать библиотеку SPI. Посылать данные будем функцией shiftOut()

Она будет отправлять регистру 1 байт (8 бит). Каждый сегмент — это 1 бит. ( Если отправить вот такой байт: 0b10000000, то получим такую вот картину: (зажжётся первый сегмент — А)

индикатор ардуино

Суть: Зажигая определённую комбинацию сегментов, мы получаем на экране цифру. Так, например, если зажечь сегменты B и С то загорится единичка. A, B, C — семёрка, и т. д..

Сам код: SevSeg1_SPI.ino

индикатор ардуино

Список радиоэлементов

Прикрепленные файлы:

Оценить статью

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (4) индикатор ардуино| Я собрал ( 0 ) | Подписаться

Для добавления Вашей сборки необходима регистрация

индикатор ардуино

индикатор ардуино

индикатор ардуино

#define CLOCK 13 //SH_CP
#define DATA 12 //DS
#define LATCH 8 //ST_CP
int val = 0;

//настраиваем контакты на выход
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(LATCH, OUTPUT);

//отключаем LATCH (чтобы регистр не ждал данных)
digitalWrite(LATCH, HIGH);
>

0b12345678
*/
switch (val)

//включаем LATCH (Начинаем общение)
digitalWrite(LATCH, HIGH);
if(val==26)
delay(1000);
val=val+1;
>

индикатор ардуино

#define CLOCK 13 //SH_CP 11 74СН
#define DATA 12 //DS 14 74СН
#define LATCH 8 //ST_CP 12 74СН

//настраиваем контакты на выход
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
pinMode(LATCH, OUTPUT);

//отключаем LATCH (чтобы регистр не ждал данных)
digitalWrite(LATCH, HIGH);
>

Послесловие

Вдруг, кто-то захочет повторить датчик, то пишите мне на почту или в комментарии, я скину 3d-модели и даже могу помочь с их печатью 🙂

Датчик уровня жидкости своими руками

индикатор ардуино

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

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

В начале, думал применить принцип поплавка в цилиндре, взяв за основу емкость из под силикона (как видно на рисунке возможных вариантов исполнения датчика уровня жидкости).

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

Таким образом, появилась возможность закрепить устройство на 50мм-й трубе, исключив другие варианты крепления. Все материалы должны быть из пластмассы, алюминия, бронзы, нержавейки, и так далее – устойчивыми к среде, к которой вы их собирайтесь применить!

Принцип работы датчика уровня жидкости основан на магните и герконах.

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

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

Схема датчика уровня жидкости

Принцип работы датчика уровня жидкости

Возможные варианты исполнения датчика уровня жидкости

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

По мере поднятия уровня жидкости (заполнения резервуара), происходит перемещение магнита и переключение 2-го геркона, который подключает желтый светодиод HL2 и выключает HL1.

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

д.). Добавив реле в схему, можно будет применить его в качестве исполнительного устройства для подключения более мощных нагрузок. Также, можно подключить ко 2-у геркону зуммер, для звукового оповещения или мобильный телефон и так далее.

Питание девайса от любого источника 3-12В. Например от телефонной зарядки с импульсным блоком питания на 5 вольт или двух батареек по 1,5В, также подойдет более компактная на 3В. При этом, надо будет снизить сопротивление резистора R1.

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

Таким образом, можно обойтись очень простой схемотехникой, без микроконтроллеров и т.п. Ведь чем проще – тем надежнее!

Итак, нам понадобится следующие материалы:

– муфта соединительная для канализационных труб ПП d=50mm х2шт.- заглушка канализационная d=50mm х2шт.- хомут пластиковый (браслет) х1шт.- профили пластмассовые U-образные (из мебельной фурнитуры).- термоусадочный кембрик d=30-40mm, d=3-10mm.- пластмассовая или текстолитовая пластина =4-6mm.- заклепки алюминиевые х10шт.- магнит неодиновый (от жесткого диска компьютера) х1шт.- герконы 3-хконтактные х2шт.- кнопка или выключатель низковольтный х1шт.- резистор 680-1,5к. х1шт.- светодиоды х3шт.- провода низковольтные (например для охранной сигнализации, 5-и жильный).- штекер на 4 ножки (например от диммера для RGB LED).- термоклей или силикон.- питание 12В или батарейка на 3В (от компьютера).

– дрель- фен строительный- термопистолет- паяльник

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

Изготовление

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

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

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

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

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

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

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

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

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

Желаю Вам креативности и упорства в домашних самоделках! Специально для сайта “Полезные самоделки”.

Измеритель уровня воды в резервуаре

индикатор ардуиноСхемы / Измерительная техника

Схема:
На страницах радиолюбительских журналов представлено множество различных измерителей и индикаторов уровня воды. Обычно они сделаны в виде щупов с контактами, и для определения уровня используют свойство электропроводности воды. Здесь используется такой же метод, но число индицируемых уровней может быть 10. Щуп представляет собой пластмассовую трубку, длина которой должна соответ­ствовать глубине резервуара, наполняемого водой.

Внутри трубки проходит по всей её длине луженая медная проволока толщиной около 1 мм. К этой проволоке припаяны резисторы R1 -R10, а выводы этих резисторов через отверстия в трубке выведены наружу.

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

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

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

Устройство измерительной схемы:

В её основе типовая схема измерителя уровня напряжения на основе микросхемы LM3914. Уровень воды индицируется шкалой из 10 светодиодов. Величины сопротивлений R1-R10 подобраны так, что число погруженных в воду контактных колец трубки-щупа оказывается равным числу светящихся светодиодов.

Таким образом, высота столбика индикаторных светодиодов точно отображает степень заполнения резервуара. Электрически, щуп-трубка с резисторами R1-R10 образует переменное сопротивление, величина которого изменяется в зависимости от глубины погружения трубки. Это сопротивление вместе с резистором R11 образует делитель напряжения, поступающего на базу транзистора VT1.

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

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

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

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

Соединяется схема индикатора со щупом-трубкой посредством экранированного кабеля, в качестве которого можно использовать практически любой экранированный провод, например, антенный телевизионный РК-75. Если расстояние невелико можно обойтись монтажным проводом или даже телефонной «лапшой».

В любом случае, провод не должен быть погруженным в воду, так как это неизбежно приведет к его коррозийному повреждению. Для подключения используется разъемная пара (XP1-XS1) типа «Азия», – как в видеотехнике. Индикаторные светодиоды можно использовать любого типа, с напряжением падения не более 3V.

Автор использовал отечественные красные светодиоды АЛ307, но лучше использовать светодиоды повышенной яркости, так индикация будет заметнее. Светодиоды HL1 и HL10 можно заменить мигающими. Это позволит привлечь внимание к критическим состояниям уровня воды.

В типовой схеме LM3914 токоограничительных резисторов R19-R28 нет, но как оказалось, в таком режиме выходы LM3914 отдают неравномерный ток и яркость свечения светодиодов получается разной. Резисторы её уравнивают, разгружая выходы ключей микросхемы. Источник питания должен быть стабилизированным, так как от него зависит напряжение, поступающее на базу транзистора VT1.

Кроме того, необходимо чтобы источник питания не имел гальванической связи выхода с электросетью (с целью электробезопасности). То есть, оптимальным будет вариант источника с маломощным силовым трансформатором, и интегральным стабилизатором на выходе, например, на микросхеме КР142ЕН8Б или 7812.

За основу источника можно взять готовый сетевой адаптер, если он стабилизированный, то никаких изменений в него вносить не нужно. Можно сделать блок питания на основе любого маломощного силового трансформатора, с переменным напряжением на вторичной обмотке 12-15V. Затем, стандартный мостовой выпрямитель, сглаживающий конденсатор и интегральный стабилизатор.

Вместо микросхемы LM3914 можно использовать другие аналогичные микросхемы, предназначенные для схем аналоговых индикаторов на светодиодах, но это потребует изменения значений сопротивлений резисторов R1-R10, а так же и их числа.

Число этих резисторов должно соответствовать количеству порогов индикации, а соотношение их сопротивлений зависит от закона индикации (линейный, логарифмический). Кроме того, нужно будет выбрать соотношение резисторов R13 и R14 соответственно чувствительности индикаторной микросхемы. Резистором R15 устанавливают яркость горения светодиодов. Все детали индикаторной схемы расположены на макетной печатной плате, представляющей собой решето отверстий с шагом 2,54 мм, с металлизированными дорожками. Такие макетные платы сейчас в продаже встречаются чаще фольгированного стеклотекстолита, и стоят не намного больше. На мой взгляд, при единичном изготовлении электронных приборов лучше пользоваться такими макетными платами, так как разработка и изготовление единичного экземпляра всегда сливаются в процессе. На макетной плате проще проработать схему, внести изменения. Все конденсаторы должны быть на напряжение не ниже 16V.

Радиоконструктор №6 2009г стр. 32

Датчик протечки и дождя ардуино

индикатор ардуино

В этой статье мы узнаем, как можно использовать датчик протечки ардуино. Такие датчики часто называют по-разному: датчик дождя, влаги, капель, протечки.

При этом почти всегда имеется в виду один и тот же датчик, как правило, выполненный в виде готового модуля. Датчик легко подключается к Arduino, скетч для работы с такими датчиками прост, цена не высока.

Идеальный вариант для несложных проектов на Arduino Uno, Mega, Nano.

Описание датчика

Датчик протечки и дождя в проектах ардуино позволяет определить появление капель влаги и вовремя отреагировать на это, например, включив оповещение.

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

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

Модуль датчика состоит из двух частей:

  • «Сенсорная» плата обнаружения капель. Она отслеживает количество попавшей на неё влаги. По сути, сенсор представляет собой простой переменный резистор, замыкаемый водой в разных местах, что вызывает изменение сопротивления.
  • Вторая часть датчика – сдвоенный компаратор (как правило, LM393, но возможны варианты LM293 и LM193). Его главная задача — преобразование значения с сенсора в аналоговый сигнал от 0 до 5 вольт.

На рынке встречаются варианты датчиков как с разнесенными сенсором и компаратором, так и с объединенными на одной панели.

Датчик запитывается от напряжения 5 В, который можно легко завести с любой платы Arduino. Как правило, у модуля датчика доступно два выхода:

  • Аналоговый. Значение, получаемое контроллером, будет варьироваться от 0 до 1023. Где 0 – все затопило или идет ливень, сенсор очень влажный, 1023 – сухая погода, сенсор сухой (в некоторых датчиках встречаются противоположные значения, 1023 – максимальная влажность, 0 – максимальная сухость).
  • Цифровой. Выдает высокое (5В) или низкое напряжение в случае превышения некоторого порога. Уровень порога срабатывания регулируется с помощью подстроечного резистора.

Подключение датчика протечки и дождя к ардуино

Для подключения датчика к ардуино понадобится сама плата (UNO, Mega, Nano или любая другая) и сам датчик. Если вы хотите проверять интенсивность осадков, то рекомендуется расположить датчик не горизонтально, а под некоторым углом, чтобы накапливаемые капли стекали вниз.

Схема подключения модуля датчика протечки к ардуино:

  • VCC (вход питания) – должен совпадать для соединенной схемы ардуино по напряжению и току. То есть в данном случае 5В;
  • GND – заземление;
  • АO – аналоговый выход;
  • DO — цифровой выход.

Аналоговый выход присоединяем к аналоговому пину микроконтроллера, например, A1. Цифровой выход, соответственно подключается к одному из цифровых пинов. Напряжение можно подать с вывода 5В платы ардуино, земля соединяется с землей.

При подключении датчиков протечки в реальных проектах надо обязательно предусматривать защиту электронной части модуля от попадания влаги!

Пример скетча

#define PIN_ANALOG_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя
#define PIN_DIGITAL_RAIN_SENSOR 5 // Цифровой вход для сигнала датчика протечки и дождя void setup()

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

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

Пример проекта дождевой сигнализации

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

Скетч для проекта с сигнализацией

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

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

Задержка между обнаружением влаги и срабатыванием звукового сигнала составляет чуть больше 30 секунд.

#define PIN_RAIN_SENSOR A1 // Аналоговый вход для сигнала датчика протечки и дождя
#define PIN_ALERT 6 // Цифровой выход для сигнализации
#define MAX_COUNTER 30 // Пороговое значение для счетчика
#define ALERT_LEVEL 300 // Пороговое значение для счетчика int curCounter= 0; // Счётчик для сбора “статистики”, который увеличивается на 1 каждую секунду после срабатывания датчика void setup()
vo >= MAX_COUNTER) // Определяем уровень влажности if (sensorValue https://ArduinoMaster.ru/datchiki-arduino/datchik-protechki-i-dozhdya-v-arduino-opisanie-shemy-sketchi/

Датчик уровня воды (Угловой)

индикатор ардуино

Поплавковый датчик уровня воды— позволяет контролировать уровень воды, проверяя выходную цепь на электрическое замыкание. Датчик замыкает цепь, сигнализируя о том, что он «утонул».

Характеристики

  • Напряжение цепи: до 100 В
  • Ток в цепи: до 500 мА
  • Сопротивление при замыкании: до 100 Ом.
  • Рабочая температура: -20 … 80 °С (отрицательные температуры для незамерзающих жидкостей)
  • Длина провода: 350 мм
  • Габариты: указаны на чертеже
  • Вес: 10 г.

Подключение

Для удобства подключения к Arduino воспользуйтесь Trema Shield, Trema Power Shield, Motor Shield или Trema Set Shield.

  • Один провод датчика подключается к выводу GND (так как второй провод будет подтянут до уровня логической «1»).
  • Другой провод можно подключить к любому выводу Arduino. (вывод должен быть сконфигурирован как вход с подтяжкой).

Так как при разомкнутой цепи датчика, состояние на входе Arduino будет неопределённым, то при конфигурировании вывода как вход, его стоит подтянуть до уровня логической «1», вызвав функцию pinMode(), с параметром INPUT_PULLUP.

Подробнее о датчике

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

Снаружи этой трубки находится кольцевой поплавок, который может свободно перемещаться вдоль трубки. Внутри кольцевого поплавка имеется кольцевой магнит.

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

Вывод сообщения в монитор порта об “утонувшем” датчике.

const uint8_t pinSensor=2; // Создаём константу, указывая номер вывода к которому подключён датчик
void setup()
void loop() delay(200); // Приостанавливаем выполнение скетча на 200 мс (0,2 сек)
>

Комплектация

:: СХЕМА ИНДИКАТОРА УРОВНЯ ЖИДКОСТИ ::

индикатор ардуино

Элетрическая схема простого индикатор уровня воды или другой токопроводящей жидкости.

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

Детали схемы индикатора:

– 3 резистора сопротивлением 10 кОм,

– 3 резистора сопротивлением 1 кОм,

– 2 зеленых и 1 красный светодиоды,

– 4 резистора на 300 Ом.

Все впаяв, припаиваем провода, и подключаем батарейку. Провода отрезаем через каждые 2 сантиметра. Конечно после испытаний вы подключите провода такой длинны, как вам необходимо. Опускаем провода в стакан и наливаем воды. Для наглядности чуть подкрасил воду. Как видим, всё работает.

Когда в стакане немного воды – горит только светодиод. Когда больше – загорается еще и . А когда стакан заполнен полностью – горят все светодиоды. Я собрал схему, где всего 3 светодиода, но можно делать и больше – хоть 50. Тогда уровень воды будет виден более точно. Схему индикатора уровня воды собрал: bkmz268.

Поделитесь полезными схемами

Хочу предложить вашему вниманию простейший способ изготовления самодельного WAV – плеера.

Данный аудиоплеер собран на микроконтроллере AVR ATtiny85 но можно использовать также применить ATtiny25/45/85. У микроконтроллеров этой серии всего восемь ножек и два ШИМ (Fast PWM) с несущей 250kHz.

Для управления картой памяти достаточно припаять 6 проводов – два для подачи питания и четыре сигнальные.

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

Схема включения, устройство и принцип действия стандартного сетевого трансформатора на входное напряжение 220 В.

Самодельная ультразвуковая стиральная машинка, или необычное применение мобильного зарядного устройства. Для УЗ машинки нам понадобятся: Импульсный блок зарядки сотового телефона, Пьезоэлемент, Подходящий пластмассовый корпус, Паяльник и Клей.

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

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

Как правило, отклонение напряжения от нормального значения не должны выходить за границы отдельных допусков (например, для микросхем серии К155 питающее напряжение должно составлять 5 В).

Семисегментный индикатор. Теория управления

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

Добрый день форумчане. Столкнулся с проблемой. Как можно выводить цифры на индикатор используя ардуинку?

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

0x3f, //0
0x06, //1
0x5b, //2
0x4f, //3
0x66, //4
0x6d, //5
0x7d, //6
0x07, //7
0x7f, //8
0x6f //9

Не могу разобраться. Каким образом ардуина поймет это? Объясните пожалуйста.

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

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

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

Обозначение сегментов семисегментного индикатора:

цифра 1, например — это зажженные сегменты B и C, то есть второй (первый при отсчете от нуля) и третий (второй при отсчете от нуля). Такую комбинацию можно представить числом 6 (в двоичном представлении — B00000110, в шестнадцатиричном — 0x06). По такому же алгоритму попробуйте отобразить любую из приведенных вами комбинаций. Возможно, наступит прозрение.

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

Спасибо все, сейчас попробую!)

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

индикатор ардуино

С ней удобнее работать с индикаторами.

А еще лучше, брать индикаторы с MAX2119 и LedControl библиотеку. Там любое количество индикаторов по трем проводам подключается

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

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

Если у нас есть 7 портов, то я так понял на них надо подать бинарник как-то? или я чего-то не понимаю?

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

Оказывается, посмотрел я на циколевку атмеги. Увидел что все порты делятся на категории, PORTA, PORTB и PORTC

Ну я подключил 8 ножек индикатора к PORTD — это 0-7 ноги arduino UNO

Сказал чтобы эти порты, 0-7, были выводами и просто потом на PORTD отправлял бинарник или HEX

PORTB=0x3F — это ноль на индикаторе.

Вопрос такой, а почему нельзя в процедуре setup указать pinMode(PORTD,OUTPUT); ? Может кто сказать?

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

Ухты, и правда есть что-то вроде короткой записи в пины бинарным образом

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

вывод на пин (i, x& 0x01)

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

Оказывается, я посмотрел на циколевку атмеги. Увидел что все порты делятся на категории, PORTA, PORTB и PORTC

Ну я подключил 8 ножек индикатора к PORTD — это 0-7 ноги arduino UNO

Сказал чтобы эти порты, 0-7, были выводами и просто потом на PORTD отправлял бинарник или HEX

PORTB=0x3F — это ноль на индикаторе.

Вопрос такой, а почему нельзя в процедуре setup указать pinMode(PORTD,OUTPUT); ? Может кто сказать?

забудьте эти ассемблерные стилевые приемчики PORTC в борьбе за скорость лишнее это

пишите в С стиле потому как быстрее результат

например эфективен такой стиль С с подпрограммками с удобненькой функцией миллис

это дооооолгий таймер и трясущиеся семисегментники без упрощающего код драйверочка max7219

совмещено казалось бы такое разноскоростное автор так выделиывался с циферками

тут не самый быстрый стиль подумал написал спаял продал

но он вам покажет как писать со всякими извращениями фантазиями

не помню где-то пример этот лежит постоянно

это у меня с диска

индикатор ардуино

потому что это функция PORTB прямо из ассемблера поетому сразу шестнадцатиричное десятичное слово ждет

а теперь сравните с таким стилем

это конечно не очень точное сравнеие по железу

но размер кода соотвествует

а теперь Какой код продуктивнее?

Вот вам и теория управления отображением.

Дибилы и грамотные.

Любое програмное обеспечение компенсирует аппаратное несовершенсто.

Мой закон. И что-то никто не смог мне оппонировать.

Прислушайтесь к словам sav13

И опыт сын ошибок трудных

Семисегментный индикатор. Теория управления используйте c max7219

порадуйте нас чем нибудь радостным

Что-то много бУкАв написал. Сам повторно не осилю.

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

А вот этой штуке с MAX7219 не надо всё время долбанить, чтобы оно обновляло индикатор как той хрени с двумя сдвиговыми регистрами?

Я вот такую хрен заказывал. Там для отображения надо всё время срать последовательностью позиция — значение, чтобы они как бы все светились.

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

А у меня какой-то странный семисегментник 4-х циферный. Что бы зажечь на нём сегмент цифры, на ногу с ним нужно посылать 0, а не 1. Из -за этого не верно себя ведёт и драйвер для семисегментника. То есть те сегменты которые должны гореть, потушены, а те которые не должны, наоборот горят. То есть на 1 дожны гореть А и B, а горят C,D,E,F,G =( Не понимаю как с этим справиться.

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

и что вообще нет мыслей почему так может быть?

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

Это вопрос с подвохом? Вероятно так спаян модуль, что у него инверсное обращение к сегментам.

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

так даже веселее. выясняется что уже не семисегементный индикатор а модуль с драйвером

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

Есть семисегментный индикатор на 4-ре цифры в едином корпусе. У него есть ноги под 7 сегментов и восьмую точку, а так же ещё 4-ре ноги для включения конкретного индикатора.

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

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

Взаимодействие Arduino с семисегментным индикатором

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

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

индикатор ардуиноСемисегментный индикатор

Семисегментные индикаторы бывают двух типов: с общим анодом и общим катодом. Внутренняя структура обоих типов почти одинакова. Разница заключается в полярности светодиодов и общем выводе. В семисегментном индикаторе с общим катодом (такой мы использовали в экспериментах) катоды всех семи светодиодов и светодиода точки подключены к выводам 3 и 8. Чтобы использовать такой индикатор, нам необходимо подключить корпус к выводам 3 и 8 и подать +5В на другие выводы, чтобы отдельные светодиоды загорелись. Следующей схеме показана внутренняя структура семисегментного индикатора с общим катодом:

индикатор ардуиноСемисегментный индикатор с общим катодом

Индикатор с общим анодом является полной противоположностью. В индикаторе с общим анодом положительные выводы всех восьми светодиодов соединены вместе и подключены к выводам 3 и 8. Чтобы зажечь отдельный сегмент, вы соединяете его второй вывод с корпусом. На следующей диаграмме показана внутренняя структура семисегментного индикатора с общим анодом:

индикатор ардуиноСемисегментный индикатор с общим анодом

Сем сегментов обозначены как a-g, а точка как dp, как показано на рисунке ниже:

индикатор ардуиноСтруктура семисегментного индикатора

Чтобы отобразить конкретную цифру, вы включаете отдельные сегменты, как показано в таблице ниже:

Включение сегментов индикатора для отображения цифр

Эксперимент 1

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

Необходимые комплектующие

  • 1 x семисегментный индикатор (общий катод);
  • 1 x Arduino MEGA 2560
  • 1 x макетная плата;
  • перемычки.

Схема соединений

В этой схеме выводы семисегментного индикатора подключены к контактам 2-9 платы Arduino, как показано в таблице ниже. Общие выводы (3 и 8) подключены к GND, а dp остается неподключенным, так как точка не используется в этом эксперименте.

Выводы семисегментного индикатора Выводы Arduino Цвет провода
1(e) 6 оранжевый
2(d) 5 белый
3,8(COM) GND
c 4 желтый
5(dp) —
6(b) 3 красный
7(a) 2 синий
9(f) 7 зеленовато-голубой
10(g) 8 зеленый

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

Эксперимент 2

В этом руководстве мы свяжем семисегментный индикатор с Arduino Mega и посмотрим, как отобразить на индикаторе значения счетчика, уменьшающиеся на 1 каждую секунду.

Необходимые комплектующие

В этом эксперименте используются те же комплектующие, что и в первом случае.


Источник: uznaydengi.ru