Введение в программирование

Как работает Arduino

Итак, мы начинаем наше путешествие в очень интересный мир программирования микроконтроллеров.

Что же такое всё-таки микроконтроллер? Давайте ещё раз представим Arduino в виде коробочки с большим количеством выключателей - пинов. Даже не выключателей, а что-то вроде коробочки с дверями. И эти двери позволяют либо выпускать электроны из коробочки, либо запустить в неё. При этом если мы запускаем, электроны в коробочку, то можем подсчитать их количество, а значит измерить напряжение.

Как работает arduino

Ещё в этой замечательной коробочке есть таймер. Он отсчитывает такты для выполнения команд. Таймер называется генератор тактовой частоты, и он выдаёт сигнал в 16 мегагерц, то есть 16 миллионов тактов в секунду! Каждый такт выполняется какая-то команда. Это может быть команда открытия двери - пина, которая выпустит электроны наружу. Или команда, которая помещает во внутреннюю ячейку памяти столько же электронов, какое количество пришло на одном из входов, где у нас находится датчик. Большинство команд, правда, могут занять несколько тактов.

Таким образом, Arduino просто может управлять своими пинами, но запомните важное правило! Arduino понятия не имеет что вы к ней присоединили! Она может управлять напряжением на своих выходах (записать значение напряжения, либо считать значение напряжения), согласно командам которые находятся в созданной вами программе!

Более того, микроконтроллер несмотря на свою универсальность даже не знает что делать со своими выходами, чтобы присоединённое вами устройство работало! Например, чтобы зажечь светодиод, присоединённый к выходу Arduino, нам надо выдать на него ток. Ток выбежит из Arduino, пробежит по проводу через резистор, который его притормозит, пробежит через светодиод, заставляя его гореть, и уйдёт на контакт GND.

Но это мы знаем что там светодиод. А вот Arduino об этом не знает, и не знает что на него надо подавать ток, чтобы он загорелся!

Ведь мы можем к этому выходу присоединить кнопку, и тогда нужно будет открывать пин на вход, чтобы измерить количество электронов и понять нажата или нет кнопка.

Именно поэтому любая программа на Arduino содержит минимум два раздела: setup, в котором мы прописываем на каком пине что присоединено (по сути в каком направлении должен работать пин: на чтение или запись сигнала), и раздел loop, в котором будет наша основная программа.