Arduino mikrokontrollerləri

Arduino, interaktiv layihələr inkişaf etdirmək üçün hazırlanmış elektron bir hardware və proqram əsaslı inkişaf platformasıdır. Arduino lövhələrində Atmel AVR mikrokontroleri və dövrə əlaqələri üçün müxtəlif elektron komponentlər var. Arduino, İtalyan mühəndisləri tərəfindən hazırlanmışdır və tamamilə açıq mənbəli bir platformadır. Beləliklə, istəsəniz dizaynla hazır Arduino lövhələrini ala bilərsiniz və ya öz komponentlərinizlə öz Arduino dövrənizi hazırlaya və proqramlaşdıra bilərsiniz.

Arduino PCB (AtmegaXX) üzərindəki mikroprosessor Arduino proqramlaşdırma dilində proqramlaşdırılmış və bu proqram işlənməyə əsaslanan Arduino PT İnkişaf Mühiti (IDE) istifadə edərək karta quraşdırılmışdır. Hər kartda ən azı bir inteqrasiya edilmiş 5V tənzimləyici inteqrasiyası və 16MHs və ya daha yeni 32MHz tezliyinə malik kristal osilloqraf var [1].

Arduino demək olarki, bütün elektronik cihazlara qoşula bilər və eləcə də istənilən qaydada elektronik cihazları idarəetmə qabilliyyətinə malikdir. Arduinonun saysız bir çox modelləri mövcuddur və dünyanın istənilən bölgəsində insanlar bu komplektdən istifadə etməklə azad bir şəkildə istədikləri yeni texnologiyaları yarada bilirlər (şəkil 1).

Şəkil 1. Arduinonun xarici görünüşü

            Arduino Uno və Arduino Pro mini  modulları haqqında ümumi məlumat. Əvvəldə də qeyd etdiyimiz kimi, bir çox arduino növü mövcuddur. Bunlardan biri Arduino Uno adlandırılır. Bu, ATmega328 əsaslı Arduino kartından ibarətdir. Arduino Uno bir sıfırlama düyməsinə və pin giriş və çıxışlarına malikdir (şəkil 2) [1].

Şəkil 2. Mikrokontrollerin proqramlaşdırılma diaqramının təsviri

Arduino Uno-nun 3.3V, 8MHz və 5V, 16MHs olaraq iki bir-birindən fərqli versiyası var. Arduino Uno-dakı gərginlik tənzimləyicisi 12V-ə qədər giriş gərginliyini qəbul edir. Xarici təchizatı gərginliyi Arduinonun RAW pinindəndaxil edilir [1].

Arduino Uno, ATmega328 əsaslı Arduino lövhəsidir. Arduino Pro Mini haqqında yenidən qurma düyməsinə və hər hansı bir konfiqurasiyaya uyğun hər hansı bir pimi və ya məftili lehimləyə biləcəyiniz pin deliklərinə malikdir. Arduino Pro Mini’nin 3.3V, 8MHz və 5V, 16MHz iki fərqli versiyası var (şəkil 3).

Şəkil 3. Arduino Pro mini (ön və araxa tərəf)

Arduino Pro Mini kiçik ölçüsü sayəsində müxtəlif tətbiqlərdə istifadə oluna bilən və breadboard ilə hazırlanacaq bütün tətbiqetmələrə uyğun bir Arduino modelidir.

Arduino Pro Mini-də gərginlik tənzimləyicisi 12 V-ə qədər giriş gərginliyi qəbul edir. Kənardan verilən qida gərginliyi arduinonun RAW pinindən verilir. Arduino Pro Mini istifadə edərkən USB-dən güc almaq və ya əlaqə qurmaq üçün bir FTDI kartına bağlı olmalıdır (şəkil 4).

Şəkil 4. FTDİ FT232FL USB-UART çeviricisi

FTDI USB-RS232 çeviricisi, FTDI FT232RL USB-dən ardıcıl IC üçün əsas çevirici kartıdır. Bu kartın pin çıxışları FTDI kabellərlə uyğunlaşıb rəsmi Arduino və kopyalanmış 5V Arduino kartları ilə işləyə bilir.

Bu kart FTDI naqili üzərində istifadəni asanlaşdırmaq üçün TX və RX LED-ləri ehtiva etməkdədir. Kartın işlədiyinə əmin ola bilmək üçün ardıcıl LED-lərin yanıb sönməsi ilə anlaya bilirik [1].

Bu kart Arduino inkişaf xərclərini azaltmaq və istifadə rahatlığını artırmaq üçün nəzərdə tutulmuşdur (yaxşı düşünülmüş funksiyasından biri avtomatik sıfırlama funksiyasıdır). Arduino Pro, Arduino Pro mini və LilyPad kartları bu cür konnektorlardan istifadə edir.

