Bütün Kateqoriyalar

Kateqoriya

Arduino dərsləri: #7 Serial Monitor

Serial Monitor nədir?

Serial Monitor, Arduino IDE içərisində yerləşən Arduino kartı ilə komputer arasında xəbərləşməni təmin etmək üçün lazım olan alətdir. Serial Monitor vasitəsi ilə Arduinodan komputerə ötürülən məlumatları izləmək və komputerdən Arduinoya məlumat göndərmək mümkündür. Serial Monitorun bu özəlliyindən istifadə edərək, Sketch içərisində xətalı yazılmış kodların aşkarlanaraq düzəldilməsi ən faydalı özəlliklərindən biridir. Bir sözlə Arduino kartı və yazılmış kodun monitorinqi bu alət vasitəsi ilə daha asan və sürətli mümkün olur.

Serial xəbərləşmə UART xəbərləşmə protokolundan istifadə etməklə, Arduino üzərində olan USB – UART çevirici mikrosxem vasitəsi ilə təmin edilir. 3cü dərsdə də dediyimiz kimi, original Arduino UNO R3 üzərində Atmega 16U2, çin istehasalı Arduinoların üzərində isə CH340 mikrosxemindən istifadə edilib. Bu mikrosxem mikrokontrollerdən gələn məlumatları USB-yə, yəni komputerə, USB-dən (komputerdən) gələn məlumatları isə mikrokontrollerə ötürür.  Xəbərləşməni başlada bilmək üçün Arduino kartı USB naqil ilə komputerə qoşulmalıdır. 

Serial Monitoru açmaq

Serial Monitoru açmaq üçün “Serial Monitor” ikonuna klik edin. Aşağıda açılan pəncərə Serial Monitordur. Arduino IDE v1 dən fərqli olaraq Arduino IDE v2Serial Monitor kod redaktorunun daxilinə inteqrasiya edilmişdir.

Arduinodan komputerə

Serial Monitordan istifadə edə bilmək üçün öncə Arduino kartımıza Serial  üzərindən məlumat göndərməsi üçün kod yazaq. Bunun üçün öncə Serial xəbərləşməni aktiv etməliyik. Serial xəbərləşməni bir dəfə aktiv etmək kifayət etdiyinə görə bu prosesi setup() funksiyası içərisində edirik. setup() funksiyası içərisində Serial.begin (9600); kodunu yazaq. Serial.begin(), serial xəbərləşməni aktiv edir və içərisində yazılmış 9600 isə baud rate” adlanır, xəbərləşmənin sürətini müəyyənləşdirir. Arduino kodlaşdırması zamanı baud rate” olaraq ən çox 9600 istifadə edilir. Bunun əvəzinə 4800, 19200, 115200 kimi fərqli dəyərlərdən də istifadə etmək mümkündür. 
Serial xəbərləşməni aktivləşdirdik, indi isə Arduino UNO kartımızın USB üzərindən bizə mesaj yazmasını istəyirik. Yazacağı mesajın bir dəfə yox, sonsuza dək yazmağını istədiyimiz üçün kodumuzu loop() funksiyası içərisində yazaq. loop() funksiyası içərisində Serial.print() kodu ilə istədiyimiz mesajı komputerə davamlı olaraq göndərə bilərik. Məsələn: Serial.print(“Embedded.az Arduino dərsləri!!!”). Bu kod ilə Arduino kartı komputerə Embedded.az Arduino dərsləri!!! mesajını göndərəcək. Düzgün COM portu və Arduino modelini seçərək kodu karta yükləyək. Şəkildə də göstərildiyi kimi mesajın düzgün göstərilməsi üçün Serial monitorun “baud rate” dəyəri kodda yazdığımız dəyər ilə eyni olmalıdır. Bizim kodumuz üçün bu 9600-dür.

				
					/*
 * Embedded.az tərəfindən hazırlandı
 *
 * Arduino dərsləri-Serial Monitor
 */
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.print("Embedded.az Arduino dərsləri!!!");
}
				
			

 Gördüyünüz kimi mesaj Serial monitorda göründü. Amma mesaj bir birinin ardınca yazılır və rahat oxuna bilmir. Serial.print() əvəzinə Serial.println() kodundan istifadə etsək, komputerə göndərilən hər mesaj yeni sətir sonluğu ilə göndəriləcək və avtomatik olaraq ondan sonra göndərilən mesaj yeni sətirdə yazılmış olacaq. 

				
					/*
 * Embedded.az tərəfindən hazırlandı
 *
 * Arduino dərsləri-Serial Monitor
 */
void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("Embedded.az Arduino dərsləri!!!");
}
				
			

Komputerdən Arduinoya

İndi isə komputerdən Arduino kartına məlumat göndərməyə baxaq. Yazacağımız kodların arasında sizə tanış olmayan kod sətirləri ola bilər, bunlar haqqında gələcək dərslərdə daha ətraflı məlumat verəcəyik.
İstədiyimiz odur ki, Serial monitor üzərindən Arduino kartındaON” yazıb göndərdikdə kartın üzərindəki istifadəçi LEDi yansın “OFF” yazıb göndərdikdə isə sönsün. Bunun üçün aşağıdakı addımları izləyək.

1. Serial xəbərləşməni aktiv edirik və “baud rate” dəyərini təyin edirik.

				
					Serial.begin(9600);
				
			

