Программирование микроконтроллеров
Сегодня практически все электронные устройства содержат микроконтроллеры или микропроцессоры: начиная от простейшей музыкальной открытки и до сложнейших космических кораблей, не говоря уже об охвативших весь мир гаджетах. Поэтому современный радиолюбитель или электронщик очень отличается от тех, которые были 30 лет назад. Сейчас умение программировать микроконтроллеры – это необходимый навык любого, даже начинающего электронщика.
Программист микроконтроллеров – это не только современная специальность, но и специальность будущего, поскольку в скором времени все системы и устройства будут роботизированы, поэтому резко возрастет спрос на робототехников. А толковый робототехник должен хорошо знать не только механику, но, в первую очередь, и программирование микроконтроллеров.
Для кого предназначен курс
Данный курс рассчитан главным образом для начинающих, поэтому подробно рассмотрено назначение каждого символа в коде, предполагая что ранее слушатель не имел никакого опыта в программировании; изучаем «даташиты», подробно рассматриваем периферию: таймер-счетчик, прерывания, АЦП, ШИМ, интерфейсы и т.п. Выполняем анализ ошибок, наиболее часто допускаемых начинающими, рассматриваем альтернативные варианты кода и многое другое.
Какой тип микроконтроллеров будем изучать
Изучать программирование мы будем на примере микроконтроллеров AVR. Для обучающих целей за базовый МК принят ATmega8. Плюс несколько последних занятий будут посвящены микроконтроллерам STM32.
Изучать в качестве первого микроконтроллера STM32 по личному и опыту других программистов я не рекомендую. Проще и продуктивней начинать изучение с 8-ми битных МК, например таких как ATmega8, ATmega48, ATmega16, ATmega8535, ATmega328, ATtiny2313, ATtiny13 и т.п. Кроме того, работу МК линейки AVR можно эмулировать в программе Proteus. Благодаря этому можно изучать работу и выполнять отладку микроконтроллеров не имея в наличии самих МК, что очень удобно как в обучающих, так и в практических целях.
В дальнейшем я собираюсь проводить курсы по программированию микроконтроллеров STM32, поскольку они сейчас пользуются наибольшим спросом среди программистов встроенных систем. И в целях экономии времени, чтобы не дублировать самого себя, я буду строить занятия с учетом того, что у слушателей уже имеется хотя бы минимальный опыт программирования МК AVR, и мне не придется уделять много времени снова рассказывая, что собой представляют функции, операторы, массивы, побитовые операции или, например, порты ввода-вывода, таймеры, АЦП, ШИМ, UART, SPI и т.п. Все эти и многие другие вопросы рассмотрены в данном курсе.
На каком язык программирования будем писать программы
В основном микроконтроллеры программируют на таких языках: C, С++, Python, а также на Ассемблере. Знать ассемблер – это хорошо, но опыт показывает, что программирование микроконтроллеров для начинающих выглядит гораздо интересней и увлекательней на языке C. Поэтому в данном курсе особое внимание уделяется языку C, причем С излагается с учетом того, что у слушателей ранее не было никакого опыта программирования вовсе, то есть мы будем изучать C от самых базовых понятий до вполне приличного уровня.
Программа курса
Программа курса предполагает изучения всех пунктов, приведенных ниже. Основной упор сделан на практическую сторону, поэтому будем решать практические задачи, применяемые в реальных устройствах.
Программа курса включает следующие основные пункты:
- Область применение микроконтроллеров (МК). Основная периферия МК. Отличие микроконтроллера от микропроцессора. Порти ввода-вывода микроконтроллера. Настройка портов на выход. Подключение светодиодов. Функция main. Оператор while. Директива препроцессора #include.
- Библиотека задержек. Директива препроцессора #define. Прошивка микроконтроллера.
- Подключение кнопок к портам микроконтроллера. Настройка портов МК на выход. Подтягивающий и стягивающий резисторы. Высокое входное сопротивление. Проверка состояния пинов порта микроконтроллера.
- Семисегментные индикаторы. Подключение одноразрядных семисегментных индикаторов с общим катодом и общим анодом.
- Массивы. Оператор for. Типы данных int, char.
- Логические операции. Побитовые операции. Установка, сброс, переключение отдельных битов микроконтроллера.
- Проверка отдельных битов микроконтроллера. Динамическая индикация.
- Подключение динамической индикации посредством транзисторов. Общие понятия о таймер-счетчиках. Настройки нулевого таймер-счетчика. Регистр контроля и счетный регистр таймер-счетчика.
- Настройки первого и второго таймер-счетчиков. Отличие 8-ми битного и 16-ти битного таймер-счетчиков. Форматы записи чисел в таймер-счетчики.
- Дребезг контактов. Борьба с дребезгом. Настройка работы кнопки в разных режимах. Общие понятия о прерываниях. Внешние прерывания.
- Прерывание от таймер-счетчиков. Прерывание при переполнении таймер-счетчика. Динамическая индикация по прерыванию таймер-счетчика.
- Прерывание таймер-счетчика при совпадении. Формирование точного интервала времени. Таймер. Секундомер.
- Настройка фьюзов. Подключение внешнего кварцевого резонатора к микроконтроллеру.
- Оператор switch case. Динамическая индикация с применением switch case.
- Сдвиговый регистр 74HC595. Принцип работы. Применение. Подключение к микроконтроллеру. Расширение портов микроконтроллера. Последовательное соединение сдвиговых регистров. Статическая и динамическая индикация с применением сдвиговых регистров.
- Разработка частотомера и тахометра.
- Аналогово-цифровой преобразователь (АЦП). Принцип работы. Основные параметры. Настройки. Источники опорного напряжения. Расчет схемы подключения.
- Настройки работы АЦП по прерыванию. Сборка и настройка вольтметра. Типы данных с плавающей запятой. Явное и неявное преобразование типов данных.
- Подключение аналогового датчика температуры TMP36 (LM35). Измерения с нескольких каналов АЦП. Подключение кнопок к выводам АЦП.
- Аналоговый компаратор. Принцип действия. Основные параметры. Настройки. Применение. Режимы работы аналогового компаратора.
- Энергонезависимая память EEPROM. Основные параметры. Настройки. Организация памяти, запись и чтение данных из EEPROM.
- Функции. Типы функций. Создание и подключение подключаемых файлов .h и .c. Определение наибольшего и среднего числа.
- Подключение жидкокристаллического дисплея (ЖК) LCD. Настройки. Различие между строками и символами. Код ASCII. Отображение символов и строк на ЖК.
- Вывод переменной на ЖК дисплей. Применение функций itoa, dtostrf, sprintf. Вольтметр на ЖК дисплее. Настройки среды для работы с плавающей запятой для функции sprintf.
- Матричная клавиатура. Принцип работы. Подключение. Работа с двухмерными массивами данных.
- Широтно-импульсная модуляция (ШИМ). Принцип работы. Основные параметры. Настройки. Быстродействующая ШИМ. ШИМ с точной фазой. ШИМ с точной фазой и частотой.
- Регулирование ШИМ посредством кнопок и АЦП. Энкодер. Принцип работы. Подключение.
- Шаговый двигатель (ШД). Принцип работы и управления униполярным и биполярным ШД. Управление униполярным ШД посредством драйвера ULN2003.
- Управление биполярным, униполярным ШД и коллекторным двигателям посредством драйверов LN298N, L293D, DVR8834.
- Интерфейс UART. Принцип работы. Настройки. Передача данных.
- Прием данных по интерфейсу UART.
- Применение функций для работы с UART. Передача данных с АЦП по UART.
- Аппаратная реализация интерфейса 1-wire. Подключение датчика температуры DS18B20.
- Интерфейс 1-wire. Обмен данными с датчиком температуры DS18B20.
- Интерфейс TWI (I2C). Принцип работы. Настройки. Подключение EEPROM 24C256.
- Интерфейс TWI (I2C). Подключение датчика температуры и влажности SHT3x.
- OLED дисплей. Основные параметры и настройки. Подключение OLED посредством TWI (I2C).
- Интерфейс TWI (I2C). Подключение расширителя портов PCF8574. Подключение LCD к МК посредством PCF857.
- Интерфейс SPI. Принцип работы. Настройки. Обмен данными между двумя МК.
- Интерфейс SPI. Подключение преобразователя MAX6675 и термопары.
Особенность данного курса
Особенностью данного курса является то, что он будет проходить в офлайн режиме. Предыдущие шесть аналогичных курсов я проводи в онлайн режиме. Однако, как показала практика, в виду разных часовых поясов и графиков работы большинству участников курса удобней изучать материалы по записям в любое удобное время. В случае необходимости мы можем встречаться в онлайн группой или индивидуально. Кроме того, я создам чат в телеграмм, где мы сможем оперативно решать вопросы либо просто делится идеями.
После курсов
После изучения курса Вас ожидает следующее:
- Полюбите микроконтроллеры и больше не будете их бояться.
- Научитесь программировать микроконтроллеры любых типов серии AVR и сможет приступить к МК STM32.
- Приобретете навыки уверенного программирования на языке C.
- Научитесь читать и понимать даташиты (техническую документацию) микроконтроллеров, датчиков, радиоэлектронных элементов.
- Сможете разрабатывать электронные устройства средней сложности на базе микроконтроллеров AVR.
- Сможете очень быстро и без труда освоить ARDUINO.
- Будет гораздо проще и интересней изучать микроконтроллеры других серий: STM, PIC и т.п.
- Приобретете новую профессию и в дальнейшем сможете работать программистом микроконтроллеров.
Курс состоит из 40 видеороликов, общей продолжительность более 80 часов, объемом более 130 ГБ. Также к видеозаписям прилагаются сопутствующие материалы ко всем занятиям курса.
Стоимость курса 160 USD
По вопросам приобретения курса пишите сюда:
e-mail: zabarylodo@gmail.com
WhatsApp: +380634467738
Telegram: +380955505711
Дмитрий Забарило
Добрый день!
Очень хочу пройти Ваши курсы по микроконтроллерам. Хочу спросить, есть ли возможность внести оплату частями? Допустим половину стоимости перед началом корсов и вторую половину в конечной фазе курсов? Или есть возможность платит помесячно?
Спасибо за ответ)
Здравствуйте! Оплату можно выполнить частями. Пожалуйста, по вопросам курса пишите мне на почту: zabarylodo@gmail.com
Здравствуйте,
1. будет ли вестись запись занятий с последующей доступностью просмотра?
2. Касательно оплаты по частям, можно 4 x $60 — в начале каждого месяца?
3. Предусмотрена ли на уроках практическая работа студентов в реальном времени?
Здравствуйте.
1. Да.
2. Да.
3. Практические задания будут, но не в режим онлайн.
Добрий день. За курс для начинающих електронщиков заплатил сегодня, прошу скинуть ссилки на скачивание на почту lenshin0@ukr .net Леньшин О.Г., она указивалась при оплате, спасибо.
Здравствуйте. Ссылки получили?
Можно Paypal?
Доброї ночі. Скажіть будь-ласка чи планується запис курсу? Планую через декілька місяців, якщо буде доступний, придбати даний курс і подивитись офлайн.
Доброго дня. Можливо в подальшому курс буде доступний в записах.
Добрый день. Подскажите когда ближайший набор стартует? Спасибо
Здравствуйте. Следующий курс планируется в январе или феврале.
Здравствуйте! Будут ли скидки на Новый год или Черную пятницу?
Также, можно ли приобрести сейчас чтобы заниматься по старым видеозаписям ?
Добрый вечер в январе я хотел бы получить ваш курс
Когда начнутся следующие курсы? Я хотел бы пройти их. И как устроено обучение? Вы просто даёте нам материалы, а мы должны сами во всём разбираться, или вы будете нам всё объяснять? Будете ли вы давать задания? Есть ли возможность задавать вопросы по изучаемым материалам? Я очень хотел бы поучаствовать, но не знаю подходит ли мне метод обучения.
Дмитрий, здравствуйте! Подскажите пожалуйста, будут ли рассмотрены вопросы по поводу коммерческого применения своих разработок и устройств?
Здравствуйте, Дмитрий! А в курсе будет рассказано применение на коммерческой основе своих разработок и устройств?
Отличный курс, прошел на одном дыхании, пол года пролетели как один месяц! Было очень позновательно, увлекательно, интересно, полезно! Дмитрий настоящий педогог, материал готовит просто замечательно, все по делу, не спеша, с чувством, с толком, с расстановкой!
Спасбо большое за курс!
Здравствуйте сколько стоит купить первую часть курса
Дмитрий здравия! Из какого источника можно будет узнать о старте нового потока курса о микроконтроллерах?
Добрый день. Можете организовать курс (видео уроки) по ‘микропитону’ ?
будет ли доступен этот курс для покупки летом?
Скорее всего, будут.
А можно провести практические занятия в онлайн режиме? Спс за ответ
Здравствуйте, в вашем Ютуб канале тоже не мало уроков по электронике, какие преимущества имеют онлайн курсы? Спасибо за ответ
Дмитрий, добрый день. Подскажите, ещё можно записаться на курс программирования микроконтроллеров? Или нужно ждать следующую группу?
Здравствуйте.
Данный курс полностью в записи, поэтому нет смысла ожидать следующую группу.
По вопросом курса пишите мне на почту: zabarylodo@gmail.com
Самый лучший преподаватель, Учитель с большой буквы — это Дмитрий. Мне тема программирования МК всегда казалась чем то заоблачным, непонятным, но в то же время всегда хотел разобраться. Смотрел другие курсы, пытался изучить по книгам — не заходило. У Дмитрия прошел курс и потом возвращался к темам из курса по многу раз, когда было что то непонятно, по раза 3 точно видео все пересмотрел. В итоге прошло почти 2 года и я самостоятельно собираю различные устройства. У меня уже умный или полуумный) дом на avr и это реально очень интересно. Спасибо!
Скажите пожалуйста когда можно записаться на курсы я походу в феврале опоздала…
Благодарю.
Отличный курс. Дмитрий подробно объясняет не только работу с микроконтроллером, но и попутно объясняет основы языка Си. Причем объясняет очень понятно и доступно, до такой степени что пока ещё не возникла потребность в информации из других источников. Для тех кто знаком с электроникой вообще не возникнет трудностей, даже если с микроконтроллерами до этого не сталкивались. Мне есть с чем сравнивать, и курс Дмитрия самый доступный и по стоимости и по доступности для понимания предмета.
Добрый день!
Можно ли сейчас купить курс с оплатой через USDT?
Добрый день!
Можно. Информация по курсу и реквизитам оплаты актуальны. Пожалуйста, по вопросам курса пишите мне на почту.
Дмитрий, здравствуйте! Подскажите пожалуйста, будет ли полезен данный курс и другие ваши курсы если стоит задача научиться создавать электронные блоки и программы для управления промышленным оборудованием, а также ЧПУ станками (фрезерный, лазерный)?
Огромнейшая благодарность Дмитрию, за создание подобных курсов!
Мега -супердоступно и «разжеванно» доскально различные нюансы по программированию МК на языке С.
Незабываемые впечатления, учусь по видео урокам с огромнейшим удовольствем!
Респект и уважение, за терпение по донесению и оформлению материала!
Добрый день. Дмитрий подскажите пожалуйста. Вы как то обещали выпустить курс по транзисторами для начинающих. Вот хотелось бы узнать а будит ли этот материал, планируете его выпустить. Очень хотелось бы его приобрести.
Отличные курсы! Рахмет, удачи вам.
Так просто о сложном, в 92 году в колледже проходил, но без практики. Было не понятно ради чего и куда идем. Диплом есть а знании нет. Потому ушел в сферу IT.
Слава Украине! Алга Казахстан!