You are on page 1of 13

Програмування

контролера Arduino
Співвідношення між одиницями
вимірювання кількості інформації

Найменування Коефіцієнт перерахунку


1 байт 8 біт
1 кілобайт (Кбайт) 1024 байт (102 байт)
1мегабайт (Мбайт) 1024 Кбайт (102 Кбайт)
1гігабайт (Гбайт) 1024 Мбайт (102 Мбайт)
1терабайт (Тбайт) 1024 Гбайт (102 Гбайт)
Послідовне виконання програми

Початок
програми

Початкові дані

Цикл
Обробка даних

Видача результатів
Переривання виконання
Програма
Початок обробки
програми переривань

Обробка даних
Активація переривання

Видача результатів
Цикл
Допоміжні операції

кінець
НА ЧОМУ ПРОГРАМУВАТИ
ARDUINO?
 Програмування Arduino здійснюється на
високорівневій мові Arduino
 Arduino– С/С++, з інтегрованими бібліотеками для
програмування МК
 Як середовище програмування використовується
ArduinoIDE
 Також ArduinoIDE також підтримує функції
низькорівневого програмування на мові С
 Скетч – програма для Arduino – одиничний проект,
який завантажується у пам’ять МК і виконується
Структура програми

Константи – наперед задані


значення

Функція setup – виконується


один раз

Функція loop – виконується


постійно
Перша програма на Arduino
// Перша програма Arduino :-)
 
int ledPin = 13; //Світлодіод під’єднано до цифрового виводу 13 (створюємо глобальну змінну
ledPin і присвоюємо їй значення «13»)
 
void setup() //блок настройки
{
Serial.begin(9600); //ініціалізація послідовної передачі даних на швидкості 9600 бод
pinMode(ledPin, OUTPUT); //встановлення цифрового порту ledPin як «вихід»
Serial.println("First Arduino Program"); //відсилаємо повідомлення на віртуальний COM порт
Serial.println();
}
void loop(){ //Основний цикл
Serial.print("The sum 5 + 188 is ");
Serial.print(5+188);
while(true) //Нескінчений цикл
{
digitalWrite(ledPin, HIGH); // Вмикаємо світлодіод
delay(500); //Чекаємо 500 мс
digitalWrite(ledPin, LOW); //Вимикаємо світлодіод
delay(500); // Чекаємо 500 мс
}
}
Коментарі

//Так виглядає одностроковий коментар

/*
А так пишуться
багатострокові коментарі
*/
Типи даних (216 –1).
Boolean
Змінна типу Boolean може приймати два стани: true (істина) unsigned int my unsignedIntVariable = 50000; //Ціла змінна без
або false (брехня). Така змінна займає 1 байт в пам'яті. знака зі значенням 50000
boolean bVar = true; // Змінна істинна   
  Long
Byte Змінна типу Long складається з чотирьох байт і може приймати
1 байт – це 8 біт, тому така змінна може приймати значення від значення від –2147483648 до 2147483647.
0 до 255. long bigNumber = 10000000; // змінна Long зі значенням
byte myVariable = 0; // Змінна ініціалізується нульовим 10000000
значенням
  Unsigned Long
Char Змінна може приймати значення від 0 до 4294967295. Змінна
Символ має розмір 1 байт. Змінна Char – це символ в не має знака і може зберігати тільки позитивні значення.
одиночних кавичках (апострофах). Символьні змінні можуть unsigned long veryBigNum = 54544454544; // Дуже, дуже велика
набувати значень від-127 до +127. змінна
char myChar = "А"; // Число 65  
  Float
Unsigned Char Змінні Float можуть зберігати 32 біта значення зі знаком.
Символи без знака (unsigned Char) поводяться як символи зі Діапазон можливих значень лежить в межах від –
знаком, але вони можуть приймати тільки позитивні значення в 3.4028235Е+38 до +3.4028235Е+38. Для цієї змінної потрібно
діапазоні від 0 до 255. чотири байти в пам'яті.
unsigned char myChar = "В"; // Число 66 float Var = 100.42; // змінна Float зі значенням 100,42
   
