Arduino Programlama dilinin temel özellikleri
- Program yazımı belirli kalıpta, bloklar halinde olur.
- Bloklar, { } parantezleri ile oluşturulur.
- Komutlar aynı veya alt alta satırlara yazılabilirler.
- Tüm komutlar, noktalı virgül (;) ile biter. Yalnız blok başlatan ifadelerden sonra noktalı virgül kullanılmaz.
- Programda kullanılan tüm değişkenler ve bilgi tipleri bildirilir.
- Programın başında kütüphaneler aktifleştirilir/çağrılır.
- Açıklamalar “//” ve “/* */ ” (Birden fazla satır için) ile yazılır.
- #define ile eşdeğer ifade atanır.
- #include ile kütüphane çağrılır.
Arduino programları üç ana bölümden oluşabilir
- Yapı
- Değerler (değişkenler ve sabitler)
- Fonksiyonlar(işlevler)
Yapı
Setup fonksiyonu, kod çalışmaya başladığında ilk çalışan fonksiyondur. Bu fonksiyon çalıştıktan sonra fonksiyon içerisindeki işlemler gerçekleşir. Bu alanda, çeşitli tanımlamalar yapılır. Genel olarak ayarların yapıldığı bölümdür. Pinlerin giriş-çıkış olarak tanımlanması , bir takım değerleri ve başlangıç değerlerini belirlemek vb. tek seferlik yapılması gereken işlemler bu fonksiyon içerisinde çalıştırılır.
Loop fonksiyonu, setup fonksiyonundan sonra çalışan fonksiyondur. Bu bir ana fonksiyondur ve yapılmasını istediğiniz işlemler bu bölümde kodlanır. Loop fonksiyonu, sonsuz döngü şeklindedir, yani buradaki görevler program çalıştığı sürece sürekli tekrarlanır.
Arduino içerisinde /* ile */ işaretleri arasına açıklama satırları yazılabilir. Açıklama satırları kod olarak algılanmaz. Tek satırdan oluşan bir açıklama satırı için // işaretleri kullanılabilir.
Kontrol Yapıları
if
if…else
for
switch case
while
do… while
break
continue
return
goto
Sentaks (Söz dizimi) – Yapı Oluşturma
; (noktalı virgül)
{} (kıvrık parantez)
// (tek satır yorum)
/* */ (çok satırlı yorum)
#define
#include
Aritmetik Opertaörler
= (atama)
+ (toplama)
– (çıkarma)
* (çarpma)
/ (bölme)
% (mod al)
Karşılaştırma Operatörleri
== (eşit)
!= (eşit değil)
< (küçük) > (büyük)
<= (küçük veya eşit) >= (büyük veya eşit)
Boolean(Mantık) Oparatörleri
&& (ve)
|| (veya)
! (değil)
İşaretçi Erişim Operatörleri
* ayırma operatörü
& refarans operatörü
Bit Düzeyi Operatörleri
& (bit ve)
| (bit veya)
^ (bit xveya)
~ (bit değil)
<< (sola bit kaydırma) >> (sağa bit kaydırma)
Bileşik Operatörler
++ (arttır)
— (azalt)
+= (bileşik arttır)
-= (bileşik azalt)
*= (bileşik çarp)
/= (bileşik böl)
%= (bileşik mod al)
&= (bileşik bit düzeyi ve)
|= (bileşik bit düzeyi veya)
Değişkenler
Sabitler
HIGH | LOW
INPUT | OUTPUT | INPUT_PULLUP
LED_BUILTIN
true | false
integer constants
floating point constants
Veri Tipleri
void
boolean
char
unsigned char
byte
int
unsigned int
word
long
unsigned long
short
float
double
string – karakter dizisi
String – nesne
array
Dönüşümler
char()
byte()
int()
word()
long()
float()
Değişken Kapsamı ve Elemeleri
variable scope
static
volatile
const
Araçlar
sizeof()
PROGMEM
Fonksiyonlar(İşlevler)
Dijital Giriş/Çıkış
pinMode()
digitalWrite()
digitalRead()
Analog Giriş/Çıkış
analogReference()
analogRead()
analogWrite() – PWM
Due ve Zero için
analogReadResolution()
analogWriteResolution()
Gelişmiş Giriş Çıkış
tone()
noTone()
shiftOut()
shiftIn()
pulseIn()
Zaman
millis()
micros()
delay()
delayMicroseconds()
Matematik
min()
max()
abs()
constrain()
map()
pow()
sqrt()
Trigonometri
sin()
cos()
tan()
Karakterler
isAlphaNumeric()
isAlpha()
isAscii()
isWhitespace()
isControl()
isDigit()
isGraph()
isLowerCase()
isPrintable()
isPunct()
isSpace()
isUpperCase()
isHexadecimalDigit()
Rastgele Sayılar
randomSeed()
random()
Bitler ve Baytlar
lowByte()
highByte()
bitRead()
bitWrite()
bitSet()
bitClear()
bit()
Harici Kesmeler
attachInterrupt()
detachInterrupt()
Kesmeler
interrupts()
noInterrupts()
İletişim
Seri Port Fonksiyonları
Stream
USB (32u4 tabanlı kart ve Due/Zero)
Keyboard
Mouse