Xüsusiyyətləri bunlardan ibarətdir: Mac, Linux, Android, WinCE, Windows 7/8/8.1/10 dəstəklər; 3 güç mod: 5V çıxış, 3.3V çıxışı ya da hədəf kart üzərindən (3.3V-5V); 3 LED: TXD LED, RXD LED, POWER LED; Digər pin bağlantıları; Arduino Uno-nun texniki xarakteristikaları; Mikrokontroller: ATmega328; İşçi gərginliyi: 3.3 V və ya 5 V DC (modeldən aslı olaraq); Məsləhət görülən işçi gərginliyi: maksimum 12 V DC; Rəqəmsal giriş/çıxış pinləri: 14 ədəd (6 dənəsi PWM çıxışını dəstəkləyir); Analog giriş pinləri: 6 ədəd; Giriş/çıxış pini başına düşən DC cərəyan : 40 mA; Flash yaddaşı : 32 KB (0.5 KB bootloader üçün istifadə edilir); SRAM : 2 KB; EEPROM :1 KB; Saat tezliyi : 3.3 V modeli üçün 8 MHs, 5 V modeli üçün 16MHs [1].

Arduino Mega proqramatoru Arduino Uno nəslindən olan proqramatorlardan çoxsaylı funksiyaların əlavə olunması ilə tanınır və ATMEGA2560 çipi üzərində  hazırlanıb. Bu proqramator profesional və yarım profesional avadanlıqların qurulmasında tədbiqini tapmışdır. Arduino Meqa-nın proqramlaşdırma girişi USB interfeysi vasitəsilə həyata keçirilir. Arduino MEGA-nın texniki xarakteristikaları aşağıdakılardır [2]:

  • Nüvə: 8-bitlik AVR;
  • Takt tezliyi: 16 MHs;
  • Flaş-yaddaşın həcmi: 256 КB;
  • АRÇ girişlərin sayı: 16;
  • EİM girişlərin sayı: 15;
  • Qida gərginliyi: 5 V;
  • Giriş gərginliyi: 7–12 V.

Şəkil 5. Arduino Mega-nın ümumi görünüşü

Kontrollerin elektrik qidalanması iki üsulla yerinə yetirilməsi mümkündür:

  1. Kompüterə qoşulduqda USB vasitəsilə;
  2. Kənar elektrik qida bloku vasitəsilə.

Qida mənbələrinin hər ikisini qoşduqda proqramator böyük qidalandırma rejiminə keçir. ARDUİNO proqramlaşdırıcının giriş və çıxış kontaktlarında cərəyan məhdudiyyəti hər zaman mövcuddur. Bütün analoq və rəqəmsal kontaktları 5 V-dək işləyirlər və xüsusi sxemlər vasitəsi ilə ifrat cərəyandan qorunurlar. Bəzi kontaktların cərəyandan qorunması üçün rezistorlar ilə sxemə qoşulurlar. Bu kontrollerdə çıxışlarda axan maksimal cərəyan 45 mA-dən artıq olmamalıdır.

Burada dörd işıq diodu mövcuddur ki, giriş və çıxış siqnallarının mövcudluğunu əks etdirir. Onlar ötürmə (TX), qəbul (RX), qida (PWR) və əlaqə (L) kimi göstərilmişdir. Siqnalın aşağı səviyyəsi zamanı ötürmə və qəbul diodları işıqlanır. PWR işıq diodu 5 V-da gərginlik vaxtı yanır və göstərir ki, qidalanmaya qoşulmuşdur. Son işıq diodu ümumi təyinatlıdır, siqnalın yüksək səviyyəsi zamanı aktiv olur.

  • Hal-hazırda, Arduino Mega-nın müxtəlif növləri mövcuddur. R1, R2, R3 və s. versiyaları var və quraşdırılan kontrollerlər ilə fərqlənirlər. Arduino Mega-nın çıxışları şəkil 4.2-də göstərilmişdir [3].
  • Ardıcıl interfeys: 0 (RX) və 1 (TX); Serial 1: 19 (RX) və 18 (TX); Serial 2: 17 (RX) və 16 (TX); Serial 3: 15 (RX) və 14 (TX). Göstərilən ayaqlar məlumatların ötürülməsi və qəbulu üçün istifadə edilir. 0 və 1 çıxışları, USB-UART rolunu yerinə yetirərək, kontrollerin müvafiq çıxışlarına qoşulub.
  • Kəsilmələr: 2 (0 kəsilmə), 3 (1 kəsilmə), 18 (5 kəsilmə), 19 (4 kəsilmə), 20 (3 kəsilmə) və 21 (2 kəsilmə). Bu çıxışlar kəsilmə siqnalları mənbəyi kimi müxtəlif şəraitdə istifadə edilə bilərlər.
  • EİM: 2-13 və 44-46 çıxışları. Köməkçi funksiya ilə analogWrite() funksiyasından istifadə edərək 8 bitlik analoq siqnalını EİM siqnal şəklində çıxarmasına imkan verir.
  • SPİ interfeysi: 50 (MISO) çıxışı, 51 (MOSI) çıxışı, 52 (SCK) çıxışı, 53 (SS) çıxışı. 
  • İşıq diodu: 13 çıxışı. Yüksək məlumat gəldikdə işıqlanır, əks halda sönür.

