Arduino və uyğun proqramlaşdırma dilləri. Arduino proqramlaşdırma dili Arduino proqramlaşdırma arduino

Tarixən Arduino proqram hissəsi inteqrasiya olunmuş hissədən ibarətdir proqram təminatı mühiti(IDE), yazılı kodu yazmağa, tərtib etməyə və həmçinin aparata yükləməyə imkan verir. ArduinoIDE mühiti və məftil dilinin özü, ilk növbədə, dolayı yolla C / C ++ üzərində Emal əsasında qurulur. Əslində, Arduino IDE əyləncə üçün deyil, rahatlıq üçün böyük bir hodgepodge edir.

Hətta zahirən vəArduinoIDE vəEmal oxşardır


Proqram (eskiz) nədən ibarətdir?
Hər bir proqram, nə qədər mürəkkəb görünsə də, ayrı-ayrı dəstlərdən ibarətdir bloklar Buruq mötərizələrlə göstərilən kod () . Minimum proqram yalnız 2 blok tələb edir: quraşdırma və döngə . Arduino üçün hər hansı bir C ++ proqramında onların olması məcburidir, əks halda tərtib mərhələsində səhv ala bilərsiniz.
void setup() ( ) void loop() ( )
setup() funksiyasında, ilkin parametrlər dəyişənlər, registrlər. Setup() tamamlandıqdan sonra idarəetmə gövdədə yazılmış sonsuz dövrə olan loop() funksiyasına keçir (( ) ). Məhz bu əmrlər nəzarətçinin bütün alqoritmik hərəkətlərini yerinə yetirir.

Avadanlıq «Salam, dünya!" - yanıb-sönən LED.
Arduino ilə ilk tanışlığı proqram təminatı və aparatın qovşağında başlayan LED-in yanıb-sönməsidir.


Əvvəlcə minimum proqramı tamamlamalısınız. Arduino üçün (məsələn, UNO) bir LED-i pin 12 və GND-yə bağlayırıq (LED-in rəngi şəxsi üstünlüklərdən seçilir).

etibarsız quraşdırma() ( pinMode(12, ÇIXIŞ); ) boş döngə() ( digitalWrite(12, HIGH); gecikmə (100); digitalWrite(12, LOW); gecikmə (900); )
Ctrl+C -> Ctrl+V edin, kompilyasiya edin, yükləyin, idarə edin. Bir saniyədən çox olmayan işıq şousu görürük. Bunun niyə baş verdiyini anlayaq.

Əvvəllər boş olan bloklara bir neçə əlavə etdik ifadələri . Onlar quraşdırma və döngə funksiyalarının əyri mötərizələri arasında yerləşdirilib.
Hər bir ifadə prosessor üçün bir təlimatdır. Bir blok daxilində ifadələr bir-birinin ardınca, heç bir fasilə və keçid olmadan ciddi şəkildə yerinə yetirilir. Yəni konkret bir kod blokundan danışırıqsa, nə edildiyini başa düşmək üçün onu yuxarıdan aşağıya oxumaq olar.

Arada nə olur{ } ?
Bildiyiniz kimi, Arduino sancaqları həm giriş, həm də çıxış kimi işləyə bilər. Bir şeyi idarə etmək istədikdə, idarəetmə pinini çıxış vəziyyətinə köçürməliyik. Bu funksiyadakı ifadə ilə edilir qurmaq :
pinMode(12, OUTPUT); Bu vəziyyətdə ifadə funksiya çağırışı . PinMode-da nömrə ilə göstərilən pin müəyyən edilmiş rejimə (INPUT və ya OUTPUT) təyin edilir. Hansı pin və hansı rejimdən söhbət getdiyi mötərizədə vergüllə ayrılaraq göstərilir. Bizim vəziyyətimizdə 12-ci pin çıxış kimi işləməsini istəyirik. OUTPUT çıxış, INPUT isə giriş deməkdir. 12 və OUTPUT kimi uyğun qiymətlər çağırılır funksiya arqumentləri . Bir funksiyanın nə qədər arqumentə malik olması funksiyanın mahiyyətindən və onu yaradanın iradəsindən asılıdır. Quraşdırma və döngə ilə olduğu kimi funksiyalar ümumiyyətlə arqumentsiz ola bilər.

Sonra, ardıcıllıqla döngə blokuna keçin:
-daxili digitalWrite funksiyasına zəng edin. O, verilmiş pinə məntiqi sıfır (LOW, 0 volt) və ya məntiqi sıfırı (YÜKSƏK, 5 volt) təmin etmək üçün nəzərdə tutulmuşdur.digitalWrite funksiyasına 2 arqument ötürülür: pin nömrəsi və məntiqi dəyər.
- gecikmə funksiyasını çağırın. Bu, yenə də prosessorun "yatmasına" səbəb olan daxili funksiyadır müəyyən vaxt. Bunun üçün sadəcə bir arqument lazımdır: yatmaq üçün millisaniyələrdəki vaxt. Bizim vəziyyətimizdə bu 100 ms-dir. 100 ms müddəti bitən kimi prosessor oyanır və dərhal növbəti ifadəyə keçir.
- daxili digitalWrite funksiyasını çağırmaq. Yalnız bu dəfə ikinci arqument aşağıdır. Yəni 12-ci pində məntiqi sıfır qoyuruq -> 0 volt veririk -> LEDi söndür.
- gecikmə funksiyasının çağırılması. Bu dəfə bir az daha "yatırıq" - 900 ms.

