Урок №01. Знакомство с микроконтроллерной платформой Adruino.

## Функционал платформы

### Что такое микроконтроллер?

Микроконтроллер представляет собой микросхему, которая используется для управления электронными устройствами. Типичный микроконтроллер сочетает на одном кристалле функции процессора и периферийных устройств, содержит ОЗУ и (или) ПЗУ. По сути, это однокристальный компьютер, способный выполнять относительно простые задачи. Не стоит путать с микропроцессором, так как он не содержит в себе периферийных устройств.

Под периферийными устройствами обычно понимают порты входа/выхода, ШИМ-модуляторы, таймеры, радиочастотные приёмники и так далее.

### Что такое Arduino?

**Arduino** - эффективная аппаратно-программная платформа для проектирования и создания новых устройств, состоящая из самой платы и программного обеспечения.

Arduino применяется для создания электронных устройств с возможностью приема сигналов от различных цифровых и аналоговых датчиков, которые могут быть подключены к нему, и управления различными исполнительными устройствами. Проекты устройств, основанные на Arduino, могут работать самостоятельно или взаимодействовать с программным обеспечением на компьютере.

Arduino Uno - есть эталонная модель платформы типа Arduino.Существуют и другие модели, такие как Arduino Nano и Arduino Mega.

Его состав следующий:

* количество цифровых входов и выходов составляет 14 (а шесть из них имеют возможность использовать как выходы ШИМ; для ШИМ используются выводы за номерами 3,5, 6, 9,10,11).
* число аналоговых входов составляет шесть  (A0 – A5).
* 16 МГц – кварцевый резонатор.
* имеется разъём для питания.
* есть разъём, предназначенный для ICSP-программирования внутри самой схемы.
* присутствует кнопка для сброса (вывод Reset).

### Как программировать Arduino?

Микроконтроллер Arduino программируется на специальном языке программирования, основанном на C/C ++. Язык программирования Arduino является разновидностью C++ и называется Wiring, другими словами, отдельного языка программирования для Arduino не существует.

C++ - компилируемый, статически типизированный язык программирования общего назначения. Код на таком языке состоит из отдельных блоков, называемых методами и функциями.

В программах для Arduino существуют две обязательные функции  `setup` и `loop`. Их присутствие обязательно в любой программе на C++ для Arduino. Они могут ничего и не делать, но должны быть написаны. Так как любая программа состоит из отдельных блоков, то начало блока в C/C++ обозначается левой фигурной скобкой { , а конец-правой фигурной скобкой } .

Пример:

```
 void setup()
 {
 pinMode(3, OUTPUT);
 }

 void loop()
 {
 digitalWrite(3, HIGH);
 }

```

Ardublockly - это графический язык программирования для Arduino, предназначенный для новичков. Он прост в использовании.

## Интерфейсы подключения

У микроконтроллерной платформы Arduino существует два типа интерфейсов входов/выходов(I/O ports) - аналоговые и цифровые порты, так же называемые пинами. Эти пины настраиваются как входы или как выходы, чтобы, соответственно, считывать информацию в виде электрического напряжения или передавать её в виде напряжения на определенный источник.

### Цифровые порты

Цифровые порты 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 позволяют подключить к Arduino различные датчики, сенсоры и прочие микросхемы. Цифровой порт имеет всего два значения для приёма/передачи: HIGH(высокий) и LOW(низкий). Они же соответственно 5V и 0V.

### Аналоговые порты

Arduino Uno имеет на своей плате шесть аналоговых портов A0, A1, A2, A3, A4, A5. Аналоговые порты нужны для того, чтобы регулировать напряжение на порте от 0 до 5V. Диапазон их значений, доступных для приёма и передачи лежит в отрезке от 0 до 1023, где 0 соответствует 0V, а 1023 - 5V.

Пример перевода аналогового сигнала в вольты:

```
 float Step = 5.0F / 1024; // Вычисляем шаг Uопорн / на градацию

 void setup()
 {
 Serial.begin(9600); // Задаем скорость работы монитор порта
 }

 void loop()
 {
 int analogValue = analogRead(0); // Задаем переменную analogValue для считывания показаний
 float voltageValue = analogValue \* Step; // Переводим в вольты (показание \* шаг)
 Serial.println(voltageValue); // Выводим значение в вольтах в порт
 delay(500); // Ждем пол секунды//

```

## Первый опыт работы на Arduino

### Что такое светодиод?

Простейшей задачей для новичков работы с Arduino можно назвать подключение светодиода к 5V.

Светодиод - это полупроводниковый прибор, способный излучать свет за счет того, что через него проходит электрический ток в прямом направлении от анода к катоду. Светодиоды можно разделить по цветам (желтый, зеленый, голубой, красный), а также по номинальному количеству потребляемого тока. Широко

распространены модели с током потребления 10 миллиампер (мА) и 20 мА.

### Как подключить светодиод?

Первым делом вставляем светодиод в макетную плату. Затем подключаем к катоду ( короткая ножка светодиода) последовательно резистор. Далее первый провод одним концом подключаем к аноду (длинная ножка светодиода) , а другим концом к 5 пину на Arduino. Второй провод подключаем к резистору и к GND на Arduino

(смотрите рисунок).

### Код для примера

```
void setup()
{
pinMode(5, OUTPUT);
}

void loop()
{
digitalWrite(5, HIGH);

delay(1000);
digitalWrite(5, LOW);

delay(1000);
}

```
Скопируйте его в Arduino IDE, подключите Arduino к компьютеру и нажмите кнопку "Загрузить".