Arduino layihələriKoteqoriyasız

Arduino ilə rəqəmsal girişin oxunulması

Bu nümunə, Arduino və ya Genuino ilə kompüteriniz arasında USB üzərindən ardıcıl (serial) əlaqə quraraq, bir açarın (düymənin) vəziyyətini necə izləyə biləcəyinizi göstərir.

Tələb olunan avadanlıq

  • Arduino və ya Genuino lövhəsi (board)
  • Ani keçidli bir açar (momentary switch), düymə (button) və ya keçid açarı (toggle switch)
  • 10k Om rezistor
  • Birləşdirici naqillər
  • Breadboard

Dövrə

Görüntü Fritzing istifadə edərək hazırlanmışdır. Daha çox dövrə nümunələri üçün Fritzing layihə səhifəsinə ( Fritzing project page) baxın

Lövhəyə (arduino) üç naqil bağlayın. İlk iki, qırmızı və qara naqili, 5 volt mənbə və yerlə (GND) əlaqəni təmin etmək üçün breadboard’un yan tərəfindəki iki uzun şaquli sıraya birləşdirin. Üçüncü tel, rəqəmsal pin 2-dən düymənin bir ayağına gedir. Düymənin eyni ayağına, yerə (GND) birləşdirilən bir rezistor (burada 10k om) bağlanır. Düymənin digər ayağı 5 voltlu mənbəyə qoşulur.

Düymələr və ya açarlar, düyməyə basdığınız zaman bir dövrədə iki nöqtəni birləşdirir. Düyməni açdıqda (basılı deyil) düymənin iki ayağı arasında əlaqə olmur, buna görə rəqəmsal girişə gedən pin yerə (GND) (rezistor vasitəsilə) qoşulur və LOW və ya 0 olaraq oxunur. Düymə bağlandıqda (basıldıqda), iki ayağı arasında bir əlaqə yaradır, rəqəmsal pini 5 volta bağlayır, beləliklə pin HIGH və ya 1 olaraq oxunur.

Rəqəmsal i / o (giriş-çıxış) pini hər şeydən ayırsanız, LED səhvən yanıb-sönə bilər. Bunun səbəbi girişin “üzən” (“floating”) olmasıdır, yəni gərginlik və ya yer (GND) ilə sağlam bir əlaqə yoxdur və pin təsadüfi olaraq yüksək (“bir”) (HIGH) və ya aşağı (“sıfır”) (LOW) səviyyəyə birləşir. Buna görə dövrədə bir “aşağı çəkmə” (pull-down) rezistoruna ehtiyacınız var.

Prinsipial sxem

Kod

Aşağıdakı proqramda quraşdırma funksiyasında (setup function) edəcəyiniz ilk şey lövhə (arduino) ilə kompüteriniz arasında olan xətti saniyədə 9600 bit məlumat ötürmə sürəti ilə ardıcıl rabitəyə başlatmaqdır (begin serial communications):

Serial.begin (9600);

Sonra, giriş olaraq düymənizdən çıxışı oxuyacaq olan rəqəmsal pin 2-ni, giriş olaraq təyin edin:

pinMode(2,INPUT);

İndi quraşdırma tamamlandığından kodunuzun əsas döngüsinə (main loop) keçin. Düyməniz basıldığında dövrənizdən 5 volt sərbəst axacaq və basılmadıqda giriş pin 10k Om rezistor vasitəsilə yerə (mənfiyə) qoşulacaq. Bu rəqəmsal bir girişdir, yəni düymə ancaq açıq vəziyyətdə (Arduinonuz tərəfindən “1” və ya HIGH kimi görünür) və ya qapalı vəziyyətdə (Arduino tərəfindən “0” və ya LOW olaraq görülür) ola bilər.

Proqramınızın əsas döngüsündə (main loop) etməli olduğunuz ilk şey, düymədən gələn məlumatları tutmaq (oxumaq) üçün dəyişən yaratmaqdır. Düymədən gələn məlumatlar ya “1”, ya da “0” olacağından, bir int data tipindən istifadə edə bilərsiniz. Bir dəyişkən sensorValue-u çağırın və rəqəmsal pin 2-də oxunan dəyərlərə bərabərləşdirin. Bütün bunları yalnız bir sətirdə edə bilərsiniz:

int sensorValue = digitalRead (2);

Arduino girişini oxuduqdan sonra, bu məlumatı onluq dəyər (decimal value) kimi kompüterə yazdırın. Bunu son kod sətrimizdəki Serial.println () əmri ilə edə bilərsiniz:

Serial.println (sensorValue);

İndi Arduino Proqramında (IDE) Serial Monitorunuzu açdığınızda, açarınız açıq olduqda “0” və ya açarınız bağlı olduqda isə “1” görəcəksiniz.

/*
   Rəqəmsal girişin oxunulması

   Pin 2-dən rəqəmsal giriş oxuyur, nəticəni Serial Monitora yazdırır

   Bu nümunə kodu ümumi istifadə üçündür.

  http://www.arduino.cc/en/Tutorial/DigitalReadSerial
*/

// rəqəmsal pin 2-yə birləşdirilmiş düymə var.Düyməyə ad veririk:
int pushButton = 2;

// sıfırlama düyməsinə basdıqda qurulum bir dəfə çalışır:
void setup() {
  // saniyədə 9600 bit sürətlə rabitəni işə salırıq:
  Serial.begin(9600);
  // düyməni giriş olaraq təyin edirik:
  pinMode(pushButton, INPUT);
}

// döngü təkrar-təkrar sonsuz olaraq davam edir:
void loop() {
  //  giriş pinini oxuyuruq:
  int buttonState = digitalRead(pushButton);
  // düymənin vəziyyətini yazdırırıq:
  Serial.println(buttonState);
  delay(1);  // sabit dəyərlər üçün oxunanlar arasında gecikmə qoyuruq 
}

Əlaqəli Məqalələr

0 0 səslər
Article Rating
Abunə ol
Xəbər ver
guest

0 Comments
Sətir içi geri bildirimlər
Bütün şərhlərə baxın
Back to top button
0
Fikirlərinizi bilmək istərdik,lütfən şərh yazın.x