Sonuncu funksiya yerinə yetirilən kimi loop bloku bitir və hər şey təkrar-təkrar baş verir. Əslində, nümunədə göstərilən şərtlər olduqca dəyişkəndir və siz gecikmə dəyərləri ilə oynaya, bir neçə LED-i birləşdirə və onu svetofor və ya polis flaşına oxşaya bilərsiniz (hər şey yaradıcının təxəyyülündən və iradəsindən asılıdır). ).

Nəticə əvəzinə bir az təmizlik haqqında.
Əslində, bütün boşluqlar, sətir sonları, tab simvolları yoxdur böyük əhəmiyyət kəsb edir kompilyator üçün. Boşluq olan yerdə sətir kəsilməsi ola bilər və əksinə. Əslində, ardıcıl 10 boşluq, 2 sətir fasiləsi və daha 5 boşluq bir boşluğa bərabərdir.


Boş yerin köməyi ilə proqramı başa düşülən və vizual hala gətirə və ya əksinə, tanınmayacaq dərəcədə şikəst edə bilərsiniz. Məsələn, nümunə olaraq verilən proqram aşağıdakı kimi dəyişdirilə bilər:

etibarsız quraşdırma() ( pinMode(12, ÇIXIŞ); ) boş döngə () ( digitalWrite(12,YÜKSƏK); gecikmə(100) ; digitalWrite(12,LOW); gecikmə(900); )

Oxuyarkən hər kəsin gözündən qan axmasının qarşısını almaq üçün bir neçə sadə qaydaya əməl edə bilərsiniz:


1. Həmişə, arasında yeni bir blokun başlanğıcında( Və ) girintini artırın. Adətən 2 və ya 4 boşluq istifadə olunur. Dəyərlərdən birini seçin və bütün bunlara sadiq qalın.

Boş döngə() ( digitalWrite(12, YÜKSƏK); gecikmə (100); digitalWrite(12, LOW); gecikmə (900); )
2. Normal dildə olduğu kimi: vergüldən sonra boşluq qoyun.

digitalWrite(12, YÜKSƏK);
3. Blokun başlanğıc simvolunu yerləşdirin ( yeni xətt cari abzas səviyyəsində və ya əvvəlkinin sonunda. Və blokun sonu simvolu ) cari girinti səviyyəsində ayrı bir sətirdə:

void quraşdırma() ( pinMode(12, OUTPUT); ) etibarsız quraşdırma() ( pinMode(12, OUTPUT); )
4. Semantik blokları ayırmaq üçün boş sətirlərdən istifadə edin:

boş döngə() ( digitalWrite(12, YÜKSƏK); gecikmə(100); digitalWrite(12, LOW); gecikmə(900); digitalWrite(12, YÜKSƏK); gecikmə(100); digitalWrite(12, LOW); gecikmə( 900);)
5. Beyin uşağınızın oxumağın xoş olması üçün sözdə şərhlər var. Bunlar proqram kodunda kompilyator tərəfindən tamamilə nəzərə alınmayan və yalnız onu oxuyan şəxs üçün əhəmiyyət kəsb edən konstruksiyalardır. Şərhlər çox sətirli və ya tək sətirli ola bilər:

/* bu çoxsətirli şərhdir */ // bu tək sətirdir

Arduino-nun əsas elementləri ilə tanış olduqdan, həmçinin “Salam Dünya!” proqramını yazdıqdan sonra. proqramlaşdırma dili ilə tanış olmağın vaxtıdır.

Dilin strukturu ilk növbədə C/C++ üzərində qurulub, ona görə də əvvəllər bu dildə proqramlaşdıran şəxslər Arduino proqramlaşdırmasını mənimsəməkdə çətinlik çəkməyəcəklər. Qalanları idarəetmə əmrləri, məlumat növləri və funksiyaları haqqında əsas məlumatları öyrənməlidir.

Buradakı məlumatların əksəriyyəti verilənlər tiplərindəki fərqlərə, həmçinin I/O portlarının proqramlaşdırılması ilə bağlı bir neçə xüsusi təlimata uyğun olaraq istənilən C/C++ kursu ilə uyğun olacaq.

Əsasların əsasları

Bir neçə rəsmi şey, yəni hər kəsin bildiyi, lakin bəzən unudurlar ...

Arduino IDE-də, C/C++-da olduğu kimi, simvol işindən xəbərdar olmalısınız. if, for kimi açar sözlər həmişə kiçik hərflə yazılır. Hər bir təlimat ";" ilə bitir. Nöqtəli vergül tərtibçiyə hansı hissənin bəyanat kimi şərh edilməsini bildirir.

Mötərizələr (..) proqram bloklarını işarələmək üçün istifadə olunur. Biz onlardan funksiyanın gövdəsini (aşağıya bax), döngələri və şərti ifadələri məhdudlaşdırmaq üçün istifadə edirik.

Proqram məzmununa şərhlər əlavə etmək yaxşı təcrübədir, bu kodu başa düşməyi asanlaşdırır. Tək sətirli şərhlər ilə başlayır // (ikiqat kəsik). Çoxsətirli şərhlər ilə başlayır /* və ilə bitir */

Proqramımıza hər hansı bir kitabxana daxil etmək istəyiriksə, include əmrindən istifadə edirik. Kitabxanaları birləşdirən nümunələr:

#daxildir // standart kitabxana #include "svoya_biblioteka.h" // kitabxana layihə kataloqunda

