ARDUINO SER HABERLEME SER HABERLEME Seri haberlemede bilgiler
ARDUINO SERİ HABERLEŞME
SERİ HABERLEŞME Seri haberleşmede bilgiler seri bit şeklinde gelir. RS 232, SATA… Arduinoyu başka bir arduinoyla, bilgisayarla veya elektronik sistemlerle haberleştirmek için seri haberleşme protokolü kullanılabilir. Arduinoda haberleşme iki pin üzerinden yapılır (RX ve TX). RX veri alan pin, TX ise verileri gönderen pindir.
� Seri haberleşme için Arduino üzerinde bulunan seri haberleşme ünitesine UART (universal asynchronous recevier/transmitter) adı verilir ve unoda 1 adet megada ise 3 adet UART bulunur.
Arduino arayüz programında “serial monitor” ile seri haberleşme ile veri alınıp gönderilebilir. “Serial monitor” programında belirtilen haberleşme hızı, Serial. begin() komutu ile belirtilen değerle aynı olmalıdır.
Serial Monitore Yazdırma void setup(){ Serial. begin(9600); //arduino ile haberleşen //programınveya elektronik kartın iletişim hızı ile eşit //olmalıdır. Serial. println ("merhaba bilgisayar"); } void loop (){}
� Serial monitor TOOLS menüsünden seçilmelidir.
Serial. begin(rate) � Serial haberleşmenin başlaması için kullanılır. Bu tanımlamada rate seri iletişimin hızını belirler. � Rate bölümüne 300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 3840 0, 57600 ve 115200 sayısal değerlerden biri verşilebilir. Serial. begin(14400); //veri hızı saniyede 14400 bit olarak belirlendiğini gösterir.
Serial. print (bilgi) Serial. println (bilgi) Serial. print (34); //34 yazar Serial. print (3. 4564); //3. 45 yazar Serial. print (‘N’); //N yazar Serial. print (“yasemin”); //yasemin yazar Serial. print (78, BIN); //1001110 yazar Serial. print (78, HEX); //4 E yazar
� Serial. println(3. 4583, 0); //3. 4583 yazar � Serial. println(3. 4583, 1); //3. 4 yazar � Serial. println(3. 4583, 3); //3. 458 yazar
ARDUINO DÖNGÜLER
DÖNGÜLER Verilen şart doğru olduğu sürece belirtilen işlemlerin tekrar edilmesi durumudur. � FOR DÖNGÜSÜ � WHILE DÖNGÜSÜ
FOR DÖNGÜSÜ for (başlangıç; şart; adım); { Komutlar; }
11 kez led yakıp söndürme void setup(){ pin. Mode (5, OUTPUT); for (int i=0; i<=10; i++){ //11 defa digital. Write(5, HIGH); delay(500); digital. Write(5, LOW); delay(500); } } void loop(){}
0’dan 50’ye kadar sayıları serial monitore yazdırma void setup(){ Serial. begin(9600); for (int i=0; i<=50; i++){ //11 defa Serial. println(i); delay(1000); }} void loop(){}
for(; ; ){ } for(; ; ) { komutlar; } İfadesi sonsuz döngü anlamına gelir.
While döngüsü Şart doğru olduğu sürece belirtilen işlemleri tekrarlamak için kullanılır. while (şart){ Komutlar; }
int x=0; while(x<=100){ x++; // x değişkeni 100’e eşit olana kadar x’i bir arttır. }
11 kez led yakıp söndürme int i=0; void setup(){ pin. Mode(8, OUTPUT); while (i<=10){ digital. Write(8, HIGH); delay(500); digital. Write(8, LOW); delay(500); i++; }} void loop(){}
0’dan 50’ye kadar sayıları serial monitore yazdırma int i=0; � void setup(){ � pin. Mode(8, OUTPUT); � Serial. begin(9600); � while (i<=50){ � � Serial. println(i); � i++; � � }} � void loop(){}
Saydırma-led yakma int i=0; void setup(){ pin. Mode(8, OUTPUT); Serial. begin(9600); } void loop(){ while (i<=10){ Serial. println(i); digital. Write(8, HIGH); delay(500); digital. Write(8, LOW); delay(500); i++; }}
SONSUZ WHILE DÖNGÜSÜ while (1) { Komutlar; } while (true) { Komutlar; }
UYGULAMALAR 12 nolu pinde tanımlı led seri bilgi olarak ‘H’ geldiğinde yanacak, ‘L’ geldiğinde ise sönecektir. Rate 9600 ayarlanacaktır.
int control=0; // Seri haberleşmeden gelecek veri int LED=12; //Ledin bağlı olduğu pin void setup() { //Başlangıç Ayarları pin. Mode(LED, OUTPUT); //LED çıkış olarak ayarlandı Serial. begin(9600); //Baurate ayarlanıp seri haberleşme başlatıldı} void loop() { while(1) { control=Serial. read(); if(control=='H') { //Gelen veri kaydedildi //Gelen veri 'H' ise Led Yansın digital. Write(LED, HIGH); } else if(control==‘L') { //Gelen veri ‘L' ise Led Sönsün digital. Write(LED, LOW); } } }
- Slides: 23