Предположим вам поставили задачу — заставить мигать светодиод.
Рассуждаем, как решить эту задачу:
Вариант 1 — самое простое, взять тумблер/кнопку, рядом посадить раба, который тумблером будет включать/выключать светодиод. Обычно в России большинство задач именно так и решается. А что ведь мигает)))
Вариант 2 — собрать мультивибратор. Уже интереснее. Для того чтобы помигать, одним светодиодом вполне даже хорошее решение. К тому же просто, дешево, надежно.
Вариант 3 — собрать на микроконтроллере. Дороже чем собрать мультивибратор, но на мой взгляд проще. Написал программу, прошил, получил результат. Без настройки. Конечно это идеальный случай.
Теперь усложним задачу. Например, 5 светодиодов и 5 вариантов их мигания (изменяется скорость и порядок их мигания). Первый вариант сразу отпадает, способом 2 сделать можно, но размеры устройства резко увеличатся. Вариант 3 останется примерно тех же размеров, достаточно дописать пару строк кода. Следовательно есть разные случаи, где то без микроконтроллера невозможно, а где то он излишество. Поэтому всегда оценивайте трудозатраты, время и финансовые затраты.
Итак, микроконтроллер позволяет нам гибко управлять, системами, процессами и т.п, имеет небольшие габариты, по функциональности это миникомпьютер. Микроконтроллеры выпускаются разными фирмами. Одна из разновидностей микроконтроллеры AVR фирмы Atmel. Почему именно они? Их довольно просто найти в магазине, легко найти примеры готового кода, встроенный функционал позволяет решать даже сложные задачи.
Чтобы микроконтроллер нас понимал, что мы от него хотим, в него нужно загрузить прошивку — последовательность действий, которую ему необходимо выполнить. Прошивка представляет собой последовательность единиц и нулей. Чтобы было удобнее, придумали языки программирования. Например, мы пишем включи, а компилятор уже сам преобразовывает в понятную для микроконтроллера последовательность единиц и нулей. На рисунке показана HEX прошивка, если ее открыть при помощи блокнота.
Программируют микроконтроллеры обычно на языке Си или на ассемблере. На чем писать по большому счету разницы нет. Из-за большого количества готовых примеров, я свой выбор сделал в пользу Си. Кроме того, существует несколько программ позволяющих писать на Си. Например бесплатная, фирменная AVR Studio, CodeVision, WinAVR и т.п. Несмотря на то, что я пишу в CodeVision, очень активно использую AVR Studio как отладчик.
Надеюсь хоть что то из этого понятно вам стало. На мой взгляд, самое сложное это сделать первый шаг. Тот кто его сделает, переборет свой страх и свою лень, тот обязательно добьется результата. Удачи в изучении микроконтроллеров.
Здравствуйте, отличная статья, но есть один вопрос. Скажите пожалуйста, Ардуино с точки зрения микроконтроллера отличается чем либо от простого AVR или нет? Я так понимаю, что язык Processing, используемый для программирования ардуино, также преобразуется в hex файл и заливается, т.е. преобразованием процессинга в хекс занимается непосредственно программная среда для ПК?
Имею опыт работы с ардуино, но хочу перейти к «голым» МК, которые я могу программировать на Си через, например, avr studio или же на processing используя среду Arduino, верно? Спасибо вам огромное и не могли бы вы прислать копию ответа мне на email?
можно дуину использовать как обычный мк