Для подключения светодиода к Arduino, нам нужно:
- Плата Arduino. x1
- Компьютер(для написания и загрузке кода, а так же мы будем брать с него электричество). x1
- Провод для соединения компьютера и платы. x1
- Светодиод. x1
- Резистор в пределах от 220 Ом до 1 КОм. x1
- Провода (подсоединить светодиод с резистором к плате, как минимум два). x2
- Макетная плата (для удобства сборки) x1
Схема подключения:
Соединяем штырёк gnd на arduino с катодом, а анод надо соединить через резистор с 13 штырьком на arduino.
Скетч:
Для данной схемы, рассмотрим пример идущий в комплекте с IDE Arduino. Открыть его можно по пути:
Файл -> Примеры -> 01.Basic -> Blinc.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
/* Blink Turns on an LED on for one second, then off for one second, repeatedly. This example code is in the public domain. */ // Pin 13 has an LED connected on most Arduino boards. // give it a name: int led = 13; // the setup routine runs once when you press reset: void setup() { // initialize the digital pin as an output. pinMode(led, OUTPUT); } // the loop routine runs over and over again forever: void loop() { digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(led, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second } |
Разберём данный набросок.
Текст написанный между «/*» и «*/» это комментарий. Так же комментариями являются текст, после символов «//».
И того действующего кода у нас не так и много:
1 2 3 4 5 6 7 8 9 10 11 12 |
int led = 13; void setup() { pinMode(led, OUTPUT); } void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); } |
Здесь три основных блока функции:
Первая строчка в которой инициализируются глобальная переменная «led». И две функции void setup() {…} и void loop() {…}.
Разберём первую строчку, в ней мы инициализируем переменную led:
1 |
int led = 13; |
Данная переменная будет видна во всей программе, включая внутри блоков кода функции setup и loop. В данном примере, у нас получилась переменная led целого типа(int), которая равняется 13. Это номер штырька к которому подсоединён светодиод. Если мы захотим подключить наш светодиод к другому штырьку, достаточно просто поменять значение переменной, а не ходить по всему коду и менять значение в каждой функции. Ещё одно преимущество такого подхода то, что у нас есть место в котором мы сможем быстро увидеть все занятые штырьки.
void setup() {…} — эта функция запускается один раз, при перезагрузке или включении платы. В данную функцию принято помещать код для инициализации переменных, первоначальных настроек, установки режимов контактов и т.д.
В нашем примере там находится функция «pinMode(led, OUTPUT);» данная функция настраивает штырёк в режим ввода или вывода. Так как в переменной led у нас находится число 13, то мы иницализируем pin(штырёк) с номером 13 как вывод(OUTPUT).
далее идёт функция void loop() {…} — это бесконечный цикл.
В нём обычно содержится основной код программы.
В нашем случае там находятся следующие команды:
1 2 3 4 |
digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); |
Разберём его:
1 |
digitalWrite(led, HIGH); |
Функция digitalWrite нужна, для управления напряжением на цифровых штырьках. В данном случем мы устанавливает напряжение на led штырьке, в состояние HIGH (напряжение зависит от платы от 3.3v до 5v).
Далее идёт функция delay:
1 |
delay(1000); |
Это задержка в 1000 мили секунд, то есть в 1 секунду.
1 |
digitalWrite(led, LOW); |
Это опять функция digitalWrite, но сейчас мы устанавливаем значение LOW, на 13 штырёк. И на 13 штырьке напряжения убирётся.
Далее опять задержка в 1 секунду:
1 |
delay(1000); |
Здесь блок кода в функции loop закончился.
Функцию loop плата будет выполнять, пока она не перезагрузится или не выключится.
У большинства плат Arduino на 13 штырьке уже подключен светодиод. На плате он помечен как L. Поэтому после загрузки скетча светодиод на плате arduino должен синхронно мигать, со светодиодом на макетной плате.
Видео данного процесса:
Другие статьи по программированию плат Arduino можно посмотреть здесь.
Вы в описании подключения светодиода к Arduino перепутали катод с анодом!
Спасибо большое, поправил.