lnt (lnteger) String
Ціле число (integer) складається з двох байт і може приймати Строкова змінна (string) - це масив (Array) змінних Char і
значення від –32768 до +32768. нульового символу.
int myIntegerVariable = -2973; // Ціла змінна зі значенням -2973 Таким чином, наприклад, для слова "Hallo" потрібно шість
  байтів.
Unsigned int char myString [] = "Hallo Max"; // Потрібно 10 байт
Тип unsigned integer охоплює змінні в діапазоні від 0 до 65 535  
Масиви
Область пам’яті масиву

Індекс 0 Індекс 1 Індекс 2 … Індекс n

int Array_1 [3]; Serial.println “-------------”);


int Array_2 [] = {1, 2, 3}; //Видача даних першого масиву
  for (x = 0; x <3; x ++) Х
void setup () { Serial.print (Array_l [х]);
Serial.begin (9600); Serial.println ();
Serial.println ( "Arduino Arrays"); }
Serial. println (); Serial.println ( "Array 2");
} Serial.println “-------------”);
void loop () { //Видача даних другого масиву
byte х; Serial.print (Array_2 [0]);
Array_l [0] = 1; Serial.println ();
Array_l [l] = 2; Serial.print (Array_2 [1]);
Array_l [2] = 3; Serial.println ();
Array_l [3] = 4; Serial.print (Array_2 [2]);
  while (l);
Serial.println ( "Array 1");
Оператори
Арифметичні оператори Оператори порівняння
= (Присвоювання). == (Дорівнює, наприклад А == в).
+ (Додавання). != (Не дорівнює , наприклад А != в ).
– (Віднімання). < (Менше , наприклад А < в ).
* (Множення). > (Більше , наприклад А > в ).
/ ( Ділення ). <= (Менше дорівнює , наприклад А <= в ).
% ( Ділення по модулю – > = (Більше дорівнює , наприклад А > = в ).
обчислення залишку від ділення ).

Булева арифметика
&& (Логічне І , наприклад , якщо вираз &&
Побітова арифметика Unswer_b істиний, тоді виконувати якусь дію).
& (Бітове І). || (Логічне АБО, наприклад, якщо вираз ||
| (Бітове АБО ). Unswer_b істиний, тоді виконувати якусь дію).
~ (Бітове НІ ). ! (Логічне заперечення, наприклад, якщо вираз !
Unswer_b істиний, тоді виконувати якусь дію).
 
Оператори

++ (Інкремент, наприклад i++, змінна i буде збільшена на одиницю).


–– (Декремент, наприклад i--, змінна i буде на одиницю менше).
+= (Присвоювання з інкрементом, наприклад i+=5, змінна i буде збільшений
на 5 і результат присвоєно змінній i).
–= (Присвоювання з декрементом, наприклад i–=5, змінна i буде змен шена
на 5 і результат присвоєно змінній i).
*= (Присвоювання з множенням, наприклад i*=2, змінна i буде помножена на
на 2 і результат присвоєно змінній i).
/= (Присвоювання з діленням, наприклад: i/=2, змінна i буде розділена на 2 і
результат присвоєно змінній i).
Константи
Приклади констант:
НIGH / LOW (НIGH = 1, LOW = О).
INPUT / OUTPUT (INPUT = О, OUTPUT = 1). 
true / false (true = 1, false! = 1).
 Рівні сигналів порта  Настройка портів
#define HIGH 0x1 #define INPUT 0x0
#define LOW 0x0 #define OUTPUT 0x1

digitalWrite(13, HIGH); pinMode(13, OUTPUT);


digitalWrite(13, 1); pinMode(12, INPUT);

Приведення констант до різних систем числення


Основа системи Приклад Префікс Коментар
10 (десяткова) 618 немає  
2 (двійкова) B1111011 "B" працює тільки з 8-бітними
значеннями (0 - 255). Коректні
символи 0-1
8 (восьмерична) 0173 "0" коректні символи 0-7
16 (Шістнадцятерична) 0x7B "0x" коректні символи 0-9, A-F, a-f

You might also like