Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

Olej
2018-03-19 12:49:31
Olej пише:

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

Есть вот такая библиотека Arduino-SevenSegmentDisplay:

It is 7-segment display library for Arduino.
- Drive one or more digits.
- Both common anode and common cathode are supported.
- Display one digit in static mode.
- Display 2 or more digits in dynamical mode.
- Only support to display positive integer and float number.

Посмотрите.
Может это и всё что вам надо...

P.S.
- библиотеке этой 6 лет от роду ... но вряд ли в этой области что-то меняется;
- библиотека написана сложно, настоящий C++ с использованием template<...> - что-то там подправить у вас вряд ли получится (разве что испортить big_smile ), но там придано много примеров использования, в частности TriDigit.ino

Olej
2018-03-19 12:32:06
Olej пише:

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

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

P.S. Хотя по форумам и сообществам Arduino есть единичные участники, отличающиеся очень хорошим уровнем и пониманием предмета. Мне (по опыту знакомства и участия в программистских разных сообществах, в разное время за много лет) очень удивительно, необъяснимо для себя, то размежевание ... общий уровень "около плинтуса" + отдельные профессионалы очень хорошего уровня - и всё это при полном отсутствии промежуточного уровня ... "среднего класса". neutral 

Поэтому здесь даже среди представленных для общего использования библиотек многое сделано далеко не лучшим образом. И к ним нужно относиться тоже изрядно критически. Как вариант: изучать код, который представляется в библиотеках, и использовать его "по мотивам", но не использовать готовые библиотеки as is ... по крайней мере, когда глядя на них возникают сомнения.

Olej
2018-03-19 10:16:33
robber пише:

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

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

Olej
2018-03-19 00:31:49
Olej пише:

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

Это настолько частая и даже тривиальная задача, что описаний её решений - море...
Вот, например:
- это пЫанЭрский вариант ... но вполне может быть: Семисегментный 3-х разрядный индикатор;
- а это вот - экономный вариант с минимальным задействованием выходов Arduino: Вывод информации на 4 разрядный 7сегментный индикатор при помощи двух 74hc595.
Вот любопытная основа, для начала (как код это - ахинея, а как исходная отправная точка - нормально):
4 разрядный 7 сегментный индикатор
4х разрядный 7-сегментный индикатор нужен драйвер
А вот здесь вам главная идея как управлять 7-сегментным индикатором - Семисегментный индикатор. Теория управления

300px-7_segment_display_labeled.svg.png

Olej
2018-03-19 00:21:18
robber пише:

Я имел в виду вот такую схему подключения,

Вывод на 7-сегментный индикатор числа, выраженного как символ ('0', '1', '2', ... '9') труда не представляет - я бы делал именно так, именно из символьного представления, это сильно упростит вам отладку, а о какой-то гипотетически-фиктивной "производительности" при простоте вашей задачи беспокоиться нечего.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.

Olej
2018-03-19 00:09:14
robber пише:

Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания

По такой схеме (я её так и предполагал) вам требуется 12 управляемых выходов Arduino, из всех 14 доступных (как я понимаю).
Чего то особенно сложного в такой индикации нет ... кроме того, что для начала, "чтобы не видеть мерцания" -  вы должны оценить инерционность своего индикатора, и то, на какой минимальной частоте повторения вы ещё не будете видеть мерцания при скважности 3.

Я бы сильно советовал (я бы так делал) просто написать отдельный программный пример (который потом выбросить big_smile ) который бы просто поджигал 1 из индикаторов, пусть все его сегменты ... и смотрел (меняя частоту loop в коде) когда индикатор начнёт мерцать.
Начинающие писать программные коды (не важно для какой аппаратуры и каких целей!) обычно норовят сразу писать конечную программу, рассчитывая что "там приложится" - там всё отладят и проверят, но как оказывается, отладить всё в комплексе оказывается бесконечным занятием ... В знаменитой книжке "Мифический человеко-месяц" Дж.Брукс мл. называет это "асфальтовая топь".

robber
2018-03-18 22:41:03

00-37-16-LED2.jpg


Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания

Olej
2018-03-18 22:29:20
robber пише:
Olej пише:
robber пише:

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно big_smile

У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру,

Продолжаем... выпытывать по крохам, как в гестапо у партизана hmm
Согласитесь, что 3 7-ми сегментных индикатора - это не совсем то, что 3 сегмента.
Только совсем уж "напрямую" они не могут быть подключены, напрямую там получается 3х7=21 выходов ... у Arduino стольки нет sad
И не стоит ли рассмотреть возможность использовать дополнительный промежуточный шилд? ... это я так, на вскидку спрашиваю, разбиравшись недавно с индикатором 1602 подключаемым через I2C шину. 

robber пише:

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

Что вы называете "динамическая индикация"? ... может в вашей проф. среде это и строго определённый термин, но я могу под этим подразумевать очень разные вещи.

robber
2018-03-18 21:35:49
Olej пише:
robber пише:

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно big_smile

"Извне" это по какому интерфейсу вы их получаете? Serial?

Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных sad

Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:

1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).

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

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

Olej
2018-03-18 21:26:37
robber пише:

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно big_smile

"Извне" это по какому интерфейсу вы их получаете? Serial?

Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных sad

Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:

1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).

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

robber
2018-03-18 20:43:24
Olej пише:
robber пише:

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

Управление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:

Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:

А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);

Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);

Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?

Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них

Olej
2018-03-18 20:07:43
robber пише:

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

Управление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:

Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:

А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);

Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);

Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?

robber
2018-03-18 15:58:02

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

Olej
2018-03-18 12:37:44
Olej пише:

Я вам давно уже показал ваше решение в 3 строчки, на другом форуме: http://arduino.ru/forum/programmirovanie/pomogite-s-protokolom-0#comment-352616
Заранее ПОЖАЛУЙСТА  big_smile

О-ба-на...
Там пацаны по убогости своей так берегут свою возможность срубить 3 копейки "с лоха" - что удалили написанное решениеbig_smile  lol

NoName
2018-03-16 17:28:58

http://geekmatic.in.ua/arduino_software_uart
и по похожим сообщениям.

или через 4 недели отпишитесь, посмотрю что могу сделать.

Підвал форуму