Robotik Kodlama

Robotik Kodlama
Ana Sayfa

İLGİNİZİ ÇEKEBİLECEK LİNKLER :

29 Haziran 2021 Salı

İki HC-05 Bluetooth Modülünü Master ve Slave Olarak Yapılandırma ve Eşleştirme - AT Komutları

 

İki HC-05 Bluetooth Modülünü Master ve Slave Olarak Yapılandırma ve Eşleştirme - AT Komutları


Önce her iki modülü de yapılandırmamız gerekiyor. Bunu yapmak için AT Komut Moduna geçmemiz gerekiyor ve işte bunu nasıl yapacağız. Öncelikle, Bluetooth modülünü önceki eğitimlerde açıklanan devre şemaları olarak Arduino'ya bağlamamız gerekir. Ek olarak yapmamız gereken, Bluetooth modülünün “EN” pinini 5 volta bağlamak ve ayrıca Arduino Kartındaki TX ve RX pinlerini değiştirmektir.

HC-05 Bluetooth Modülünü Yapılandırma - AT Komutları

Genel Bakış 

İki HC-05 Bluetooth Modülünü Ana ve Bağımlı AT Komutları Olarak Yapılandırma ve Eşleştirme

Bu yüzden Arduino'nun RX pininin Bluetooth modülünün RX pinine voltaj bölücü aracılığıyla ve Arduino'nun TX pininin Bluetooth modülünün TX pinine bağlanması gerekir. Şimdi "EN" piminin üzerindeki küçük düğmeyi tutarken modüle güç vermemiz gerekiyor ve bu şekilde komut moduna gireceğiz. Bluetooth modülü ledi 2 saniyede bir yanıp sönüyorsa bu, AT komut moduna başarıyla girdiğimiz anlamına gelir.

Bundan sonra Arduino'ya boş bir taslak yüklememiz gerekiyor ancak yükleme sırasında RX ve TX hatlarının bağlantısını kesmeyi unutmayın. Sonra Seri Monitörü çalıştırmalıyız ve orada "Hem NL hem de CR" yi ve ayrıca Bluetooth modülünün varsayılan baud hızı olan "38400 baud" oranını seçmeliyiz. Artık komut göndermeye hazırız ve formatı aşağıdaki gibidir.

AT Komutları Biçimi

Tüm komutlar "AT" ile başlar, ardından "+" işareti, ardından bir <Parametre Adı> ve "?" o parametre için yeni bir değer girmek istediğimizde parametrenin o anki değerini döndüren işareti veya "=" işareti.

Slave Yapılandırması


Örneğin, bir test komutu olan "AT" yazarsak, "Tamam" mesajını geri almalıyız. O zaman "AT + UART" yazarsak? 38400 olan varsayılan baud hızını gösteren masajı geri almalıyız. O zaman "AT + ROLE" yazarsak "+ ROLE = 0" masajını geri alacağız, bu da Bluetooth cihazının bağımlı modda olduğu anlamına gelir. "AT + ADDR" yazarsak Bluetooth modülünün adresini geri alacağız ve şuna benzer: 98d3: 34: 905d3f.

Slave Yapılandırması HC-05 Bluetooth Modülü Arduino

Şimdi, ana cihazı yapılandırırken ihtiyacımız olacağı için bu adresi yazmamız gerekiyor. Aslında köle cihazını yapılandırırken, adresini almak için ihtiyacımız olan tek şey bu, ancak adı, baud hızı, eşleştirme şifresi vb. Gibi birçok farklı parametreyi değiştirebiliriz, ancak bu örnek için bunu yapmayacağız.

Ana Yapılandırma


Tamam şimdi devam edelim ve diğer Bluetooth modülünü ana cihaz olarak yapılandıralım. İlk olarak, bağımlı cihazla aynı 38400 olduğundan emin olmak için baud hızını kontrol edeceğiz. Daha sonra "AT + ROLE = 1" yazarak Bluetooth modülünü ana cihaz olarak ayarlayacağız. Bundan sonra "AT + CMODE = 0" kullanarak bağlantı modunu "sabit adres" olarak ayarlayacağız ve "AT + BIND =" komutunu kullanarak daha önce yazdığımız slave cihazın adresini ayarlayacağız.

Master Yapılandırma HC-05 Bluetooth Modülü Arduino

Adresi yazarken iki nokta üst üste yerine virgül kullanmamız gerektiğini unutmayın. Ayrıca, "AT + CMODE" komutunda "0" yerine "1" girersek önceki adımı atlamış olabileceğimizi unutmayın; bu, ana birimin iletim aralığındaki herhangi bir cihaza bağlanmasını sağlar, ancak bu daha az güvenli bir konfigürasyondur. Burada komutların ve parametrelerin tam bir listesini bulabilirsiniz: HC-05 Bluetooth ve AT Komutları

Bununla birlikte, Bluetooth modüllerinin ana ve bağımlı aygıtlar olarak çalışması için temel bir yapılandırması için ihtiyacımız olan tek şey bu ve şimdi bunları normal, veri modunda yeniden bağlarsak ve modülleri yeniden çalıştırırsak, ana birim birkaç saniye içinde bağlanacaktır. köleye. Her iki modül de başarılı bir bağlantı olduğunu gösterecek şekilde her 2 saniyede bir yanıp sönmeye başlayacaktır.

