Тёмный

LED garland on microcontroller | Microcontrollers from scratch #7 

Dmitriy Zabarilo
Подписаться 35 тыс.
Просмотров 73 тыс.
50% 1

LED garland is a good example for studying some functions of the microcontroller. This video shows how to connect the buttons to the microcontroller pins, that is, adjust the outputs to the input - to receive information. Using the buttons through the ATmega 8 microcontroller, we will control the various operating modes of the microcontroller. Here, for the first time, we consider the assignment of the PINx register, which contains information on the status of each output of the MC.

Опубликовано:

 

28 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 101   
@Программированиемикроконтролле
Программирование микроконтроллеров. Полный курс для начинающих: diodov.net/programmirovanie-mikrokontrollerov-avr/ Электроника для начинающих. Мощный курс. diodov.net/elektronika-dlya-nachinayushhih/
@Mr_Dark__
@Mr_Dark__ 6 лет назад
молодчик доступно и поятно четко вы единственный где нашел разумное и последовательное разяснение на си
@АлтынбекЖурмагамбетов
так просто обьеснеяете все понятно отлично спасибо за труд
@Ivan-rc4it
@Ivan-rc4it 4 года назад
Мне понравилось, как Вы четко и последовательно разъясняете. До этого смотрел других авторов и когда рассматривал таймеры то столкнулся с тем, что используют порт PIN, и задался вопросом, а почему нельзя считать с PORT. В youtube не нашел, пришлось много почитать и ели нашел в одном источнике. А тут сразу объяснили. Лайк.
@mrAleksiy
@mrAleksiy 5 лет назад
Большое спасибо за отличные уроки !!
@avr_stm_pro2955
@avr_stm_pro2955 6 лет назад
спасибо за труд!!!
@Иванов-у2к
@Иванов-у2к 5 лет назад
Великолепно ! Обяснение на специалист с висок професионализъм , кратко, точно и ясно изложение! Благодаря!
@викторпрокопьев-э8ю
Качественные лекции. Спасибо.
@ВалентинГордиенко-о8ы
Да. Хорошее объяснение. Всегда хотел понять как работают и программируются микросхемы и тп. Сейчас сижу и смотрю весь плейлист. Учитывая то что я программист, сне всё понятно и очень интересно. Спасибо.
@ЕвгенийАксенов-й6л
Лучшие видео в ютубе
@Михаил-ф8т3у
@Михаил-ф8т3у 4 года назад
Спасибо за видео. Но, правильно будет так на 3:37 - на нижней схеме надо рисовать не нормально замкнутый контакт , а просто замкнутый. Правильно ли я понимаю чтоб при одновременном нажатии двух кнопок ничего небыло -то надо прописать это в проге if(pinb==0b00000011) {LED=0b00000000 } ?
@КаримКеримков
@КаримКеримков 2 года назад
Логика в примере весьма простейшая, по правильному надо через else if. Как в примере будет работать не корректно схема, например при нажатии нижней кнопки светодиоды каждый цикл будут гаснуть на микросекунду, глазом не заметно но в рабочей схеме критично.
@magadan4626
@magadan4626 6 лет назад
Тут кнопка работает так - 1 раз нажал - выполнился код. Т.е. если нажать и сразу отпустить вторую кнопку (PORTB1), то LED, согласно коду поочерёдно будут зажигаться. Т.е. для этого не нужно держать кнопку всё время. Вопрос: А как сделать так, что бы при отпускании кнопки прекращалось действие кода в {} оператора if?
@denpar5450
@denpar5450 5 лет назад
/* кнопка подключена к PD7(13),светодиод к PB0(14) * GccApplication15.cpp * * Created: 11.11.2018 19:01:13 * Author : денис */ #include #include bool last = true; bool led = false; bool a = true; int main(void) { DDRD = 0b00000000; PORTD = 0b11111111; DDRB |= (1
@sergeyrink3003
@sergeyrink3003 4 года назад
Сенсорные кнопки не пробовал делать на аналоговых входах? Читаешь напряжение на входе и если амплитуда помехи превышает порог значит состояние "нажата".
@alexandersedunov9117
@alexandersedunov9117 3 года назад
Можно ли как-то в Proteus ввести сигналы с внешних источников ? Например, через звуковую карту ?
@МейрамСапаров-я9и
спасибо
@SAM-t6k7s
@SAM-t6k7s 3 года назад
Привет всем Не подскажете где можно бесплатно скачать proteus для win 10. гуглю и каждый раз какой то мусор скачивает или не подходит для win10.
@МихаилУдинцев-т1д
скажите пожалуйста, как в протеусе открыть файл pdsprj?
@ЕржанШамбаев
@ЕржанШамбаев 2 года назад
нет четкой последователности . Пронумерованности. Посмотрел второй урок а затем стоит 27. а гд 3.4.5... итд.
@ГеннадийП-з3ю
@ГеннадийП-з3ю 3 года назад
У вас в некоторых местах видео мутнеет , и не разборчиво видно .
@ВладимирСамокиш-т6г
Лентяй, каждую запятую копирует и вставляет. Но, жить, наверно, хорошо, когда кнопки нажИл честным непосильным трудом?) А так норм))
@splinterkab9007
@splinterkab9007 4 года назад
Так быстрее. Всегда так делаю.
@ВладимирСамокиш-т6г
@@splinterkab9007, быстрее, если нужно скопировать и вставить огромный блок текста, а не два слова по 5 букв. Кроме того, что напечатать будет быстрее, чем искать, копировать и вставлять, так еще и навык набора текста крепчает и мозг заставляешь работать на предмет запоминания слов и правильности их написания.
@ВладимирСамокиш-т6г
@@splinterkab9007 А вообще, претензии у меня начинаются с 13:47 . Он скопировал блок кода с задержкой и регистром, изменил один бит и заново скопировал этот же блок, но уже с измененным битом, дабы не мучаться с удалением и заново написанием этого бита, а можно было просто вставить один этот блок несколько раз и просто изменить нужные биты в каждом отдельном случае. задержка; регистр = 0б00000001; Копируешь блок и вставляешь его несколько раз, потом изменяешь нужные биты, в первом поменял один бит, во втором блоке два, в третьем три и т.д до 8(к примеру), а не копировать измененный блок, вставлять его и менять один бит, потом опять копировать, опять вставлять и опять менять только один бит. Как думаете, что из этого быстрее? А все потому, что человек привык копировать и вставлять, а не прописывать код, ибо это много букАв, хоть и одинаковые. Развиваться нужно, причем это не требует финансовых затрат, кроме временных. (хотя я не знаю для чего он так сделал, может он отлично печатает, но не хотел забивать звук в видео шумом от нажатий клавиш.. кто его знает, но коп/вст в глаза мне бросилось)
@splinterkab9007
@splinterkab9007 4 года назад
@@ВладимирСамокиш-т6г ну это верно. Мелкие блоки лучше перетаскивать зажав CTRL. Если не очень далеко. Я то обычно большие части копирую.
@pasha3177
@pasha3177 4 года назад
Первый светодиод не гаснет, а восьмой не светится! Присмотритесь внимательно. Исправьте код программы, скорее всего номера портов должны считаться с нуля, а не с единицы.
@romik5608
@romik5608 4 года назад
А первый не гаснет, потому что в начале (или в конце) тела второго условия нужно все диоды погасить.
@alexasdov1950
@alexasdov1950 5 лет назад
Большое спасибо! Действительно понятно для не программиста на си!
@aleksej442
@aleksej442 Год назад
Если внимательно посмотреть на работающую схему в Proteus-е, то можно увидеть неработающий светодиод №8. Просто добавьте задержку после строки: " LED = 0b11111111; ". Спасибо Вам огромное Дмитрий за Ваш труд и уроки!!!!
@ShomaAbd1991
@ShomaAbd1991 6 лет назад
Такие увлекательные и подробные уроки, что даже забываешь оставить комментарий или лайк! :) Я обязательно поставлю под все эти видео лайк!
@АртёмКапельцев
@АртёмКапельцев 5 лет назад
@Dmitriy Mod а потому что народ деградирует. Нет, чтобы к технологиям тянуться, изобретать что-то интересное, они вместо этого смотрят, как лизуна сделать в домашних условиях или желейного человечка..
@олегспирин-р4р
@олегспирин-р4р 4 года назад
@@АртёмКапельцев или как выпивоха, делая кульбит, падает на голову
@vasiliychepaikin422
@vasiliychepaikin422 4 года назад
@Dmitriy Mod молодежь не смотрит программирование, им подавай как девки сисками трясут..
@СергейПустовойтенко-р7щ
Коллеги, вы как никогда правы!!!
@aleksej442
@aleksej442 5 лет назад
Повторил все предоставленные Вами уроки. Жду с нетерпением видео о подключении светодиодов большего номинала с помощью транзисторного ключа. Скажите, а как сделать, чтобы светодиоды и микроконтроллер работали от 12 Вольт..? Заранее благодарен за ответ.
@олегспирин-р4р
@олегспирин-р4р 4 года назад
@Dmitriy Mod понизит, только приличное выделение энергии на нем будет, легко выйдет из строя кренка
@splinterkab9007
@splinterkab9007 4 года назад
@@олегспирин-р4р ну это смотря какие диоды воткнуть. На мк кренки хватит. А диоды от 12 В через ключи питать.
@olexandrminenko4654
@olexandrminenko4654 5 лет назад
Как сделать поочередное включение светодиодов с помощью кнопки? Вроде бы как нужно через switch(case), но я не особо понимаю как это сделать
@splinterkab9007
@splinterkab9007 4 года назад
Можно и через кейс. Мне проще через if. Писать меньше. Два варианта. Поочередное переключение кнопкой. Чуть поменять и можно включение сделат. Предполагаю есть вариант проще. int main(void) { DDRC |= 127; // 6 светодиодов на порт С //PORTC = 1; //можно не включать первый DDRB &= ~0x03; //кнопки на B0,B1 PORTB |= 0x03; // подтяжка к + while (1) { if (~PINB & 1) //переключает диоды по одному кнопка B0 { PORTC = PORTC
@splinterkab9007
@splinterkab9007 4 года назад
Так будет включать последователно if (~PINB & 0x2)//включает диоды последовательно кнопка на B1 { PORTC
@МаксимДавыдов-ь7ж
Здравствуйте не устанавливается вторая кнопка , пишет ошибки, всё проверил!
@alangilels6311
@alangilels6311 3 года назад
забыл сказать про дребезг контактов
@алексейсапелкин-м5э
Никак не могу запустить программу, ошибки, хотя вроде 1 к 1.
@СветАндромеды
@СветАндромеды 5 лет назад
Благодарствую!!!
@ЮжныйКот-м2э
@ЮжныйКот-м2э 5 лет назад
Великолепноен решение!!! А можно им управлять баяном как в этом видео? ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-0TTXVMMWlbU.html
@staskyrychenko8319
@staskyrychenko8319 9 месяцев назад
можете сделать баян из микроконтроллера :) Присоединить динамик, и выводить на него ШИМ необходимой частоты и длительности.Запрограммировать мелодию и наслаждаться музыкой!
@ДмитрийИванов-м6м
@ДмитрийИванов-м6м 9 дней назад
нейминг переменнных конечно хромает
@БлиновВиталий
@БлиновВиталий 2 года назад
Stm32 не планируется?
@КаримКеримков
@КаримКеримков 2 года назад
Константе LED присвоим значение нулей. Константе.... Нулей! И тут я понял что меня накрыло)
@RomSimbel
@RomSimbel 2 года назад
присвоили не самой константе, а регистру порта, название которого объявлено как константа )
@igorpoll2134
@igorpoll2134 2 месяца назад
Большое спасибо!
@alcs999
@alcs999 Год назад
8 ой не горит почему ?
@fotgeor
@fotgeor 4 года назад
Очень доходчиво,СПАСИБО!!!
@БорисТюсенков
@БорисТюсенков 4 года назад
Спасибо.интересно👍. вопрос- приобретение отладочной платы для изучения MK atmel avr имеет смысл?в чём преимущество настоящего прибора перед виртуальным? спасибо.
@cr00z
@cr00z 4 года назад
Отладочная плата - это тот же МК, только с некоторым обвесом (светодиоды, индикаторы, интерфейсы и тд). Имхо, если МК есть в DIP корпусе - проще взять макетную плату (бредборд) и обвеса в россыпную
@СергейПустовойтенко-р7щ
​@@cr00zили ардуину для ленивых)
@BoooMMMs
@BoooMMMs Год назад
Кнопки работают, только если прописать единицы во все биты PORTB. Если прописать единицы только в нулевой и первый бит, а в остальные прописать нули, то кнопки работают только в Протеусе. В реальной схеме, кнопки в этом случае на работают.
@jone2409
@jone2409 Год назад
спасибо
@namename2031
@namename2031 4 года назад
1:50 Значит всё равно установлен ли DDRx на вход или на выход, команда PORTx в любом случае будет выдавать 5 Вольт при заданной единице и Ноль при заданном нуле? Получается можно установить DDRx = 0, PORTx = 1 и светодиод из урока #4 всё равно будет светиться? То есть и при DDRx = 0 и при DDRx = 1, результат будет одинаковый если PORTx = 1?
@Grig_Grigoryan
@Grig_Grigoryan 4 года назад
Тоже интересно, как вам ответят, дайте знать
@splinterkab9007
@splinterkab9007 4 года назад
Как помню там по разному питание подаётся. Если порт на выход настроен то через транзистор, который держит небольшой ток. Если на вход то через резистор. И его не хватит на светодиод. И кто вам не давал проверить это в железе. Если так интересно? Если порт не настроить на выход он не должен зажигать диоды. На истину не претендую, даташит не курил.
@cr00z
@cr00z 4 года назад
По факту это так, но режимы порта другие: 1. при DDRx=1 порт на выход, тут PORTx просто запись в порт 1 или 0 2. при DDRx = 0 порт на вход, тут PORTx настраивает порт: при 0 в высокоимпедансное состояние (10 мегаом примерно, чтобы на него не наводились всякие помехи и МК не тратил энергию на обработку этих сигналов - это если все упростить) при 1 подтягивает порт к плюсу питания (используется в том числе для передачи данных, когда ведомое устройство может посадить эту ножку на минус и МК поймет это, поэтому этот режим называется пушпул) Для светодиода это значит тока нет или ток есть, но суть другая
@Sweet-kc1oz
@Sweet-kc1oz Год назад
Как частота 1млн герц будет влиять на потребление тока? Имеет смысл для этой задачи задать частоту например 1000гц?
@worldphone5593
@worldphone5593 Год назад
Вы очень крутой человек , спасибо вам большое , всегда очень сильно помогаете разбираться в оазличных темах
@АзатАхмедьянов-д7д
Здравствуйте. Почему-то у меня на 7 уроке при подключении кнопки при компиляции выходит ошибка
@RaDoooh
@RaDoooh 4 года назад
При проверке тестером при установке PORTx битов в 1 для случая DDRx 0x0 ток через кнопку 100мкА, т.е. стоит подтягивающий резистор около 43кОм. А вот для PORTx 0x0 вход действительно высокоомный и тока практически нет ни на +, ни на -, т.е. я к тому, что на 1:50 нарисован резистор на минус, но очень похоже, что его нет.
@СергейРакитин-и2й
@СергейРакитин-и2й 3 года назад
Спасибо за труд, комментарий в поддержку канала. Мне всё понятно, хорошо подан материал.
@ДмитрийДемьяненко-т3о
а почему перед включением светодиода задержка не работает?
@DrGeorgiy
@DrGeorgiy 3 года назад
13:50 Не проще ли так: LED++ ?
@frost37rus
@frost37rus 2 года назад
Спасибо Вам за Ваши труды!!!!
@pashastepanov516
@pashastepanov516 Год назад
Приветствую, спасибо за видеоуроки. Конкретно по этому ролику один вопрос. КОгда писали событие второй кнопки на последовательно включение лампочек, можно было бы использовать какой нибудь цикл для побитовой записи 1 вместо 0? Куча однотипных строчек все таки не самое удобное решение
@СергейПустовойтенко-р7щ
Дальше будут побитовые операции. Я этот плейлист вижу впервые, но покупал полный курс. Там все полностью и толково изложено. Своих денег стоит.
@elyakas78
@elyakas78 3 года назад
Здравствуйте, подскажите, как сделать так, чтобы нажать кнопку и удерживать, и только в положении удержания этой кнопки нажать другую кнопку, чтобы включить светодиод. то есть мы можем включать светодиод второй кнопкой только в том случае, если нажата первая кнопка. я не прошу код, просто объясните каким образом можно реализовать?
@СергейПустовойтенко-р7щ
Логика такова.Если первая нажата и вторая нажата диоды горят. Если по другому, то ничего не горит.
@кожевникедвард
@кожевникедвард 3 года назад
А если представить что светодиодов не 8, а на всех возможных пинах и варианты мигания ещё разнообразнее. То можно ли использовать что то типа LED ++ вместо 0b00000001... 0b00000010…..
@СергейПустовойтенко-р7щ
Можно. В полном курсе есть полное объяснение.
@АртёмКапельцев
@АртёмКапельцев 5 лет назад
Довольно таки очпуеть!
@VG-vn8kk
@VG-vn8kk 4 года назад
Большое спасибо за Ваши уроки! Учусь, но столкнулся с проблемой: программа корректно работает в Протеусе, загружается в микроконтроллер без ошибок, но стоит мне отсоеденить программатор от компьютера как происходит какои-то сбой: диоды загораются частичо и перестают загораться по очереди. В автономном режиме после этого схема уже не работает: пара диодов светится частично, на нажатие кнопок реагирует хаотично. Вот такая пичалька. Не имею опыта и не могу понать что не так. Может что-то подскажите?
@VG-vn8kk
@VG-vn8kk 4 года назад
Все. Разобрался. Всем спасибо.
@ivanbogun5629
@ivanbogun5629 5 лет назад
Вопрос , получается что к кнопкам , подтягивающий резистор цеплять не надо так как есть внутри мк резистор ? Во всех схемах что видел кругом к кнопкам цепляют всегда , резистор. Или я что-то путаю
@splinterkab9007
@splinterkab9007 4 года назад
Иногда и конденсаторы ставят чтоб не шумели кнопки.
@chrnshv6920
@chrnshv6920 3 года назад
Доброго времени суток! Мне показалось, что при нажатии 2 кнопки - 8 светодиод не загорелся. А в самом коде не установлен параметр Z после включения 8 светодиода.
@mariabrest
@mariabrest 2 года назад
8 светодиот загорался и сразу слишком быстро тух. Это маленькая ошибка автора, которую он как раз таки исправил, но не прокомментировал, поэтому вы на видео и не обратили внимание. А исправил он ошибку как раз таки тем что добавил нехватающую задержку. Это исправление он сделал молча после демонстрации.
@G-P_H-T
@G-P_H-T 4 года назад
Безусловно хороший понятный урок! Но, по Вашей рекламе онлайн курса, цена в 230$ зашкаливает! Как говорится "будьте по проще и народ к Вам подтянется" Это секрет успеха многих высоко развитых стран и предприятий.
@BoooMMMs
@BoooMMMs Год назад
Как говорится "сделай свой курс, и хоть за бесплатно раздавай, как раздаешь свои советы.".
@G-P_H-T
@G-P_H-T Год назад
@@BoooMMMs Сам то,, тоже с "заумными" советами поязвить, специалист.
@MrRONE777
@MrRONE777 4 года назад
Офигенный ролик
@allallall2321
@allallall2321 5 лет назад
Спасибо за новые видео по авр
@Alexey_Ax
@Alexey_Ax 3 года назад
спасибо!!!
@ЕвгенийМироненко-м4о
Подскажите кто знает откуда скачать нормальную Протеус?
@buzzer58
@buzzer58 2 года назад
С рутрекера попробую, у меня получилось
@vladiratorandreevich8639
@vladiratorandreevich8639 2 года назад
На порту D есть специальные пины Int0, Int1 для организаций внешних прерываний. Очень кстати на эти пины подключать кнопки и организовывать прерывания.
@zamer_garage
@zamer_garage 2 года назад
Доброго времени суток. А почему при нажатии второй кнопки 8 светодиод не загорался? Ведь вы его прописали.
@ДмитрийМясков
@ДмитрийМясков Год назад
@@zamer_garage наверно потому, что после зажигания последнего светодиода не поставили задержку, он включается на 1 такт и сражу же начинается новый цикл и зажигается 1 й светодиод
@АлексейАнистратов-б6з
спасибо!
@gharibghukasyan4227
@gharibghukasyan4227 4 года назад
Здарова брат я из Армени .можеш ли зделот таимер на 3,7 волта
Далее
Qalpoq - Amakivachcha (hajviy ko'rsatuv)
41:44
Просмотров 240 тыс.
Лекция 340. Atmega8 прерывания
19:37
Attiny13 - ПРОБА ПЕРА
10:16
Просмотров 28 тыс.