Ви не увійшли.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Есть вот такая библиотека 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<...> - что-то там подправить у вас вряд ли получится (разве что испортить ), но там придано много примеров использования, в частности TriDigit.ino
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
С другой стороны, уровень профессионализма, квалификации, программистской культуры в сообществе Arduino ... ну, чуть-чуть, может, и повыше плинтуса будет. Это и нормально, в общем, в сообществе самоделкиных и радиолюбителей ... и то хорошо!
P.S. Хотя по форумам и сообществам Arduino есть единичные участники, отличающиеся очень хорошим уровнем и пониманием предмета. Мне (по опыту знакомства и участия в программистских разных сообществах, в разное время за много лет) очень удивительно, необъяснимо для себя, то размежевание ... общий уровень "около плинтуса" + отдельные профессионалы очень хорошего уровня - и всё это при полном отсутствии промежуточного уровня ... "среднего класса".
Поэтому здесь даже среди представленных для общего использования библиотек многое сделано далеко не лучшим образом. И к ним нужно относиться тоже изрядно критически. Как вариант: изучать код, который представляется в библиотеках, и использовать его "по мотивам", но не использовать готовые библиотеки as is ... по крайней мере, когда глядя на них возникают сомнения.
как сделать так что бы на сегменте отображалось то что приходит, там видь приходит код в а как его преобразовать в число я не могу понять
У меня вскорости будет стоять такая же задача ... только мои 7-сегментный индикаторы пока ещё только едут с алиэкспресс ... а дорога там не короткая - проверяться не на чем.
Но по такому случаю я могу вам помочь, в общей части, естественно, а не в деталях как вам там оно надо будет - себе адаптируете уже как вам надо будет.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Это настолько частая и даже тривиальная задача, что описаний её решений - море...
Вот, например:
- это пЫанЭрский вариант ... но вполне может быть: Семисегментный 3-х разрядный индикатор;
- а это вот - экономный вариант с минимальным задействованием выходов Arduino: Вывод информации на 4 разрядный 7сегментный индикатор при помощи двух 74hc595.
Вот любопытная основа, для начала (как код это - ахинея, а как исходная отправная точка - нормально):
4 разрядный 7 сегментный индикатор
4х разрядный 7-сегментный индикатор нужен драйвер
А вот здесь вам главная идея как управлять 7-сегментным индикатором - Семисегментный индикатор. Теория управления
Я имел в виду вот такую схему подключения,
Вывод на 7-сегментный индикатор числа, выраженного как символ ('0', '1', '2', ... '9') труда не представляет - я бы делал именно так, именно из символьного представления, это сильно упростит вам отладку, а о какой-то гипотетически-фиктивной "производительности" при простоте вашей задачи беспокоиться нечего.
Но! ... наверняка для такого часто требуемого действия существует готовая библиотека, поэтому первейшее, что следовало бы сделать - это провести тщательный поиск в этом направлении.
Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания
По такой схеме (я её так и предполагал) вам требуется 12 управляемых выходов Arduino, из всех 14 доступных (как я понимаю).
Чего то особенно сложного в такой индикации нет ... кроме того, что для начала, "чтобы не видеть мерцания" - вы должны оценить инерционность своего индикатора, и то, на какой минимальной частоте повторения вы ещё не будете видеть мерцания при скважности 3.
Я бы сильно советовал (я бы так делал) просто написать отдельный программный пример (который потом выбросить ) который бы просто поджигал 1 из индикаторов, пусть все его сегменты ... и смотрел (меняя частоту loop в коде) когда индикатор начнёт мерцать.
Начинающие писать программные коды (не важно для какой аппаратуры и каких целей!) обычно норовят сразу писать конечную программу, рассчитывая что "там приложится" - там всё отладят и проверят, но как оказывается, отладить всё в комплексе оказывается бесконечным занятием ... В знаменитой книжке "Мифический человеко-месяц" Дж.Брукс мл. называет это "асфальтовая топь".
Я имел в виду вот такую схему подключения, а динамическая индикация я имел в виду вывод каждой цыфры индикатора на частоте что бы не видеть мирцания
Olej пише:robber пише:Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру,
Продолжаем... выпытывать по крохам, как в гестапо у партизана
Согласитесь, что 3 7-ми сегментных индикатора - это не совсем то, что 3 сегмента.
Только совсем уж "напрямую" они не могут быть подключены, напрямую там получается 3х7=21 выходов ... у Arduino стольки нет
И не стоит ли рассмотреть возможность использовать дополнительный промежуточный шилд? ... это я так, на вскидку спрашиваю, разбиравшись недавно с индикатором 1602 подключаемым через I2C шину.
получаю данные я из сериал порта от ПК, используется динамическая индикация, написать библиотеку динамической индикации я смог а вот выводить нужные мне данные я не как не могу, и не могу понять как мне это сделать
Что вы называете "динамическая индикация"? ... может в вашей проф. среде это и строго определённый термин, но я могу под этим подразумевать очень разные вещи.
robber пише:Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
"Извне" это по какому интерфейсу вы их получаете? Serial?
Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных
Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:
1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).
2. Полученные в предыдущей задаче байты данных отображать на индикатор ... с которым пока совершенно непонятно что там за индикатор.
У меня в схема стоит 3 семи пигментных индикаторов подключенных на прямую к контроллеру, получаю данные я из сериал порта от ПК, используется динамическая индикация, написать библиотеку динамической индикации я смог а вот выводить нужные мне данные я не как не могу, и не могу понять как мне это сделать,я извиняюсь что сразу все правильно не объяснил
Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Ну вот, уже что-то понятно, вы уже двигаетесь в нужном направлении ... только пока ещё о-о-о-очень медленно
"Извне" это по какому интерфейсу вы их получаете? Serial?
Что за такие "3 сегмента"? Бывают разные индикаторы, но среди них не бывает 3-сегментных
Но уже у вас выделились 2 полностью автономные, независимые друг от друга задачи:
1. Принять и декодировать приходящий пакет (и здесь учесть очень неприятную вещь: что вы будете делать и как, если вы потеряете как-то 1 байт, и рассинхронизируетесь с форматом пакета? как станете восстанавливать синхронизацию?).
2. Полученные в предыдущей задаче байты данных отображать на индикатор ... с которым пока совершенно непонятно что там за индикатор.
robber пише:Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,
...
вот данный протоколУправление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:
Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);
Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);
Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?
Я звиняюсь за не правильное разъеснение, я получаю протокольные пакеты из вне на ардуино к которому подключины 3 сегмента, и мне надо выводить принятый пакет на них
Не могли бы ВЫ помочь ну или обыяснить как реализовать устройство информацинного табло,
...
вот данный протоколУправление табло осуществляется пакетами различной длины. Контроль целостности пакетов и достоверность доставки не предусмотрены. Ответный пакет не предусмотрен. Байты значением до 0x20 используются только в служебных целях (начало и окончание пакета) и в теле пакета встречаться не могут. Формат пакета следующий:
Вы плохо, невнятно описываете свои хотелки - вот вам плохо и невпопад отвечают.
Вы что хотите:
А). эти ваши протокольные пакеты приходят откуда-то на Arduino, который и управляет вашим табло (т.е. Arduino декодирует эти пакеты и затем уже как-то напрямую управляет сегментами вашего табло);
Б). эти ваши протокольные пакеты должен формировать Arduino для того, чтобы отправлять их на табло (т.е. Arduino предстоит закодировать пакет для управления табло);
Т.е. где вы ставите Arduino? ... где-то извне откуда управляется табло, или внутри табло?
там вообще не кто не хотел помогать, ребята я извиняюсь я не правильно объяснил проблему.
Я у вас хотел узнать как сделать так что бы на сегменте отображалось то что приходит, там видь приходит код в а как его преобразовать в число я не могу понять
Я вам давно уже показал ваше решение в 3 строчки, на другом форуме: http://arduino.ru/forum/programmirovanie/pomogite-s-protokolom-0#comment-352616
Заранее ПОЖАЛУЙСТА
О-ба-на...
Там пацаны по убогости своей так берегут свою возможность срубить 3 копейки "с лоха" - что удалили написанное решение.
http://geekmatic.in.ua/arduino_software_uart
и по похожим сообщениям.
или через 4 недели отпишитесь, посмотрю что могу сделать.