2. İstifadəçi LEDi qoşulmuş 13-cü pini çıxış olaraq təyin edirik.

				
					pinMode(13, OUTPUT);
				
			

3. Serial monitordan Arduino kartına məlumat göndərərkən məlumatın sonunda “/n” sətir sonluğunu göndərəcəyik. Göndərilən mesajın sonunda “/n” xarakterinin əlavə edilərək göndərilməsi üçün, şəkildə göstərildiyi kimi, Serial monitordaNew Line” seçilməlidir. 

Karta mesaj gəlməsini gözləmək və gələn mesajı /n” xarakterinə qədər oxuyaraq yadda saxlamalıyıq. Aşağıdakı nümunədə oxunan mesaj “command” dəyişəni içərisində saxlanılır.

				
					if (Serial.available())
  {
    String command = Serial.readStringUntil('\n');
    }
				
			

4. Göndərilən mesaj “ON” dursa 13cü pini yüksəldirik (pini 5v edərək LEDi yandırırıq) və Serial monitora LEDin yanması haqqında mesaj göndəririk. 

				
					if (command == "ON")
    {
      digitalWrite(13, HIGH);
      Serial.println("LED yandı");
    }
				
			

5. Göndərilən mesaj “OFF” dursa 13cü pini söndürürük (pini 0v edərək LEDi söndürürük) və Serial monitora LEDin sönməsi haqqında mesaj göndəririk. 

				
					else if (command == "OFF")
    {
      digitalWrite(13, LOW);
      Serial.println("LED söndü");
    }
				
			

Aşağıdakı kodu kopyalayaraq Arduino IDE içərisində yeni Sketch-ə köçürün, COM portu və Arduino kartınızı seçərək kodu karta yükləyin. Daha sonra Serial monitoru açaraq “Message” bölməsinə “ON” yazaraq “Enter” düyməsini basın. Hər şeyi doğru etmisinizsə Arduino UNO kartınız üzərindəki istifadəçi LEDi yanmalıdır və Serial monitorda “LED yandı” mesajı görünməlidir. Daha sonra “OFF” yazıb “Enter” düyməsini basın. Bu halda isə LED sönməlidir və “LED söndü” mesajı görünməlidir.

				
					/*
 * Embedded.az tərəfindən hazırlandı
 *
 * Arduino dərsləri-Serial Monitor
 */

void setup() {
  Serial.begin(9600);   // Serial xəbərləşməni aktiv et və baud rate dəyərini təyin et
  pinMode(13, OUTPUT);  // 13-cü pini çıxış olaraq təyin et
}

void loop() {
  if (Serial.available())  // Əgər serialdan məlumat gəlirsə
  {
    String command = Serial.readStringUntil('\n');  // Yeni sətir '\n' xarakterinə qədər oxu

    if (command == "ON")  // Gələn məlumat "ON" dursa
    {
      digitalWrite(13, HIGH);       // 13cü pini yüksəlt (5v)
      Serial.println("LED yandı");  // Serial monitora LED-in vəziyyətini göndər
    } else if (command == "OFF")    // Gələn məlumat "OFF" dursa
    {
      digitalWrite(13, LOW);        // 13cü pini alçalt (0v)
      Serial.println("LED söndü");  // Serial monitora LED-in vəziyyətini göndər
    }
  }
}
				
			

Sazlamalar

1. Burada göstərilən “X” düyməsi Serial monitoru bağlayır. Bu halda Serial monitor mesajları qəbul etmir. Yenidən açmaq üçün, yazının əvvəlində göstərildiyi kimi “Serial Monitor” düyməsinə klik edin.

2. Mesajları avtomatik olaraq aşağı sürüşdürərək yeni mesajları daima göstərmək.

3. Mesajların önündə zamanını göstərmək.

4. Düymə sıxılan vaxta qədər göstərilən mesajları silmək.

5. Serial monitor vasitəsi ilə komputerdən Arduino kartına mesaj göndərmək üçün istifadə edilir. Bunun üçün göndəriləcək mesaj boş xanaya yazılır və “Enter” düyməsini basaraq Arduino kartına göndərilir. 

6. Arduino kartına göndərilən mesaja müxtəlif sətir xarakterləri əlavə etmək üçün istifadə edilir. 
No Line Ending- Mesajın sonuna və ya önünə heç nə əlavə etmədən göndərmək üçündür.
New Line- Mesajın sonuna yeni sətir xarakteri “/n” əlavə etmək.
Carriage Return- Mesaja sətir başlığı xarakteri “/r” əlavə etmək.
Both NL & CR- Mesajın önünə və sonuna sətir başlığı və yeni sətir xarakterləri “/r/n” əlavə etmək.

7. Serial Monitorun mesajları hansı sürət ilə qəbul edəcəyi və göndərəcəyini seçmək üçündür. Arduino kartına yazılan kodda Serial.begin() funksiyası içərisindəki “baud rate” dəyəri ilə eyni olmalıdır.

8. Serial monitorun da yerləşdiyi alt paneli gizlətmək üçündür. Bu halda serial monitor bağlanmır və mesajları qəbul etməkdə davam edir.

#arduino kursu #arduino baki #arduino azərbaycan #arduino kodlama #arduino kod yazmaq

Şərh yazın

E-poçt ünvanınız şərhlərdə görünməyəcək. Gərəkli sahələr * ilə işarələnmişdir

Kateqoriya

Səbət
Daxil ol

Hesabınız yoxdur?

0 Istək
0 items Səbət