Arduino-da funksiyalar

Funksiya (alt proqram) hansısa əməliyyatı yerinə yetirən proqramın ayrıca hissəsidir. Funksiyalar əsas proqramı sadələşdirmək və kodun oxunuşunu yaxşılaşdırmaq üçün istifadə olunur. Bir çox layihələrimizdə asanlıqla istifadə edə bildiyimiz üçün funksiyalardan istifadə etmək faydalıdır.

Standart proqramlaşdırma kursu aşağıdakı məqalələrdə təqdim edəcəyimiz funksiyalar haqqında məlumatları ehtiva edir. Arduino vəziyyətində, funksiyalar başlanğıcda müzakirə olunacaq, çünki hətta ən sadə proqram iki xüsusi funksiyaya malik olmalıdır. Bu, əvvəlki məqalələrdə artıq qeyd edilmişdir, lakin burada bu məlumatları sistemləşdiririk.

Funksiya bəyannaməsi

Funksiya bəyannamə sxemi belə görünür:

Funksiya_adı(parametr) yazın ( // icra etmək üçün təlimatlar (funksiya gövdəsi) qaytarın (/* dəyərini qaytarın*/); )

növü verilmiş proqramlaşdırma dilində hər hansı mövcud məlumat növünün adıdır. Arduino-nun proqramlaşdırılması zamanı mövcud olan növlərin siyahısı ayrıca məqalədə veriləcəkdir.

İcra edildikdən sonra funksiya elan edilmiş növün dəyərini qaytaracaq. Funksiya heç bir qaytarma dəyərini qəbul etmirsə, o zaman məlumat növü "etibarsız" olacaq.

funksiya_adı onu unikal şəkildə müəyyən etməyə imkan verir. Funksiyanı çağırmaq (işləmək) üçün ona ad veririk.

parametr— funksiya çağırış parametri. Parametrlər isteğe bağlıdır, lakin çox vaxt faydalıdır. Arqumenti olmayan funksiya yazsaq, mötərizələri boş qoyuruq.

Mötərizədə "(...)" icra etmək istədiyimiz funksiyanın və ya göstərişin faktiki gövdəsini ehtiva edir. Xüsusi təlimatların təsviri ayrı bir məqalədə göstəriləcəkdir.

Dəyəri qaytaran bütün funksiyalar qaytarma ifadəsi və ardınca qaytarılan dəyərlə bitir. Yalnız null göstərici ilə elan edilmiş funksiyalar (“boş”) qaytarma ifadəsini ehtiva etmir. Bilməlisiniz ki, geri qaytarma ifadəsi yerdən asılı olmayaraq funksiyanın icrasını dayandırır.

Aşağıda funksiya bəyannamələrinin bəzi nümunələri verilmişdir.

Void f1() ( //funksiya gövdəsi ) ——————————————— int minus() ( //funksiya gövdəsinin qaytarılması (0); ) ———————————— ——— int plus(int a, int b) (qaytarmaq (a+b); )

Nümunələrdən göründüyü kimi, funksiya bəyannaməsi ehtiyaclarınızdan asılı olaraq bir çox formada ola bilər.

Öz proqramlarınızı yazarkən funksiyaları öyrənməyinizi və istifadə etməyinizi şiddətlə tövsiyə edirik. Zaman keçdikcə hər bir proqramçı “bütün hallar üçün” öz funksiyalar kitabxanasına malikdir ki, bu da yeni proqramların yazılmasını asanlaşdırır və sürətləndirir.

İndi öz funksiyamızı necə yazacağımızı bildiyimiz üçün ondan istifadə etməyi öyrənməliyik.

Funksiya çağırışı

Bütün funksiyaları bir fayl/proqramda yazırıq. Əlbəttə ki, daha zərif bir həll var, lakin növbəti dəfə onu təsvir etməyə çalışacağıq.

Funksiyanı elan etməklə biz onu müvafiq adla və istənilən tələb olunan parametrlərlə başqa funksiyalarda istifadə edə bilərik. Aşağıda yuxarıda verdiyimiz funksiyaları çağırmaq nümunələri verilmişdir:

F1(); plus(2,2); y=plus(1,5);

Nümunələrdə gördüyünüz kimi, funksiyanın çağırılması onun adını və lazımi sayda parametrləri göstərməklə həyata keçirilir. Hər zaman funksiyanı elanına uyğun çağırmaq vacibdir.

Əgər f1() funksiyası parametrlərsiz elan olunubsa, o zaman onu çağırarkən heç bir parametr müəyyən edilə bilməz, yəni. f1(0) funksiyasını çağırmaq səhv olacaq.

plus(int a, int b) funksiyası tam olaraq iki parametr tələb edir, ona görə də bir və ya üç parametrlə zəng etmək mümkün deyil.

y=plus(1,5) çağırışı "1" və "5" parametrləri ilə "plus" funksiyasını yerinə yetirəcək və qaytarılan dəyəri "y" dəyişənində saxlayacaq.

setup() və loop() funksiyaları.

Funksiyaların elan edilməsi və çağırılması haqqında biliklərlə Arduino sisteminin funksiyalarına keçə bilərik: qurmaq()loop(). Bu iki funksiyanı elan etmək üçün Arduino IDE tələb olunur.

setup() enerji yandırıldıqda və ya RESET düyməsini sıxdıqda avtomatik olaraq çağırılan funksiyadır.

Adına görə quraşdırmaq üçün istifadə olunur ilkin dəyərlər dəyişənlər, sistemin giriş və çıxışları haqqında bəyannamələr, adətən ilkin parametrlərdə müəyyən edilir. Öz spesifikliyinə görə bu funksiya dəyər qaytarmır və parametrlərlə çağırılmır. setup() funksiyasının düzgün elanı aşağıda verilmişdir:

Quraşdırma etibarsız () ( // funksiya orqanı - sistemin işə salınması )

loop() sonsuz döngədə çağırılan funksiyadır. Bu funksiya həmçinin dəyər qaytarmır və parametrlərlə çağırılmır. Aşağıda loop() funksiyasının düzgün elanı verilmişdir:

Boş döngə () ( // funksiya orqanı - proqram kodu )

Gördüyünüz kimi, loop() funksiyasının elanı setup() funksiyasının elanı ilə eynidir. Fərq mikrokontroller tərəfindən bu funksiyaların yerinə yetirilməsindədir.

İndi aşağıdakı psevdokodu təhlil edəcəyik:

etibarsız quraşdırma () ( on_led1 (); // led1-i yandırın off_led1 (); // led1-i söndür ) boş dövrə () ( on_led2 (); // LED2-ni söndür_led2 (); // LED2-ni söndür)

Setup() funksiyasında iki təlimat var, birincisi lövhəyə qoşulmuş LED1-i yandırır (məsələn, pin 13), ikincisi isə led1-i söndürür.

Loop() funksiyası lövhəyə qoşulmuş led2-ni yandırmaq və söndürmək üçün eyni təlimatlara malikdir (məsələn, pin 12).

Proqramın işləməsi nəticəsində LED1 bir dəfə yanıb-sönəcək, LED2 isə Arduino işə salındıqca yanacaq və sönəcək.

RESET düyməsini sıxmaq LED1-in bir daha yanıb-sönməsinə və LED2-nin yenidən yanıb-sönməyə başlamasına səbəb olacaq.

Ümumiləşdirin:

  • Setup() və loop() funksiyaları bunlardır sistem funksiyaları, hər bir layihədə müəyyən edilməlidir. Onlardan birində heç bir kod yazmadığımız bir vəziyyətdə belə, yenə də bu iki funksiyanı elan etməliyik;
  • setup() funksiyası bir dəfə işləyir, loop() isə davamlı işləyir;
  • Biz öz funksiyalarımızı bir faylda yaradırıq;
  • Biz öz funksiyalarımızı həm setup () və loop (), həm də digər funksiyalardan çağıra bilərik;
  • Öz funksiyalarımız parametrlərlə çağırıla və dəyər qaytara bilər;
  • Funksiya çağırışı onun elanına uyğun olaraq edilməlidir.

Arduino Proqramlaşdırma Dili Əmrləri

Parametr adı Məna
Məqalənin mövzusu: Arduino Proqramlaşdırma Dili Əmrləri
Rubrika (tematik kateqoriya) Proqramlaşdırma

Arduino proqramlaşdırma dili C dilinə əsaslanır. Bu dilin əmrlərini görmək istəyirsinizsə, proqramlaşdırma mühitində menyu əmrini yerinə yetirin Kömək / Məzmun. Əmrlər üç sütunda qruplaşdırılıb:

· strukturu: proqram strukturunun yazılması üçün əmrlər - döngələr, budaqlar, sintaksis, arifmetik və məntiqi operatorlar, müqayisə operatorları və bit manipulyasiyası

· Dəyişənlər: müxtəlif dəyişənlər. C-də istifadə olunanlara bənzər, yalnız bir neçəsi Arduino üçün xasdır:

o YÜKSƏK- yüksək səviyyə, məntiq 1, Arduino pinində +5 Volt

o AŞAĞI- aşağı səviyyə, Arduino pinində məntiq 0.0 volt

o GİRİŞ- Arduino kontaktını giriş kimi təyin etmək (xarici cihazlardan məlumat almaq)

o ÇIXIŞ- Arduino kontaktının çıxış kimi təyin edilməsi (məlumatların xarici cihazlara ötürülməsi, güc bloklarının idarə edilməsi)

· Funksiyalar: Arduino ilə işləyərkən istifadə olunan funksiyalar növbəti dərslərdə ətraflı şəkildə əhatə olunacaq

Qeyd 1: struktur və dəyişənlər C proqramlaşdırma dilində istifadə olunanlara bənzəyir, yəni bilirsinizsə verilmiş dil- Arduino proqramlaşdırmasını asanlıqla mənimsəmək və əksinə, Arduino proqramlaşdırma dilini mənimsəmək sizə C dilini və s.

Qeyd 2: ətraf mühitə əlavə edilmiş təlimatlarda əmrlərin təsvirləri verilir Ingilis dili, problem yarada bilər. Təsvirlərin rus dilinə tərcüməsi Arduino.ru saytında mövcuddur

Qeyd 3: proqramda əmrin təsvirini bu əmri seçmək və icra etməklə əldə etmək olar Kömək / Köməkdə tapın.

Arduino Proqramlaşdırma Dili Sintaksisi

C dilində istifadə olunana oxşar:

· ; - nöqtəli vergül. Xəttin sonunu göstərir. İstifadə nümunəsi:

int led = 13;

olmadıqda; proqramı yükləməyə çalışdığınız zaman olması lazım olan yerdə Arduino proqramı yüklənməyəcək və pəncərənin altındakı xəta verəcək

· { } - dəyirmi mötərizələr. Açılış mötərizəsi blokun başlanğıcıdır, bağlama mötərizəsi blokun sonu

boş quraşdırma() {

pinMode(led, OUTPUT);

· // – şərhlər. Bu simvollardan sonra sətirdə nə yazılsa, nəzarətçi qəbul etmir, bunlar proqramçı üçün qeydlərdir

gecikmə (1000); // bir saniyə gözləyin (1000 millisaniyə)

· #daxildir<назавние библиотеки.h> - kitabxananın əlaqəsi - bir sıra proqramlar, məsələn, LCD göstəricini idarə etmək üçün:

#daxildir

Qeyd: sonra nöqtəli vergül # daxil edilməsi tələb olunmur.

Arduino proqramlaşdırma dili əmrləri - konsepsiya və növləri. "Arduino proqramlaşdırma dili əmrləri" kateqoriyasının təsnifatı və xüsusiyyətləri 2017, 2018.

Arduino proqramlaşdırma dili proqramlaşdırma dünyasında geniş istifadə olunan C/C++ dili əsasında yaradılmışdır.

Arduino-nun hədəf auditoriyası robototexnika və sadə avtomatlaşdırma sistemləri sahəsində qeyri-peşəkar istifadəçilərdir. Əsas məhsul lövhələr dəstidir, onları birləşdirərək, geniş tapşırıqları yerinə yetirməyə qadir olan müxtəlif qurğular yaratmaq mümkündür.

Nümunə olaraq, bu şirkət tərəfindən istehsal olunan lövhələr dəstindən ev heyvanlarınız üçün avtomatik qidalandırıcı yığa bilərsiniz. Və bu ən sadə nümunələrdən yalnız biridir. Onların mümkün tətbiq dairəsi yalnız istifadəçilərin təxəyyülü ilə məhdudlaşır.

İstisna çap dövrə lövhələri, Arduino markası altında istehsal olunur, proqramçılar dairəsində geniş tanınan dilə əsaslanan öz Arduino proqramlaşdırma dillərinə malikdirlər. C/C++. Gəlin bunun nə olduğuna daha yaxından nəzər salaq.

Arduino proqramlaşdırma dilini öyrənmək olduqca asandır, çünki əsasdır hədəf auditoriyası onun istifadəsi həvəskarlardır. Bununla belə, ən çox biri hesab olunur ən yaxşı dillər mikro nəzarətçilərin proqramlaşdırılması üçün.

nöqtəli vergül;

Arduino proqramlaşdırma dilində yazılmış hər bir ifadədən sonra nöqtəli vergül qoyulmalıdır. Misal üçün:

int LEDpin = 9;

Bu ifadədə biz dəyişənə qiymət veririk və sonunda nöqtəli vergülü qeyd edirik. Bu, tərtibçiyə kod parçasını bitirdiyinizi və növbəti parçaya keçdiyinizi bildirir. Arduino kodundakı nöqtəli vergül bir tam ifadəni digərindən ayırır.

Tək sətirli şərhlər üçün ikiqat tərs xətt //

// İkiqat kəsikdən sonra hər şey boz olacaq və proqram tərəfindən oxunmayacaq

Şərhlər kodunuzu şərh etmək üçün istifadə etdiyiniz şeydir. Yaxşı kod yaxşı şərh edilmişdir. Şərhlər sizə və kodunuzla qarşılaşa biləcək hər kəsə onu yazarkən nə düşündüyünüzü söyləmək üçün var. Yaxşı bir şərh belə bir şey olardı:

// LED-i bu Arduino pininə birləşdirin int LEDpin = 9;

İndi 3 aydan sonra belə bu proqrama baxanda LEDin hara qoşulduğunu bilirəm.

Kompilyator şərhlərə məhəl qoymayacaq, ona görə də istədiyinizi yaza bilərsiniz. Şərh üçün çoxlu mətnə ​​ehtiyacınız varsa, aşağıda göstərilən çoxsətirli şərhdən istifadə edə bilərsiniz:

/* Çox sətirli şərh bir tərs xətt və ulduz işarəsi ilə açılır. Bundan sonra hər şey boz rəngə çevriləcək və siz əvvəlcə ulduz işarəsi, sonra isə əks xətt işarəsi ilə şərhi bağlayana qədər tərtibçi tərəfindən nəzərə alınmayacaq */

Şərhlər kod qeydlərinə bənzəyir, lakin kitablarda səhifələrin aşağı hissəsində olanlardan daha çox rast gəlinir.

Buruq mötərizələr ( )

Buruq mötərizələr funksiyanın yerinə yetirdiyi təlimatları əlavə etmək üçün istifadə olunur (bundan sonra funksiyaları müzakirə edəcəyik). Həmişə açıq qıvrımlı mötərizə və bağlanan buruq mötərizə var. Buruq mötərizəni bağlamağı unutsanız, kompilyator xəta kodunu çap edəcək.

Void loop() ( //bu buruq mötərizə açılır //burada gözəl proqram )//bu buruq brace bağlanır

Unutmayın - heç bir qıvrım mötərizə bağlana bilməz!

Funksiyalar ()

İndi funksiyalar haqqında danışmaq vaxtıdır. Funksiyalar o qədər tez-tez istifadə olunan kod parçalarıdır ki, onlar xüsusi olaraq əhatə olunur açar sözlər ona görə də onlardan daha asan istifadə edə bilərsiniz. Məsələn, bir funksiya bir iti çimmək lazım olduqda aşağıdakı təlimatlar dəsti ola bilər:

  1. Bir vedrə alın
  2. Onu su ilə doldurun
  3. Sabun əlavə edin
  4. Bir it tapın
  5. Köpəyi köpürt
  6. it yuyun
  7. Köpəyi yuyun
  8. Quru it
  9. vedrəni kənara qoyun

Bu sadə təlimatlar dəsti WashDog adlandıra biləcəyimiz funksiyaya daxil edilə bilər. Hər dəfə biz bütün bu təlimatları yerinə yetirmək istədikdə, sadəcə olaraq WashDog və voila yazırıq - bütün təlimatlar yerinə yetirilir.

Arduino tez-tez istifadə olunan müəyyən xüsusiyyətlərə malikdir. Onları daxil etdiyiniz zaman funksiyanın adı narıncı rəngdə olacaq. Məsələn, pinMode() funksiyası Arduino-nun pin rejimini göstərmək üçün istifadə edilən ümumi funksiyadır.

PinMode funksiyasından sonrakı mötərizələr haqqında nə demək olar? Bir çox funksiyalar arqumentlər tələb edir. Arqument funksiyanın işlədiyi zaman istifadə etdiyi məlumatdır. WashDog funksiyamız üçün arqumentlər itin adı və sabunun növü, həmçinin vedrənin temperaturu və ölçüsü ola bilər.

PinMode(13, ÇIXIŞ); //Arduino pin rejimini təyin edir

Arqument 13 pin 13-ə aiddir və OUTPUT pin işləməsini istədiyiniz rejimdir. Bu arqumentləri daxil etdikdə, terminologiyada buna verilənlərin ötürülməsi deyilir, siz lazımi məlumatları funksiyalara ötürürsünüz. Bütün funksiyalar arqument tələb etmir, lakin açılış və bağlanma mötərizələri boş olsa da qalır.

millis(); //Arduino-nun işə salınması üçün vaxtı millisaniyələrlə əldə edin

Nəzərə alın ki, OUTPUT sözü adətən mavi rəngdədir. Arduino proqramlaşdırma dilində tez-tez istifadə olunan müəyyən açar sözlər var və mavi rəng onları müəyyən etməyə kömək edir. Arduino IDE onları avtomatik olaraq mavi rəngə çevirir.

quraşdırmanı ləğv edin()

Adından göründüyü kimi setup() funksiyası Arduino lövhəsini qurmaq üçün istifadə olunur. Arduino quraşdırmadan () sonra əyri mötərizələr arasındakı bütün kodu yalnız bir dəfə yerinə yetirir. Setup()-da baş verən tipik şeylər, məsələn, əlaqə rejiminin qurulmasıdır:

Void setup() ( // buruq mötərizələr arasındakı kod yalnız bir dəfə yerinə yetirilir)

Quraşdırma () funksiyasından əvvəl boşluğun nə demək olduğunu maraqlandıra bilərsiniz. Void o deməkdir ki, funksiya heç bir məlumat qaytarmır.

Bəzi funksiyalar dəyərləri qaytarır - DogWash funksiyamız iti təmizləmək üçün lazım olan vedrələrin sayını qaytara bilər. AnalogRead() funksiyası 0 və 1023 arasında tam dəyər qaytarır. Əgər bu indi bir az qəribə görünürsə, narahat olmayın, çünki biz hər birini əhatə edəcəyik ümumi funksiya Arduino kursu davam edir.

Quraşdırma () haqqında bilməli olduğunuz bir neçə şeyə baxaq:

  1. setup() yalnız bir dəfə işləyir;
  2. setup() Arduino eskizində ilk funksiya olmalıdır;
  3. setup() funksiyasının açılış və bağlanma mötərizələri olmalıdır.

boş döngə()

Arduino tərtibatçılarını sevməlisiniz, çünki onlar funksiya adlarını özləri üçün danışdırdılar. Adından da göründüyü kimi, loop()-da əyri mötərizələr arasındakı bütün kodlar dəfələrlə təkrarlanır və loop sözü tam olaraq "loop" kimi tərcümə olunur. Loop() funksiyası proqramınızın gövdəsinin olacağı yerdir.

setup() funksiyasında olduğu kimi loop() funksiyası heç bir dəyər qaytarmır, ona görə də ondan əvvəl void sözü qoyulur.

Void loop() ( //buraya qoyduğunuz istənilən kod təkrar-təkrar icra olunur )

Kodun bir böyük döngədə işləməsi sizə qəribə görünür? Bu açıq-aydın variasiya çatışmazlığı bir illüziyadır. Kodunuzun əksəriyyətində yeni hərəkətlərə səbəb olacaq müəyyən gözləmə şərtləri olacaq.

Arduino ilə işləyən başqa proqramlar varmı?

Rəsmi Arduino IDE-dən əlavə proqramlar da var üçüncü tərəf tərtibatçıları, Arduino əsaslı mikro nəzarətçilərlə işləmək üçün məhsullarını təklif edir.

Oxşar funksiyalar dəsti bizə Processing adlı proqram tərəfindən təqdim edilə bilər. Arduino IDE-yə çox bənzəyir, çünki hər ikisi eyni mühərrikdə hazırlanır. Emal orijinal proqramdan aşağı olmayan geniş xüsusiyyətlər dəstinə malikdir. Yüklənə bilən Serial kitabxanasının köməyi ilə istifadəçi board və Processing-in bir-birinə göndərdiyi məlumatlar arasında əlaqə yarada bilər.Bununla biz lövhənin proqramları birbaşa PC-mizdən icra etməsinə şərait yarada bilərik.

Başqası da var maraqlı versiya orijinal proqram. O, B4R adlanır və onun əsas fərqi ondan ibarətdir ki, o, əsas kimi C dilini deyil, başqa bir proqramlaşdırma dilini - Basic dilini istifadə edir. Bu proqram məhsulu pulsuzdur. Bununla işləmək üçün bu məhsulun yaradıcıları tərəfindən yazılanlar da daxil olmaqla yaxşı dərsliklər var.

Arduino IDE-nin pullu versiyaları da var. Bunlardan biri PROGROMINO proqramıdır. Onun əsas üstünlüyü kodu tamamlamaq imkanıdır. Proqramı tərtib edərkən daha məlumat kitabçalarında axtarmağa ehtiyac qalmayacaq. Proqram sizə xəbər verəcəkdir mümkün variantlar bu və ya digər prosedurdan istifadə etməklə. Onun dəstinə daha çox daxildir maraqlı xüsusiyyətlər, orijinal proqramda olmayan və lövhələrlə işləməyinizi asanlaşdıra bilər.

Arduino rəqibləri

Bu bazarda müxtəlif mikrokontrolörlərin istehsalı üçün yaradılır elektron sxemlər və robototexnikanın bütün dünyada çoxlu pərəstişkarları var. Bu vəziyyət bazarda nəinki oxşar məhsullar təklif edən rəqiblərin meydana çıxmasına kömək edir. Onlara əlavə olaraq, müxtəlif keyfiyyətdə əhəmiyyətli sayda saxta istehsal olunur. Bəzilərini orijinaldan ayırmaq çox çətindir, çünki onlar eyni keyfiyyətdədirlər, digərləri isə çox zəif performans və orijinal məhsullarla ümumiyyətlə işləməyə bilər.

Hətta JavaScript tərcüməçiləri ilə mikroprosessorları dəstəkləyən Arduino lövhələri var. Onlar, ilk növbədə, istifadə etmək istəyənlər üçün aktualdır Java dili si yerinə. Axı, bu, daha sadədir və artan sürət ilə nəticələr əldə etməyə imkan verir. Bununla belə, bu lövhələr arduinodan daha bahalıdır, bu da əhəmiyyətli bir dezavantajdır.

Bir hobbi axtarırsınızsa və elektrik mühəndisliyi kimi bir istiqamətlə maraqlanırsınızsa, bunun üçün Arduino-nu etibarlı şəkildə seçə bilərsiniz. Bu hobbinin çoxlu faydaları var. İntellektual olaraq inkişaf edəcəksiniz, çünki bu fəaliyyət sizdən müxtəlif sahələrdə bilik tələb edəcək.

Əyləncədən əlavə, hobbiniz gündəlik həyatınızı asanlaşdırmaq üçün istifadə edə biləcəyiniz tonlarla faydalı əşyalar yaratmağınıza kömək edəcək. Hər dəfə hobbinizdən istifadə etmək üçün getdikcə daha çox yeni yollar tapacaqsınız.

Çoxlu sayda dərslik və dərs vəsaitlərinin olması sayəsində bu dərsi mənimsəmək o qədər də çətin olmayacaq. Gələcəkdə siz bütün dünyada öz biliklərini sizinlə bölüşəcək və sizə yeni təcrübələr etmək üçün stimul verəcək çoxlu həmfikir insanlar tapacaqsınız!

Bu yazıda mən sizin üçün Arduino mikrokontrollerlərinə əsaslanan cihazların dizaynına dair ən məşhur kitabları topladım. Bu kitablardan birini oxuduqdan sonra siz smart qadcetlər və avtomatlaşdırma sistemləri yarada biləcəksiniz. Dan başlayaraq sadə cihazlar, sensor dəyərlərini göstərən və ağıllı ev sistemləri və ya CNC maşınları ilə bitən. Bütün bunları kitab oxumadan etmək olar, amma sonra daha çox vaxt, səy və pul tələb olunacaq. Kitablar əhatə edir ümumi anlayışlar elektrotexnika, mikrokontrollerlərin və qoşulmuş sensor və mexanizmlərin iş prinsiplərini.

Arduino üzrə rus dilində kitablar yükləyin.

Aşağıda Arduino üzrə ən populyar 5 kitab var. Hamısı olmasa da, heç olmasa birincisini oxumağı məsləhət görürəm. Bu kitablar arasında həm yeni başlayanlar, həm də arduino mövzusu ilə artıq tanış olan insanlar üçün kitablar var. Hər kəs özü üçün yeni və faydalı bir şey tapa bilər. Aşağıdakı bütün kitablar rus dilinə tərcümə edilmişdir.

Bu kitab cihaz dizaynının aspektlərini və prinsiplərini təsvir edir Arduino. Arduino-nun aparat və proqram təminatını təsvir edir. Bu kitab proqramlaşdırmanın prinsiplərini izah edir. Necə oxumaq lazım olduğunu göstərir texniki təsvirlər, öz layihələriniz üçün hissələri seçin və necə təhlil edə bilərsiniz elektrik dövrələri bitmiş cihazlar. Kitabda həmçinin müxtəlif sensorlar, göstəricilər, müxtəlif məlumat ötürmə interfeysləri və aktuatorlardan istifadə nümunələri təsvir edilmişdir. Kitabdakı bütün nümunələr üçün lazımi hissələrin siyahısı, naqil diaqramları, tam təsviri ilə kod nümunələri var.

Arduino nəzarətçisindən istifadə edən layihələr. Petin V.A.

Bu kitab Arduino mikrokontrollerləri əsasında öz cihazlarınızı yaratmağın praktik hissəsinə diqqət yetirir. Bağlantı diaqramları verilir, Ətraflı Təsviri proqram hissəsinin məntiqi, tələb olunan sensorlar və modulların siyahısı. Bu kitab artıq ideyası olan və Arduino proqramlaşdırma dilinin əsas funksiyaları ilə tanış olanlar üçün nəzərdə tutulub.

Bu nəşr Arduino əsasında mikrokontrollerlərin proqramlaşdırılmasına həsr edilmişdir. Kitabda eskiz nümunələri və öz proqram təminatınızı yazmaq prinsipləri müzakirə olunur. Bu materialı öyrəndikdən sonra bir çox texniki elementləri özündə birləşdirən ən mürəkkəb qurğular üçün proqram təminatı yaza biləcəksiniz. Kitabda məşhur kitabxanalardan da bəhs edilir rahat əməliyyat Arduino IDE-də. Səhifə Arduino proqramlaşdırma dilinin əsas funksiyalarını və konstruksiyalarını başa düşməyə və yadda saxlamağa kömək edəcək.

Əşyaların İnterneti layihələrində Arduino və Raspberry Pi. Viktor Petin

>Əşyaların İnterneti layihələrində Arduino və Raspberry Pi

Təsvir: Məşhur Arduino platforması və Raspberry Pi mikrokompüteri əsasında Əşyaların İnterneti (IoT, Əşyaların İnterneti) konsepsiyası çərçivəsində sadə cihazların yaradılması nəzərdən keçirilir. İnkişaf mühitinin necə qurulacağını və konfiqurasiya ediləcəyini göstərir Arduino Proqramları IDE, eləcə də Frizing layout mühiti. Texniki imkanlar, əlaqə və qarşılıqlı əlaqə xüsusiyyətləri təsvir edilmişdir müxtəlif sensorlar və icra cihazları. Hazırlanmış layihələrin internetə çıxışının təşkili, məşhur bulud IoT xidmətlərindən istifadə etməklə məlumatların göndərilməsi və qəbulu: Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin və s. göstərilir.GPRS/GSM Shield vasitəsilə məlumat mübadiləsinə diqqət yetirilir. lövhə. Şəbəkə üzərindən məlumat toplamaq üçün öz serverinizin yaradılması layihəsi müxtəlif cihazlar Arduino platformasında. Raspberry Pi ilə işləmək üçün WebIOPi çərçivəsini necə istifadə edəcəyinizi göstərir. Layihələrdə ESP8266 Wi-Fi modulundan istifadə nümunələri Ağıllı ev". Nəşriyyatçının internet saytında proqramların və kitabxanaların mənbə kodları olan arxiv var.
— Arduino IDE proqram inkişaf mühitinin və Frizing prototipləmə mühitinin quraşdırılması və konfiqurasiyası
— Arduino və Raspberry Pi üçün sensorlar və aktuatorlar
— Narodmon, ThingSpeak, Xively, Weaved, Blynk, Wyliodrin IoT xidmətlərindən məlumatların göndərilməsi və qəbulu
— Android cihazlarından məlumat toplamaq üçün Veb serverin yaradılması
— GPRS/GSM Shield kartından istifadə etməklə məlumat mübadiləsi
— Raspberry Pi ilə işləmək üçün WebIOPi çərçivəsi
— Smart Home layihələrində ESP8266 WiFi modulu

Praktiki Arduino Ensiklopediyası Kitabda ArduinoUNO-nun bu günə qədər ən kütləvi versiyası olan Arduino platformasına əsaslanan strukturların əsas komponentləri və ya çoxsaylı oxşar klonlar haqqında məlumatlar ümumiləşdirilmişdir. Kitab 33 eksperimental fəsildən ibarətdir. Hər bir təcrübədə Arduino lövhəsinin müstəqil ixtisaslaşdırılmış qurğular olan ən sadədən ən mürəkkəbinə qədər xüsusi elektron komponent və ya modulla işləməsi nəzərdən keçirilir. Hər bir fəsil eksperimentin praktiki həyata keçirilməsi üçün lazım olan detalların siyahısını təqdim edir. Hər bir təcrübə üçün vizual sxem Fritzing inteqrasiya olunmuş inkişaf mühiti formatında birləşdirən hissələri. Onun necə görünməsi barədə aydın və dəqiq bir fikir verir. yığılmış dövrə. Sonrakı verilir nəzəri məlumat istifadə olunan komponent və ya modul haqqında. Hər bir fəsildə şərhləri olan Arduino daxili dilində eskiz (proqram) kodu var.

Sürətli başlanğıc. Arduino ilə işə başlamaq

Arduino lövhəsi ilə başlanğıc dəsti proqramlaşdırma, dizayn və elektron yaradıcılıq dünyasına keçidinizdir.
Bu kitabçada Arduino lövhəsi ilə işə başlamaq üçün lazım olan bütün məlumatlar, üstəgəl müxtəlif proqramlardan istifadə etməklə 14 praktiki təcrübə var. elektron komponentlər və modullar.
Qazanılan biliklər gələcəkdə öz layihələrinizi yaratmağa və onları asanlıqla həyata keçirməyə imkan verəcəkdir.