İki HC-05 Bluetooth Modülü Örneği Arasındaki İletişim


Tamam, şimdi bu eğitim için pratik bir örnek oluşturmaya hazırız. İşte devre şemaları. Slave'deki bir servo motoru kontrol etmek için master'da bir potansiyometre kullanacağız. Ve tam tersi, ana birimdeki bir LED'i kontrol etmek için ikincil cihazda bir basma düğmesi kullanacağız.

İki HC-05 Bluetooth Modülü Devre Şeması Arasındaki İletişim

Arduino Kaynak Kodları


Açıklama:  Öncelikle program için gerekli olan pinleri ve bazı değişkenleri tanımlamamız gerekiyor. Kurulum bölümünde master'da led pinini çıkış olarak ayarlayıp hemen düşük seviyeye ayarladık ve 38400 baud hızında seri haberleşmeyi başlatıyoruz. Benzer şekilde slave'de de buton pinini input olarak ayarlıyoruz, pin'in bağlı olduğu servoyu tanımlıyoruz ve aynı baud hızı ile seri haberleşmeyi başlatıyoruz.

Döngü bölümünde, her iki kodda da Serial.available () fonksiyonu ile seri portta okunacak veri olup olmadığını kontrol edeceğiz ve Serial.read () fonksiyonunu kullanarak veriyi okuyup saklayacağız. "durum değişkeni. Bu nedenle, eğer master, buton durumu yüksek olduğunda slave'den gönderilen '1' karakterini alırsa veya butona basıldığında, LED yanar. Aksi takdirde karakter '0' ise LED kapalı olacaktır.

Servo motor kontrolüne gelince, önce master'da potansiyometre değerini okuruz ve 0 ile 255 arasında servo için uygun bir aralığa eşleriz. Bu değer, servo motoru uygun şekilde döndürmek için onu kullanan slave'e gönderilir. Tek ihtiyacımız olan bu ve işte örneğin gösterimi.

Ana Kod:

/*
* How to configure and pair two HC-05 Bluetooth Modules
* by Dejan Nedelkovski, www.HowToMechatronics.com
*
* == MASTER CODE ==
*/
#define ledPin 9
int state = 0;
int potValue = 0;
void setup() {
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
// Controlling the LED
if (state == '1') {
digitalWrite(ledPin, HIGH); // LED ON
state = 0;
}
else if (state == '0') {
digitalWrite(ledPin, LOW); // LED ON
state = 0;
}
// Reading the potentiometer
potValue = analogRead(A0);
int potValueMapped = map(potValue, 0, 1023, 0, 255);
Serial.write(potValueMapped); // Sends potValue to servo motor
delay(10);
}

Slave Kodu:

/*
* How to configure and pair two HC-05 Bluetooth Modules
* by Dejan Nedelkovski, www.HowToMechatronics.com
*
* == SLAVE CODE ==
*/
#include <Servo.h>
#define button 8
Servo myServo;
int state = 20;
int buttonState = 0;
void setup() {
pinMode(button, INPUT);
myServo.attach(9);
Serial.begin(38400); // Default communication rate of the Bluetooth module
}
void loop() {
if(Serial.available() > 0){ // Checks whether data is comming from the serial port
state = Serial.read(); // Reads the data from the serial port
}
// Controlling the servo motor
myServo.write(state);
delay(10);
// Reading the button
buttonState = digitalRead(button);
if (buttonState == HIGH) {
Serial.write('1'); // Sends '1' to the master to turn on LED
}
else {
Serial.write('0');
}
}

ANA SAYFAYA DÖN

Bahadır ÖZGEN
Electronic Robotic Coding Research and Development 1975 - ∞
Learn Forever
If you want, let's learn together...
https://roboticcode2020.blogspot.com/
bahadirozgen1975@gmail.com
facebook    robotic.code
instagram    @roboticcode


Sayfalarımı ziyaret ettiğiniz için teşekkür ederim.Bu sitede mevcut olan içerikler kendi oluşturduğum projeler yazı,resim ve videolardan oluşmaktadır.İçerik oluşturmak çok uzun sürdüğü için bazı projelerde yurtdışı kaynaklardan faydalandım.Buradaki amacım ticari değildir.Kaynağı belli olan ve bizim kaynağına ulaşabildiğimiz materyal (yazı, fotoğraf, resim, video v.b.) için ilgili konularda fotoğraflarda logo varsa v.b. not olarak gösterilecektir.Sitemizde yayınlanan tüm içerik, bizim tarafımızdan ve internet üzerinden youtube, facebook ve blog gibi paylaşıma sunulmuş kaynak sitelerden alındığı için, sitemiz yasal yükümlülüğe tabi tutulamaz. Sitemizde telif haklarının size ait olduğu bir içerik varsa ve bunu kaldırmamızı isterseniz, iletişim sayfamızdan bizimle iletişime geçtiğiniz takdirde içerik yayından kaldırılacaktır.Bu konu ve modüller ile uğraşarak, ileride çok güzel makine ve elektronik aletler yapabilirsiniz.