Şəkil 4.2. Arduino Mega proqramotorun çıxışları

Arduino Mega ümumilikdə, 66 ədəd giriş-çıxış ayaqlarından ibarətdir. Analoq  giriş-çıxışı “A” hərfi ilə rəqəmli giriş-çıxış “D” hərfi ilə işarələnir.

İstənilən elektron komponentləri (Led-lər, mühərriklər, sensorlar və s.) I/O portlarına qoşulması ilə idarəsi mümkündür. Bunlar öz funksiyalarına görə analoq və ya rəqəmsal-analoq interfeyslərdir. Adından da göründüyü kimi rəqəmsal girişlərdən istifadə etdikdə, onlarda siqnal yalnız iki səviyyədə ola bilər: məntiqi sıfır (0, LOW) və məntiqi bir (1, HIGH). Analoq girişlərin məqsədi analoq sensorların qoşulmasıdır.

Bu portların aktivləşdirilməsi üçün biz pinMode funksiyasından (<pin sayı>, <rejim: INPUT/OUTPUT>) istifadə edərək idarəetməsi mümkündür. Məlumatların oxunması üçün GİRİŞ, ötürülməsi üçün ÇIXIŞ tələb olunur. Arduino mikrokontrollerin portları üçün digər və son vacib meyar onların fiziki tərkibləridir. Hər pin 5V çıxış gərginliyinə malikdir və maksimum 0,02A çıxış cərəyanı təmin edə bilər.

Arduino proqramlaşdırılması üçün əvvəlcədən müəyyən edilmiş funksiyaları olan C++ dilinin sadələşdirilmiş versiyası istifadə olunur. Digər C proqramlaşdırma dilləri ilə olduğu kimi, kod yazma qaydaları da var. Ən əsası isə bunlardır:

  • Hər bir əmrdən sonra nöqtəli vergül (;) nişanını qoymaq lazımdır;
  • Bir funksiyanı elan etməzdən əvvəl funksiya bir dəyər qaytarmırsa, funksiya;
  • Tərəfindən qaytarılan məlumat növünü təyin etməlisiniz və ya ləğv etməlisiniz;
  • Bir dəyişəni elan etməzdən əvvəl məlumat növünü göstərməlisiniz;
  • Şərhlər görünür: // Sətri və /* blok */ ;

Arduino proqramlaşdırma səhifəsində məlumat növləri, funksiyaları, dəyişənləri, operatorları və dil strukturları haqqında daha çox məlumat əldə edə bilərsiniz.  Bütün bu məlumatları yadda saxlamağa ehtiyac yoxdur. Həmişə kataloqa gedə və bir funksiyaya baxa bilərsiniz.

Arduino üçün bütün qurulmalar minimum 2 funksiyanı ehtiva etməlidir. Bu setup() və loop() funksiyalarıdır. Quraşdırma() funksiyası yalnız bir dəfə başlamazdan və dərhal cihazınızı işə salandan və ya yenidən başladıldıqdan sonra yerinə yetirilir. Ümumiyyətlə, bu funksiya pin rejimlərini bildirir, lazımi kommunikasiya protokollarını açır, əlavə modullarla əlaqə qurur və əlaqəli kitabxanaları konfiqurasiya edir

Loop() funksiyası setup() funksiyasından sonra yerinə yetirilir. İngilis dilindən tərcümədə Loop “döngü” mənasını verir. Bu, funksiyanın looped olduğunu göstərir, yəni təkrarlanan. Məsələn, çoxu Arduino kartlarına quraşdırılmış Atmega328 mikrokontrolleri ilə loop funksiyasını saniyədə təqribən 10,000 dəfə yerinə yetirir (gecikmələr və kompleks hesablamalar istifadə edilmirsə).

İstinadlar:

1. Проекты с использованием контроллера Arduino-Петин В.А./2-е изд., перераб. и доп.-СПб.:БХВ-Петербург, 2015.-464 с.:ил

2.  http://russianspacesystems.ru/bussines/cosmostroy/bortovaya-apparatura/

3.  https://docs.arduino.cc/hardware/mega-2560

Müəllif: AZTU-nun İnformasiya və telekommunikasiya texnologiyaları fakültəsinin
Elektronika, telekommunikasiya və radiotexnika műhəndisliyi ixtisası üzrə magistr

Elvira ARAZLI