Первый проект Arduino

20.01.2017 11:38, автор EW1ADF

Подробнее об Arduino https://ru.wikipedia.org/wiki/Arduino

Среда разработки Arduino (для Windows XP нужна версия не старше 1.0.6) https://www.arduino.cc/en/Main/Software

Scratch for Arduino (S4A) http://s4a.cat

 

Традиционно первой программой для Arduino является управление светодиодом. Однако, процесс написания первой программы можно максимально упростить и сделать более понятным. Для этого можно использовать отлично подходящее для этих целей решение - Scratch for Arduino (S4A) - среда простого визуального программирования Arduino. Данное решение будет весьма полезным для тех, кто впервые знакомится с таким понятием как программирование. Важно также отметить, что S4A осуществляет непосредственное взаимодействие с Arduino в реальном времени и созданные таким образом скетчи не предназначены для автономной работы Arduino.

 

Для начала работы с S4A необходимо выполнить несколько простых действий:

  • установить среду разработки Arduino;
  • с помощью среды разработки загрузить в Arduino скетч для работы с S4A http://s4a.cat/downloads/S4AFirmware16.ino
  • установить S4A.

 

После запуска S4A и инициализации платы Arduino, рабочее пространство будет иметь вид:

 

 

Для первого проекта возьмем трехцветный RGB-светодиод, 3 резистора номиналом 220 Ом и подключим их к пинам 10, 11 и 12 платы Arduino.

 

 

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

 

 

После нажатия клавиши "Пробел", светодиод начнет переключать свои цвета каждые полсекунды.

 

 

Исходный код программы, выполняющей те же действия, но для среды разработки Arduino, выглядит следующим образом:

 

// Hello, world!

int ledPinR = 10;
int ledPinG = 11;
int ledPinB = 12;

void setup()
{
  pinMode(ledPinR, OUTPUT);
  pinMode(ledPinG, OUTPUT);
  pinMode(ledPinB, OUTPUT);
}

void loop()
{
  digitalWrite(ledPinR, HIGH);
  delay(500);
  digitalWrite(ledPinR, LOW);
  delay(500);
 
  digitalWrite(ledPinG, HIGH);
  delay(500);
  digitalWrite(ledPinG, LOW);
  delay(500);
  
  digitalWrite(ledPinB, HIGH);
  delay(500);
  digitalWrite(ledPinB, LOW);
  delay(500);
}