Выбрать главу

После того, как светоидод подключён, вам надо сказать плате Arduino что делать. Это делается кодом - списком команд, которые мы даём микроконтроллеру чтобы он делал то что мы хотим.

Рис. 4.2 Подключение светодиода к Arduino

Откройте папку, в которую вы поместили IDE Arduino на своём компьютере. Дважды щёлкните на значке Arduino для запуска, выберите "File" > "New". У вас запросят имя папки со скетчами: это место, где будет храниться скетч Arduino. Введите имя Blinking_LED и нажмите "ОК". Затем введите следующий текст (пример 4-1) в редакторе скетчей (в главном окне IDE Arduino). Вы также можете загрузить его со страницыwww.makezine.com/getstartedarduino. Он должен выглядеть как на рис. 4-3.

Пример 4-1. Мигающий светодиод

#define LED 13   // LED connected to

                 // digital pin 13

void setup()

{

  pinMode(LED, OUTPUT); // sets the digital

                            // pin as output

}

void loop()

{

  digitalWrite(LED, HIGH); // turns the LED on

  delay(1000); // waits for a second

  digitalWrite(LED, LOW); // turns the LED off

  delay(1000); // waits for a second

}

Рис. 4-3. Среда разработки Arduino со скетчем

Теперь, когда ваш код находится в IDE, вам надо проверить его. Нажмите кнопку "Verify" (рис. 4-3 показывает где она находится); если всё верно, вы увидите внизу окна сообщение "Done compiling". Это сообщение говорит о том, что IDE Arduino оттранслировала ваш скетч в выполняемую программу, которая может быть запущена на плате, почти как .exe-файлы в Windows или файлы .app на Mac.

Теперь вы можете выгрузить скетч на плату: нажмите кнопку "Upload to I/O Board" (см. рис. 4-3). Произойдт перезапуск платы, который заставляет плату остановить выполнение кода и слушать инструкции по порту USB. IDE Arduino отправляет текущий скетч на плату, которая сохраняет его в своей памяти и в конце концов выполняет его.

Вы увидите несколько сообщений в чёрной области внизу экрана IDE, и прямо над этой областью вы увидите сообщение "Done uploading". Это означает, что процесс выгрузки успешно завершён. На плате установлено два светодиода, обозначенные " RX" и "TX"; они мигают всякий раз при отправке или получении байта платой. Во время выгрузки они мерцают.

Если вы не видите что светодиоды мерцают, или получаете сообщение об ошибке вместо "Done uploading", значит существует проблема связи между вашим компьютером и Arduino. Удостоверьтесь что выбран верный COM-порт в меню "Tools" > "Serial Port" (см. главу 3). Также проверьте пункт меню "Tools" > "Board" - в нём должна быть выбрана верная модель Arduino.

Если вы всё ещё испытываете проблемы, см. Главу 7. Устранение неполадок.

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

Допустим что скетч был выгружен успешно, вы видите включающийся на одну секунду светодиод "L", а затем на то-же время выключающийся. Если вы установили отдельный светодиод как показано на рис. 4-2, этот светодиод также будет мигать. То, что вы только-что написали и запустили, и есть "компьютерная программа", или скетч, как называются программы Arduino. Arduino, как мы определили раньше, это маленький компьютер и она может быть запрограммирована делать то что вы хотите. Это делается при помощи написания последовательности инструкций на языке программирования в среде разработки Arduino, которая преобразует эту последовательность в выполняемый код для платы Arduino.

Далее я покажу вам как понять скетч. Во-первых, Arduino выполняет код сверху вниз, так-что первая строка сверху будет прочтена первой; затем движется вниз. ПАналогия - ползунок текущей позиции в программе-видеоплейере (QuickTime Player или Windows Media Player), он движется слева направо, показывая ваше положение в фильме.

4.4 Передайте мне пармезан

Уделите внимание фигурным скобкам, которые использованы для группировки строк кода. Они, в частности, полезны когда вы хотите дать имя группе инструкций. Если в обед вы просите кого-нибудь "Передай мне пармезан, пожалуйста", ваша фраза описывает серию действий. Поскольку мы люди, всё это происходит естественно, но все отдельные крошечные требуемые действия должны быть сообщены плате Arduino по причине того что плата не така мощная как наш разум. Так-что для группировки команд установите { перед началом вашего кода и добавьте } после него.

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

void setup()

Эта строка даёт имя блоку кода. Если вы пишете иструкцию плате для подачи пармезана, вам стоит написать

void passTheParmesan()

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

passTheParmesan()

в любом месте кода, Arduino выполнит эти инструкции и продолжит работу с того места, где прервалась.

4.5 Arduino не остановить

Arduino ожидает наличия двух функций - одна называется setup(), а вторая - loop().

В функции setup() вам следует располагать код, который вы хотите выполнить один раз при запуске своей программы, а loop() содержит ядро программы, которое выполняется снова и снова. Это сделано из-за того, что Arduino - не обычный компьютер - она не может выполнять много программ одновременно и программы не могут быть завершены. Когда вы подаёте питание на плату - программа запускается, когда вы хотите её остановить - просто выключите плату.

4.6 Настоящие самоделкины пишут комментарии

Любой текст, начинающийся с "//", игнорируется Arduino. Эти строки являются комментариями, т.е. заметками, которые вы оставляете в программе сами для пояснения что вы делаете, написав этот код для себя или кого-то ещё.

Очень часто (я знаю потому что и сам так делаю всё время) мы пишем код, загружаем его в плату и думаем: "ОК, я больше не буду иметь дело с этой фигнёй", и только через полгода понимаем, что в программе надо исправить баг. Теперь откройте программу, и если вы не оставили никаких комментариев, ваша мысль будет: "Блин, и с чего мне начать?". По мере нашего продвижения вперёд вы увидите некоторые трюки для того чтобы сделать свои программы более читабельными и лёгкими в обслуживании.