Уже в продаже: первая в своем роде книга «BEAM-робототехника. От азов до создания практических устрйств». Книга для кружков робототехники и самостоятельного обучения на дому. Книга доступна по цене 699 руб Подробнее о книге
доброго времени суток ... проблема с выводом двухзначных чисел на тройной семисегментник ...My WebPage в кратце опишу действие. у этого индикатора общий катод 3 вывода соответственно на каждый отдел и 8 выводов на подключении самих сегментов, так для того чтобы зажечь цифру 1 нужно запитать BC выводы но если подключить второй сегментник на нем тоже будет отображена цифра один. вопрос как сделать так чтобы сегменты зажигались раздельно к примеру чтобы вывести цифру 56 или 72 ?
Проблемма ясна. Подключение многоразрядного (от 2х и более) семисегментного индикатора требует иного подхода. В общем ничего сложного. Выводите числа последовательно. Делается это следующим образом. Каждый из выводов катода индикатора подключите через свои транзисторы КП505А или КТ3102 или КТ315 или BC547 (эмиттер к минусу ист. пит, коллектор к катоду секции индикатора, базу через резистор 1,2 кОм к микроконтроллеру, если транзистор полевой КП505, то достаточно 220 Ом ). Далее допустим вам нужно вывести число 56. Значит можно вывести первые две цифры на первых два сегмента, а последний третий сегмент вообще не зажигать. Делаем следующее. С микроконтроллера подаём + 5 вольт на базу транзистора управляющего катодом первой секции, на остальные два транзистора (для оставшихся двух секций) нужно подать "0" (принудительно выключаем). Выставляй на входах цифрового сегмента цифру 5. При этом только на первом сегменте зажжётся цифра 5, остальные гореть не будут! Затем на базе транзистора управляющего катодом первого сегмента выставляй "0". Смени индицируемую цифру на входах сегмента на цифру 6. Подай на транзистор управляющий второй секцией катода "1". При этом первый сегмент гореть уже не будет, а на втором высветиться цифра 6. Если быстро переключать (включать-выключать) транзисторы управляющие катодами первого и второго сегмента, то будут видны сразу две цифры одновременно. Частота переключения приблизительно 25Гц. Если наблюдается эффект мерцания цифр, то увеличивайте частоту переключения транзисторов. Это способ подразумевает, что входы семисегментных индикаторов для формирования цифр соединены вместе, а переключение осуществляется управлением катодами.
Droid, Спасибо огромное )!!!! Dimsan, и вам спасибо прочел полезная информация еще пригодится )
Добавлено (21.09.2013, 11:41) --------------------------------------------- Droid, вы бы не могли написать пример кода на бейсике как зажечь поочередно эти сегменты ? я пробовал с командой high эксперементировать но она не воспринимает ни бинарное ни хексовое исчисление а к примеру для цифры 8 мне нужно как минимум 7 команд high использовать а это не удобно ... может есть какое то решение типа той же самое команды lookup или еще чего нибудь ?
Добавлено (21.09.2013, 11:44) --------------------------------------------- и еще, базу я подключил через порт D хотя все сегменты сидят на портах В. вопрос - как совместить включение порта D вместе с включением портов В в одной команде???
BAsic для PIC или для Atmega? Далее про поочерёдность зажигания сегментов. Собственно любой построчный код выполняется не параллельно, а поочерёдно. В коде основной программы выводите на порт B лог.1 построчно командами или одной командой, если этот порт не используется для других целей. Совместить включение порта B и D просто, достаточно прописать команды вывода лог.1 для обоих портов побитно!
Droid, Для PIC. Ну то что поочередно я разобрался к примеру можно прописать команду с общим катодом так: init: trisb =%00000000 portb =%00000000 start: portB =$6F "вывод символа на порт Б с общим portD =$01 "катодом на порте Д1 portB =$FF "гашение символа portD =$FF "гашение порта Д1 portB =$56 "вывод символа на порт Б с общим portD =$02 "катодом на порте Д2 portB =$FF "гашение символа portD =$FF "гашение порта Д2 goto start end
А вот как побитно это будет команды выглядеть ? я же не смогу в одной команде HIGH или PORTB прописать два разных порта B и D к примеру? Спасибо что ответили
Чтобы зажечь цифру достаточно установить одной командой portb =%00000000 (вместо нулей нужные биты на лог.1) и не требуется никаких семи команд, катод разумеется должен быть подключен. И ещё в твоём коде нет задержек, которые обязательно нужно ставить после включения порта и после выключения иначе будет ерунда на выходе. Вобще то на PIC-BAsic я не программирую, но поскольку он схож по синтаксису для AVR, попробую подправить код. При зажигании одной цифры (любой) нужно придерживаться следующего алгоритма: сначала выставляем лог.1 сегмента, потом подключаем катод индикатора, потом задержка 20-30мсек, потом выключаем катод и снова пауза на 50-90мсек. После этого можно сменить код сегмента на новый и далее всё сначала по алгоритму. init: trisb =%00000000 'конфигурируем выводы порта B на выход portb =%00000000 'выставляем лог.0 на всех выводах порта B start: portB =$6F 'вывод символа на portb portD =$01 'подключаем катод 1 сегмента portd GoSub Ind portB =$56 'вывод символа на portb portD =$02 'подключаем катод 2 сегмента portd GoSub Ind goto start end
'ПОДПРОГРАММА Ind: pause 25 'пауза 25 миллисекунд на длительность свечения сегмента portD =$FF 'гашение portd portB =$FF "гашение символов portb pause 50 'пауза 50 миллисекунд на длительность выключения сегмента Return
Открыт набор на БЕСПЛАТНОЕ ОБУЧЕНИЕ в кружке BEAM-робототехника на 2022 - 2023 год!
Для учащихся г. Санкт-Петербург: Уважаемые учащиеся и родители! Мы сообщаем Вам о начале открытой регистрации в кружок "BEAM-робототехника (радиоэлектронные системы управления)" Центра робототехники Президентского физико-математического лицея №239 на новый 2022-2023 учебный год!
Записаться в нашу группу может совершенно любой учащийся города Санкт-Петербург в возрасте от 10 - 18 лет. Обучение в кружке полностью бесплатное. В рамках обучения в кружке ребята получат необходимые теоретические и практические знания по электротехнике, схемотехнике, созданию электронных схем и своих собственных печатных плат для роботов. Научатся работать с ручными инструментами, 3D-принтерами для изготовления деталей робота, лазерным станком для изготовления корпусов робота. Количество свободных мест - ограниченное, успейте подать Вашу заявку первыми! Перешлите этот пост своим друзьям и знакомым, кого может заинтересовать BEAM-робототехника
***
Давайте поближе разберемся, что же мы изучаем на кружке BEAM-робототехники. И так, приступим:
1. Вы начинающий робототехник Смотрите видео BEAM-робототехника
Вы новенький в робототехнике. Вам интересно это современное направление, вы очень хотите научиться создавать крутых роботов самостоятельно, но вы пока не знаете как именно это делать? Не беда! Мы с удовольствием обучаем начинающих робототехнике всем необходимым навыкам настоящего робототехника, с которыми в последствии вы с легкостью будете собирать крутых роботов , участвовать в соревнованиях , выставках или просто делать крутые поделки для себя. Для этого мы открыли специальное направление: Радиоэлектроника (#BEAM-роботы). В ходе обучения в этом кружке вы научитесь понимать и разбираться в электронике - знать что такое резистор, транзистор, светодиод, мотор и как это работает. Закон #Ома - куда же без него :) Вы изучите схемотехнику - будете разбираться и уметь читать схемы - без этого робота не сделать. Вы научитесь делать свои собственные платы роботов (куда паяют детальки по крутому - без проводков!) Вы поработаете с механикой - нужно знать как и каким образом использовать моторчики, редукторы и различные хитрости их применения. Конечно же научитесь правильно и профессионально паять - это очень важно, иначе ваши роботы постоянно будут разваливаться. Также в рамках этого кружка вы сможете собрать несколько роботов для участия в соревнованиях, и выставках, так как мы считаем, что ваш творческий потенциал очень важен для робототехники в целом.
***
В этом году мы соберем с вами шагающих роботов, будем участвовать в соревнованиях "шагающих роботов", роботов для "следование по линии", роботов для участия в "сумо", а также в творческих выставках.
*** 2. Как подать заявку в кружок?
Прошлый год показал, что желающих заниматься аналоговой робототехникой, создавать beam'ов и участвоват ьс ними в соревнованиях - достаточно много. Поэтому на новый учебный год мы решили увеличить количество мест, создав две группы.
Первая группа по BEAM-робототехнике #261РЭ Радиоэлектроника (BEAM-роботы). Эта группа рассчитана на ребят, кто только начинает изучать робототехнику и кому необходимо получить базовые знания по электротехнике, схемотехнике, и самим бим-роботам. Для того, чтобы записаться в группу 261РЭ , вам нужно пройти по этой ссылке https://robofinist.ru/educationcenter/main/groups/id/1?groupId=796 (кликай) и заполнить анкету (чтобы подать заявку - сперва зарегистрируйтесь на сайте Робофинист как "ученик". Обязательно сохраните логины и пароли - потом они вам очень понадобятся!).
Вторая группа по BEAM-робототехнике #371РЭ Радиоэлектроника (BEAM-роботы). Эта группа рассчитана для учащихся, кто уже сталкивался с направлением BEAM или сам изучал электротехнику и схемотехнику, кто уже принимал участие в соревнованиях с этими роботами. В рамках этой группы мы будет улучшать ваши теоретические и практические навыки, создавать сложных роботов и большую часть занятий посвящать интересным проектам и соревнованиям. Для того, чтобы записаться в группу 371РЭ , вам нужно пройти по этой ссылке https://robofinist.ru/educationcenter/main/groups/id/1?groupId=797 (кликай) и заполнить анкету (чтобы подать заявку - сперва зарегистрируйтесь на сайте Робофинист как "ученик". Обязательно сохраните логины и пароли - потом они вам очень понадобятся!).
Преподаватель данного направления: Мельников Сергей Алексеевич, педагог дополнительного образования Президентского физико-математического лицея №239, руководитель образовательного проекта SERVODROID - Центр робототехники для начинающих. Группа № 261РЭ и 371РЭ. Будьте внимательны, при заполнении анкеты.
*** Краткий план годового обучения:
1. Повторение теоретических знаний по электротехнике, схемотехнике, радиоэлектронике. Закрепление знаний на практике на основе создания самых простых конструкций роботов.
2. Создание роботов для участия в соревнованиях и выставках. Творческие проекты. Много много соревнований
3. Закрепление знаний для дальнейшего перехода с аналоговой робототехники (от BEAM-роботов) к цифровой робототехнике (роботам на Arduino). На последних занятиях вы соберете BEAM-ARDUINO подобного робота ;)