Seven segment indicator | Microcontrollers from scratch # 8
Vložit
- čas přidán 10. 04. 2018
- The seven-segment indicator has a fairly simple design and consists of seven segments, each of which is an LED located in a certain position. Seven-segment indicators can consist of either one or several digits, most often two, three and four. In addition, they are produced with a common anode and a common cathode. In this video, the principle of the seven-segment indicator is considered. Also discussed is how to connect the seven-segment indicator to the microcontroller ATmega8 or to another type of MC.
Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/
Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/
Огромное спасибо! Очень доходчиво, четко и ясно без лишней воды! Очень рад, что нашел Ваш канал! Удачи!
Пожалуйста не бросайте это дело,очень хорошо обьясняете
Спасибо огромное)) Вы самый лучший преподаватель, это лучшие уроки и объяснения, для начинающих, что я находил, спасибо огромное)
Отличные уроки! Ждем продолжение!
Спасибо за уроки, отлично объясняете. Когда-то увлекался....но толком не понимал,(как что куда) и потом забросил я всё это... вот несколько лет прошло и снова становится интересно (это потому что вы правильно и красиво объясняете) .🏅🏅🏅
Вот это да ,гдеж вы были раньше , ещё не рождённые наверное 😊😊😊
Очень доходчиво объясняете. Спасибо
Висок професионализъм, академично изложение! Талант! Благодаря! Успехи!
Ну почему этому в вузах не учат? Всякую ерунду втирают, а то, что нужно, не рассказывают. Потом и выходят такие специалисты с высшим образованием, не умеющие ничего, даже самого элементарного. Спасибо Вам за Ваш труд.
В Украине учат. Даже лабораторные делаем)
@@anthems_ukraine Вы молодцЫ
Отличный урок)
Спасибище огромное.
Очень информативно!!! Сделайте урок , вместо семисегментного индикатора, про светолиодную матрицу 8×8.
Спасибо, очень сильно помог (было задание в универе)
Ты хороший преподаватель!
спасибо...очень помог...
Спасибо огромное,не знаю как благодарит.
Финансово. Сам хочу поддержать, чтоб человек не бросал это занятие
Лучший канал про электронику который я знаю!
Один вопрос, почему индикатор на некоторых моментах бысрее мигает? Например в 3:36
Фьюзы?
@@ProgressiveChannel семисегментный трёх символьный первая цифра горит ярче других ,как отремонтировать?
как работает восьмибитный сдвиговый регистр в качестве счётчика на семисегментном четырёхразрядном индикаторе?
спасибо большое, учусь по вашим урокам. скажите пожалуйста на какую частоту кварц. и в чем может быть проблема, у меня все то же что и у вас и в протеусе, а на плате реальной светодиоды мигают намного быстрее
Видимо встроенный на 1 МГц
В F_CPU прописано
С академической точки зрения урок - ок, но на практике проще использовать индикаторы на TM1637
Скажите, вы настраиваете контроллер на внутренний RC генератор 1 мГц. А какой кварц у вас установлен на макетной плате?
4:20 - будете смеяться, но в даже военной аппаратуре такое попадается. До сих пор приходят в ремонт из эксплуатации со сгоревшими сегментами.
А что если я меня плата arduino uno и сам МК я ч-з нее программирую, то можно ли через pd0 и pd1 подключать? Просто когда я так делаю, у меня индикатор с ума сходит и мигает очень часто
P. S pd0, pd1 там rx tx
Доброго времени суток! Скажите пожалуйста возможно ли управлять индикатором с помощью переменного резистора? Скажем угол поворота отображается от 0 до 9 и другой вариант в определенном положении определенная цифра на индикаторе от 0 до 3
Возможно.. через АЦП.. еще лучше энкодер вместо пер. резистора..
какразлечит их общий на аноде или катоде скажите пожайлуста FYT-5631BS-21
Почему спрашиваю за кварц. у меня п proteus все запускается при управлении с кнопок. В реальной схеме на atmega 328P никак не могу получить результат. Контроллер проверил через ардуино.
Уважаемый автор, напишите реквизиты куда можно скинуть средства на развитие канала
Цены Вам нет в базарный день :)
9:30 пытаюсь подключить библиотеку задержек, атмел студио не видит ее, что делать?
Интересный факт, в microchip studio, если не указать частоту микроконтроллера через define, компиляция не пройдёт
У меня, кроме программатора все имеется, закажу себе программатор
Я не понял. тоесть порт настроенный на выход но с низким потенциалом, это не просто отсутствие напряжения, это еще и земля, которая может принимать в себя ток?
кажется на этот вопрос мне ответила вот эта чья-то лабораторная работа ooep.kpi.ua/microcontrollers/rus/Downloads/LabWork_2.pdf
Как копировать элементы в протеусе?
выделяешь элемент, затем правой мышкой -> Copy to ClipBoard
Ctrl+C ))) как в текстовом редакторе
Ctrl+V вставить)
Удачи
@@varerik82 У вас Протеус какой версии? У меня версия 7 не дает такой возможности.
Для себя использую Block copy (кнопка на панели инструментов), можно выделить элемент, нажать Block copy и вставлять кликая левой кнопкой нужное количество.
все делаю как показано. настроен порт D, а в протеусе все измениения происходят в порте С. Протеус 8, студио 6. где косяк?
Сузил поиск причины. HEX файл формируется неправильный. Ваш код --> F7--> hex отличный от Вашего! hex из ссылки в протеусе работает. где рыть?
Хм,может я не совсем смыслю в этом вопросе.Но когда я пытался своими размышлениями подключать индикатор с общим анодом ,то я боялся подавать плюс на выводы индикатора и на общий вывод,а вы сделали это без проблем.Мне казалось это не безопасным,поэтому я выставлял PORTB = 0b00000000 ,а DDRB изменял в зависимости от цифры.В таком случае на индикатор не приходило два положительных потенциала
Лучше через оптопары))))))))))))))))))
Такой подход важен когда работаем с высоковольтными ключами например. Чтобы при инициализации МК не произошёл "Ба-бах".
А можно как-то сократить этот код? чтобы не вводить несколько раз _delay_ms(300);
PORTD = 0b00111111; //0
_delay_ms(300);
PORTD = 0b00000110; //1
_delay_ms(300);
PORTD = 0b01011011; //2
_delay_ms(300);
PORTD = 0b01001111; //3
_delay_ms(300);
PORTD = 0b01100110; //4
_delay_ms(300);
PORTD = 0b01101101; //5
_delay_ms(300);
PORTD = 0b01111101; //6
_delay_ms(300);
PORTD = 0b00000111; //7
_delay_ms(300);
PORTD = 0b01111111; //8
_delay_ms(300);
PORTD = 0b01101111; //9
_delay_ms(300);
Используй массив для сегментов а так же цикл для вызова каждого элемента массива по очереди, тогда задержку нужно будет написать один раз
Если не трудно, кто нибудь может рассказать почему цифра 1 будет светится ярче чем 8? Когда горит один диод, тогда он потребляет 20мА . Когда горят все светодиоды то и напряжение между резистором и всеми диодами в совокупности будет больше, значит увеличится и ток до 160мА (20мА*8 = 160) (по закону ома. I=U/R) Сопротивление у всех диодов одинаковое, следовательно и ток должен распределится равномерно.
czcams.com/video/HTbHrXIXpBc/video.html
Не сосуществуют идеальных компонентов. У перехода кристала разное сопротивление разный температурный коэф. Следовательно ток у всех будет разный. Резистор ограничивает ток у самых прожорливых и не ограничивает если светодиод "нормальный". Еще ток отличается у светодиодов разного цвета, но там зависит от интенсивности света проходящего через светофильтр.
А про резистор ты забыл? Ведь падение напряжения на нём прямо пропорционально протекающему току, а светодиоды соединены параллельно и напряжение на них одинаково, таким образом при 160 мА и 300 Ом напряжение на резисторе будет больше, а на светодиодах наоборот меньше (горит восьмёрка), а в случае, когда ток через резистор будет меньше (40мА для единицы) то и напряжения светодиодам будет доставаться больше. К тому же ток через один общий резистор будет всё же меньше 160 мА, так как он его ограничит, и при 5 вольтах и 300 Ом, при падении всех 5 вольт на резисторе невозможно получить ток более 16 мА.
Минус индикатор 1:07
вместо DDRD = 0b11111111; можно записать DDRD =0xFF;
А проще 255 без всяких 0х.
@@splinterkab9007 Тут уж кому как. Дело привычки :)
@@romik5608 наверное да (2,4,8,16,32,64,128) (0x2,0x4,0x8,0x10,0x20,0x40,0x80) первый вариант быстрей набирать.
А можно для неграмотных? Номинал резисторов для подключения диодов выбран исходя из чего?
oOcitizenOo исходя из напряжения питания и падения напряжения на диоде. Зачем такие вопросы здесь задавать?
Денис Мотрёшкин ну так почему 300 ом? Исходя из того, что с микроконтроллера выходит 5 вольт, для светодиода нужно 3, получается что R= ∆U/I. Падение напряжения на резисторе 5-3=2 сила тока 20 мили ампер вроде. Как получается 300? Вроде 100 получается
@@GrafKarlsonskiy да Вы правы, только если быть точнее падение напряжения по-моему 2,6-2,8 вольт, надо смотреть инструкцию на св. диод. Но это если Вам принципиально 100% яркость св. диода. А так он достаточно ярко горит и с 300 омным резистором. Когда на макетных платах что-то собираете пойдёт резистор 150-300 ом. Главное не меньше.
5 Вольт на выводе МК минус 2,6 Вольт на светодиоде = 2,4 Вольт надо погасить. Ток лучше брать 12 мА для импортных индикаторов. Так что резистор = 2,4В/0,012А = 200 Ом. Берём 220 Ом. А ещё лучше подобрать по яркости свечения из диапазона 180-240 Ом. Сильно завышать яркость не советую - пожелтеют и погорят со временем.
Мы же можем вместо 0b11111111 писать 0xFF
Почему
@@user-fe6jn3qj3r числа, начинающиеся с 0b в двоичной системе, а с 0x в шестнадцатеричной. Можно записывать как угодно, хоть 255 в десятичной, работать будет одинаково. Если не ошибаюсь, в 3 уроке из этого цикла рассказывается об этом.
Английского алфавита в природе не существует, есть ЛАТИННИЦА.