Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

30 Nisan 2021 Cuma

ARDUINO ETHERNET SHIELD W5100 MODÜL

 

ARDUINO ETHERNET SHIELD

Geliştirme kartlarının seçimine geldiğimizde Arduino, uygun maliyetli, açık kaynak kodlu donanım ve yazılım olduğu ve en önemli özelliği genişletilebilir olduğu için aklımızda beliriyor. Arduino'yu bağımsız bir proje olarak kullanabiliriz, ancak internete bağlantı (kablosuz veya kablolu) veya motorlarla arayüz vb. Gibi bazı spesifik özellikler söz konusu olduğunda, kalkan olarak bilinen nispeten pahalı bir adaptör işe yarar. Bu yazıda, Arduino kartına internet bağlantısı sağlayan ETHERNET shield olarak bilinen belirli bir Arduino kalkanını tartışacağız. Arduino ile pin yapılandırması, gereksinimleri, bilgilendirici LED'ler, adreslerin nasıl atanacağı ve son olarak bu kalkanın kullanıldığı bazı projeleri listeleyeceğiz.








ARDUINO ETHERNET SHIELD'A GİRİŞ

Ethernet Shield, Ethernet kütüphanesini kullanarak Arduino kartına internet bağlantısı sağlar. Bu kalkanı internete bağlanmak üzere yapılandırmamıza yardımcı olacak skeçler (IDE'de yazılmış Arduino programı) yazmak için bu Ethernet kütüphanesini kullanabiliriz. Bu shield, Arduino kartlarının hemen hemen tüm versiyonları ile uyumludur. Panomuzun internet bağlantısı sağlayarak dünya çapında veri almasını ve göndermesini sağlar. SD kart seçeneği de mevcuttur ve bu kartı SD kütüphanesini kullanarak yazıp okuyabiliyoruz. Sadece projenizin internete bağlanmasına izin vererek sonsuz sayıda olasılık sağlanır.

Bu kalkan, 16 KB dahili tampon alanına sahip Wiznet W5100 çip Ethernet'e dayanır. Aynı anda 4 soket bağlantısını destekleyebilir. Bu çip, hem internetin taşıma katmanı protokolünü, yani TCP (iletim kontrol protokolü) ve UDP (kullanıcı datagram protokolü) kapasitesine sahip bir ağ IP yığını sağlar. TCP, UDP'ye kıyasla mesajların taşınması için daha güvenilir bir hizmet sağlar ve bu 2 protokolün çok daha fazla özelliği vardır, ancak şu anda bu makaledeki endişemiz bu değil. Sadece bu kalkan aracılığıyla pano internet bağlantımızı sağlamaya odaklandık.

Bu kalkanın yeni sürümü, 32 KB arabellek boyutuna sahip W5500 Ethernet yongasına dayanır, otomatik anlaşmayı destekler ve I2C, UART arayüzünü destekler. Ethernet kalkanını Arduino kartına bağlamak için uzun tel çözgü başlıklarını kullanarak pin düzenini sağlam tutar ve diğer kalkanlar bunun üzerine istiflenebilir.


Arduino Ethernet Shield'i Arduino kartımıza takmamız gerekiyor, ancak aşağıda bazı zorunlu gereksinimler var:

  • Ağa bağlantı için RJ45 kablosu
  • Arduino kartı (elbette. Çünkü bu shield bağımsız bir proje olarak kullanılamaz)
  • 5 V'luk çalışma voltajı Arduino kartı ile sağlanmalıdır.
  • SPI portunda Arduino kartı ile bağlantı kurun
  • Ethernet üzerinden Güç modülü gereklidir (bu modül, aşağıdaki gereksinimleri karşılaması gereken geleneksel çift bükümlü Ethernet kablosundan güç çıkarmak için tasarlanmıştır):
  • Düşük çıkış gürültüsü ve dalgalanma
  • Giriş voltajı: 36 V - 57 V
  • Aşırı yükleme koruması
  • Çıkış voltajı: 9V
  • Çıkış izolasyonuna giriş 1500 V olmalıdır
  • Yüksek verimli DC / DC dönüştürücü
  • 3af uyumlu

Burada dikkat edilmesi gereken önemli bir nokta, Arduino'nun SPI portu üzerinden iletişim kurması nedeniyle hem SD kart hem de W5100'ün SPI veriyolunu paylaşmasıdır, böylece bunlardan yalnızca birini kullanabiliriz. İkisini de kullanmak istiyorsak, karşılık gelen kitaplıklarını kontrol etmeliyiz.











ARDUINO ETHERNET SHIELD üzerindeki BİLGİ LED'leri

Bu kalkan, çok sayıda bilgilendirici LED ile birlikte gelir. Bunlardan bazıları aşağıda listelenmiştir:

  • PWR: Kalkan ve kart gücünün gösterilmesi için.
  • LINK: Ağ bağlantısı varlığının göstergesi için ve veri alındığında veya iletildiğinde yanıp söner.
  • FULLD: Tam çift yönlü ağ bağlantısının göstergesi için
  • 100M: 100 MB / s ağ bağlantısı varlığı için
  • RX: Kalkan veri aldığında yanıp sönmeye başlar
  • TX: Shield veri gönderdiğinde yanıp sönmeye başlar
  • COLL: Ağ çakışmaları tespit edildiğinde yanıp söner

ARDUINO ETHERNET SHIELD ARDUINO BAĞLANTISI

Arduino Uno ile Arduino Ethernet Shield bağlantısı

Ethernet Arduino bağlantısı iki şekilde kullanılabilir:

  • SUNUCU: Arduino'muzun sunucu olarak çalışmasını sağlayabiliriz yani internetten erişilebilir ve Arduino kartımızdan komutlar göndereceğiz. Bu sunucu, örneğin evdeki şeyleri kontrol etmek için birçok şekilde kullanılabilir ve aynı zamanda sensör okumaları gibi bilgileri ve çok daha fazlasını görüntüleyebilir.
  • İSTEMCİ: İstemci temelde sunucuya veri gönderir. Arduino'muzun bir istemci gibi davranması durumunda, verileri sunucuda depolanan veritabanına gönderebilir. Bu tür Arduino istemci modeli, büyük miktarda veriyi işlemenin yanı sıra veri kaydı amacıyla kullanılır.

ARDUINO VE ETHERNET KALKANI BAĞLANTISIArduino Ethernet Shield pin çıkışı

Arduino ve Ethernet shield'ın genel pin konfigürasyonu aşağıda verilmiştir. Bununla birlikte, modelden modele değişebilir, bu nedenle karışıklığı önlemek için bir açıklama da verilir.

  • Arduino iletişimi, ICSP başlığı üzerinden SPI veri yolu kullanılarak yapılır, bu nedenle klasik Arduino modellerinde bu amaçla kullanılan D11, D12, D13 pinleri kullanılır ve Arduino Mega üzerindeki D 50 ve D 52 pinleri aynı amaca hizmet eder.
  • W5100 D için 10 pin kullanılır ve genel amaçlı bir giriş çıkış pinidir. Yani W5100'e gidersek bu pin giriş-çıkış pini olarak kullanılamaz.
  • D 4 pin yine genel amaçlı giriş çıkış pinidir ancak SD kart için kullanılır. SD kart kullanmıyorsak bu pin genel amaçlı giriş çıkış pini olarak kullanılabilir.
  • D 2 pini Arduino kartında INT olarak adlandırılır ve W5100'ün INT pini ile bağlanır.

Donanım SS pini yani pin D 53'ün SPI pini olmasına rağmen W5100 veya SD kartı seçmek için kullanılamadığına, ancak bir çıkış olarak saklanması gerektiğine veya SPI arayüzümüzün çalışmayacağına dair bir ihtiyati tedbir vardır.

Tüm bu noktaları aklımızda tutarak kalkanımızı Arduino kartımızın üzerine monte edebilir ve ardından USB kablosu ile bilgisayarımıza bağlayabiliriz. Eskizimiz (IDE'de yapılan Arduino programı) yüklendiğinde, kartımızı bilgisayardan ayırabilir ve ardından harici bir güç kaynağı kullanarak çalıştırabiliriz.

ARDUINO ETHERNET SHIELD'E ADRES ATAMA

İnternete bağlı her cihaz, ev adreslerimize benzer IP / MAC adresi olarak bilinen bir adrese sahiptir. Tam ev adreslerimiz küresel olarak benzersiz olduğundan, MAC adreslerimiz de benzersizdir. Ağımızı nasıl yapılandıracağımıza bağlı olarak IP adresleri sabitlenebilir veya değiştirilebilir. Bu IP / MAC adreslerinin ayrıntılarına girmeyeceğiz, çünkü endişemiz sadece Arduino'muzun internet bağlantısına sahip olduğunda nasıl bir IP adresi alacağıyla sınırlı. Bu adresler, verilerin başka cihazlardan alınabilmesi veya gönderilebilmesi için ağdaki cihazları tanımlamamıza yardımcı olur.

Cihazları tanımlamak için kullanılan adresler iki türdendir:

  • IP adresi:
  • Mac Adresi

MAC adresi her zaman benzersizdir ve üretim sürecinde her cihaza atanır. Yani cihazımız zaten bir MAC adresine sahip olacak ve bu, panomuza yapıştırılan etikete yazılacaktır. IP adresi ataması için Arduino kartımızı yönlendiricimize bağlayacağız ve yönlendiricimiz otomatik olarak cihazımıza bir IP adresi atayacak ve cihazımız kapatılmadıkça ve kapanana kadar sabitlenecektir. Cihazımız kapatıldıktan sonra aynı IP adresi atama prosedürünü tekrar edeceğimizde farklı bir IP adresi alabilir veya alamayabiliriz. Yönlendiricinin temel amacı, o bölgedeki tüm IP adreslerini yönetmek ve iletişim kurmalarına izin vermektir.

Cihazınıza atanan IP adresini kontrol etmek istiyorsanız, önceden yüklenmiş "DHCP Adres Yazıcısı" taslağını kullanın ve ardından seri monitörü açın. IP adresiniz bunun üzerine yazdırılacaktır.

ARDUINO ETHERNET SHIELD ile yapabilecekleriniz

Ethernet shield kullanılarak yapılan projelerden bazıları aşağıda listelenmiştir:

  • Arduino Ethernet shield kullanan Ethernet tabanlı ev otomasyon sistemi 
  • Sohbet sunucusu
  • Homeotic (Ev otomasyon sistemi)
  • Web istemcisi
  • Otomatik Bahçe
  • Web sunucusu
  • Barometrik basınç web sunucusu
  • Web istemcisi tekrar ediyor
  • UDP gönder dizeyi alır
  • UDP NTP istemcisi
  • DHCP adres yazıcısı
  • Telnet istemcisi
  • DHCP sohbet sunucusu

Umarım bu makaleyi beğenirsiniz. 


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.

HC-05 Bluetooth modülü ile LED kontrolü

 

HC-05 Bluetooth modülü ile LED kontrolü


HC-05 Bluetooth modülü Arduino Bluetooth ile arayüz oluşturmak  , dünyayı meraklandıran bir iletişim şeklidir. Bluetooth artık bir tür iletişim için tasarlanmış her şeyde sağlanıyor. Akıllı telefonlardan otonom araç sistemlerine kadar mevcuttur. Ne kadar çok yönlü olduğunu kanıtlayan ilginç bir geçmişe ve çalışma sistemine sahiptir. Standartları belirleyen, Bluetooth yeteneklerini geliştiren Bluetooth Özel İlgi Grubu tarafından yönetiliyor.

HC-05 Bluetooth modülü, LED kontrol örneği ile arduino ile arayüz oluşturuyor

Tarih ve Adlandırma:

Bluetooth, bir telekom uzmanı Ericsson tarafından 1994 yılında icat edildi. RS-232 kablolarının bir alternatifidir. Intel tarafından desteklenen ve geliştirme ve lisanslama ile ilgilenen yukarıda belirtilen yapı oluşturulmuştur. Standartları kullanmak veya teknoloji ile ürünlerini pazarlamak isteyen herhangi bir firmanın yukarıdaki komitenin üyesi olması gerekmektedir. Organizatör üyeler:

  • Ericsson
  • Intel
  • Microsoft
  • Nokia
  • Lenovo
  • Toshiba
  • Motorola

Bluetooth adı nasıl ortaya çıktı? Bluetooth'u başlatan şirket, Avrupa'nın tarihi ve kültürel-dilbilimsel bir parçası olan İskandinav bölgesinin bir parçası olan İsveç'ten geliyor. İsim, Harald "Bluetooth" Gormsson adlı onuncu yüzyıl Danimarka ve Norveç Kralı'nın bir sıfatından geliyor. Yerel dilde, İngilizce'ye çevrilen Blåtand veya Blåtann, 'Bluetooth' oldu. İletişim standardı fikrinin geldiği, geçmiş çağlarda Vikingleri birleştirmesiyle tanınıyordu, bu, mobil teknolojiler için tek bir birleştirici standart olan bir şeydi. Aslında logo, Kral Harald "Bluetooth" Gormsson'un baş harfleri olan "Hagall" ve "Bjarkan" adlı iki İskandinav runesinin birleşiminden oluşuyor.

Bluetooth Nasıl Çalışır?

Bluetooth, 2,4 GHz'lik standart Endüstriyel, Bilimsel ve Medikal (ISM) kısa menzilli frekans bandında çalışır. Spesifik olarak, koruma bantlarını da içeren 2400–2483,5 MHz frekans bandında çalışır. Temelde veri paketlerinin 79 belirlenmiş Bluetooth kanalı üzerinden frekansa göre bölündüğü çoklu erişim yöntemi olan Frekans Atlamalı Yayılı Spektrum (FHSS) adı verilen bir şey kullanır. Her kanalın bant genişliği 1 MHz'dir. Ancak daha yeni Bluetooth 4.0 standardı 2 MHz'lik adımlar kullanır ve bu nedenle 40 belirlenmiş kanala sahiptir. Uyarlanabilir Frekans atlamalı yayılma spektrumu (AFH) adı verilen bir FHSS varyasyonunu kullanır; bu, teorik olarak girişimli kanalları atlar ve daha iyi iletişim sağlar.

Bluetooth, esasen ana-bağımlı mimariye sahip bir protokoldür, yani bir ana cihaz 7'ye kadar cihazla iletişim kurabilir. Bu, yalnızca 1'e 1 yapılandırmayla çalışabilen önceki kablolu iletişim protokollerine göre büyük bir avantajdı ve öyle. Esasen Kişisel Alan Ağları (PAN'ler) adı verilen yeni bir standart oluşturan Bluetooth, çok daha etkili geçici ağlar ortaya çıkardı ve geleneksel ana bilgisayar tabanlı ağlar olmadan iletişime izin verdi.

HC-05 Bluetooth modülünün Pin Yapılandırması 

Modül çıkışında 6 adet pin bulunmaktadır. Arka tarafa dönük, soldan sağa, bunlar aşağıdaki gibidir:

  1. EN AT komutları için kullanılır. Normal kullanımda bağlanması gerekli değildir.
  2. VCC Güç kaynağı + 5V
  3. GND Güç kaynağı topraklaması
  4. TxD Verici pim
  5. RxD Alma Pimi
  6. STATE Modül bağlı olsun veya olmasın dijital çıkış pabuç atma durumu verir.

Arduino ile arayüz oluşturan HC-05 Bluetooth modülünün Devre Şeması 

Devreyi aşağıdaki şekilde bağlayın:HC-05 Bluetooth modülü arduino ile arayüz oluşturuyor

  • Arduino UNO Rx (D0) ile Bluetooth Tx
  • Arduino UNO Tx (D1) ile Bluetooth Rx
  • Arduino UNO + 5V ile Bluetooth VCC
  • Arduino UNO GND ile Bluetooth GND
  • Şekilde gösterildiği gibi başka bir pimi bağlamanıza gerek yoktur.

NOT: Programı yüklemeden önce Arduino'nun Tx ve Rx pinlerini çıkardığınızda sahilden çıkarın. Programı yükledikten sonra onları tekrar bağlayın. Aksi takdirde bir hata alabilirsiniz.

Android uygulaması:

  • Android Play Store'dan “Arduino Bluetooth Controller” Uygulamasını Android telefonunuza indirin.
  • Uygulamayı açın ve HC-05 Bluetooth ile bağlanın.
  • Terminal modunu seçin.
  • LED'i açmak için 1'i gönderin.
  • LED'i kapatmak için 0 gönderin.
int LED = 13; //led pin

int info = 0;//variable for the information comming from the bluetooth module

int state = 0;//simple variable for displaying the state

int checking = 8;

void setup() {

Serial.begin(9600); //making serial connection

pinMode(LED, OUTPUT);    //defining LED pin

digitalWrite(LED, LOW);  //once the programm starts, it's going to turn of the led, as it can be missleading.
  pinMode(checking, OUTPUT);

}

void loop() {

  int sta = digitalRead(checking);

  //Serial.println(sta);

  if(Serial.available() > 0){  //if there is any information comming from the serial lines...

    info = Serial.read();  

    state = 0;   //...than store it into the "info" variable

  }

  if(info == '1'){                //if it gets the number 1(stored in the info variable...

    digitalWrite(LED, HIGH);    //it's gonna turn the led on(the on board one)

    if(state == 0){              //if the flag is 0, than display that the LED is on and than set that value to 1

      Serial.println("LED ON");  //^^that will prevent the arduino sending words LED ON all the time, only when you change the state

      state = 1;

    }

   }

  else if(info == '0'){

    digitalWrite(LED, LOW);      //else, it's going to turn it off

    if(state == 0){

      Serial.println("LED OFF");//display that the LED is off

      state = 1;

     }

  }

}

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.

Arduino kullanarak Bluetooth ile DC motor hız ve yön kontrolü

 

Arduino kullanarak Bluetooth ile DC motor hız ve yön kontrolü


Arduino kullanarak Bluetooth tabanlı dc motor hız ve yön kontrolü, Bu gömülü sistemler projesinde motorları HC-06 Bluetooth cihazı ve android uygulaması ile kontrol edeceğiz Android uygulamasında düğmeye her basıldığında, Arduino verileri seri iletişim yoluyla alacak ve bu verileri önceden kaydedilmiş verilerle karşılaştıracaktır. Veriler eşleşirse, o fonksiyonun içinde yazılan kod çalıştırılacak ve motorlar buna göre çalışacaktır. Kullanacağımız uygulama bluetermdir . Labview ile dc motor hız kontrolü üzerine bir proje yayınladım . Bluetooth ve Arduino donanımı kullanarak motorları kontrol etme

Bluetooth tabanlı dc motor hız ve yön kontrolü için Gerekli Bileşenler:

Bu proje için gerekli bileşenler aşağıdaki gibidir

  • Arduino Uno
  • HC-06 Bluetooth cihazı
  • L293D Motor Kontrolörü IC
  • DC Motorlar
  • 9V pil
  • Bağlantı telleri
  • Breadboard

Bluetooth tabanlı dc motor hız ve yön kontrolünün Devre ŞemasıBluetooth ve Arduino donanımı kullanarak motorları kontrol etme


Öncelikle L293D IC'yi Arduino ile bağlayacağız. L293D motor kontrolörü IC'nin Arduino ile bağlantıları aşağıdaki gibidir

  • Arduino'nun 5V pini ile L293D IC'nin 1, 9, 16 numaralı pinleri.
  • L293D IC'nin Pin 2'si Giriş pinidir; Arduino'nun 6 numaralı pinine bağlayın.
  • L293D IC'nin 3 numaralı pini motorun bir ucuna ve motorun diğer ucunu L293D'nin 6 numaralı pimine bağlayın.
  • 4, 5, 12 ve 13 numaralı pinler, L293D IC'nin GND pinleridir; bunları Arduino'nun GND'sine bağlayın.
  • L293D IC'nin Pin 7'si Giriş pinidir; Arduino'nun 5 numaralı pinine bağlayın.
  • Pin 8, L293D IC'nin VCC pinidir, bunu akünün pozitif ucuna ve akünün negatif ucunu Toprağa bağlayın.
  • L293D IC'nin Pin 10'u, ikinci motor için Giriş pinidir; Arduino'nun 9 numaralı pinine bağlayın.
  • L293D'nin 11 numaralı pini motorun bir ucuna ve motorun ikinci ucunu L293D'nin 14 numaralı pimine bağlayın.
  • L293D'nin Pin 15'i, ikinci motor için ikinci Giriş pinidir; Arduino'nun 10 numaralı pinine bağlayın.

Daha sonra HC-06 Bluetooth cihazının bağlantılarını Arduino ile yapın. Bluetooth cihazı HC-06'nın Arduino ile bağlantıları aşağıdaki gibidir

  • HC-06'nın VCC'sinden Arduino'nun 5V'una
  • HC-06'nın GND'sinden Arduino'nun GND'sine
  • HC-06'dan Arduino'nun RX pinine TX
  • HC-06'nın RX pinini Arduino'nun TX pinine

Bluetooth tabanlı dc motor hız ve yön kontrolünün çalışması

HC-06 Bluetooth modülü, Arduino ile seri iletişim yoluyla çalışır, bu da Arduino'nun verileri Seri yoluyla gönderip alacağı anlamına gelir.Uygulamadan bilgi göndermek için önce onu yüklememiz gerekir. Şunlar arasından App yükleyebilirsiniz burada . APP'yi kurduktan sonra, onu ve seçeneklerden açın ve Bluetooth modülüne bağlayın. Bluetooth modülüne bağladıktan sonra size mavi boş ekran gösterecektir. Şimdi, oraya '1' yazacağınız zaman, sol motor hareket etmeye başlayacak ve '2' yazacağınız zaman, sağ motor hareket etmeye başlayacak ve benzer şekilde '3' yazarak her iki motor da dönecektir. saat yönünde ve '4' yazıldığında, her iki motor da saat yönünün tersine dönecektir. '0' yazıldığında, her iki motor da hareket etmeyi durduracaktır.

Bluetooth tabanlı dc motor hız ve yön kontrolü kodu

int first_motor_pin1 = 11;

int first_motor_pin2 = 10;

int second_motor_pin1 = 9;

int second_motor_pin2 = 8;

int state;

int flag = 0;       

void setup ( ) {

  Serial.begin (9600);

  pinMode (first_motor_pin1, OUTPUT);

  pinMode (first_motor_pin2, OUTPUT);

  pinMode (second_motor_pin1, OUTPUT);

  pinMode (second_motor_pin2, OUTPUT);

}

void loop ( ) {

if(Serial.available( ) > 0){    

      state = Serial.read( );  

      flag = 0;

    }  

    if (state == '1') {

       digitalWrite (first_motor_pin1, LOW);

      digitalWrite (first_motor_pin2, HIGH);

      digitalWrite (second_motor_pin1, HIGH);

      digitalWrite (second_motor_pin2, HIGH);

          if(flag == 0){

          Serial.println("Left Motor ON");

          flag = 1;

        }

    }  

    else if (state == '2') {

        digitalWrite (first_motor_pin1, HIGH);

      digitalWrite (first_motor_pin2, HIGH);

      digitalWrite (second_motor_pin1, HIGH);

      digitalWrite (second_motor_pin2, LOW);

        if(flag == 0){

          Serial.println("Right Motor ON");

          flag = 1;

    }

    }

    else if (state == '3') {

        digitalWrite (first_motor_pin1, LOW);

      digitalWrite (first_motor_pin2, HIGH);

      digitalWrite (second_motor_pin1, HIGH);

      digitalWrite (second_motor_pin2, LOW);

          if(flag == 0){

          Serial.println("Both Motors Clockwise");

          flag = 1;

        }

    }

     else if (state == '4') {

         digitalWrite (first_motor_pin1, HIGH);

      digitalWrite (first_motor_pin2, LOW);

      digitalWrite (second_motor_pin1, LOW);

      digitalWrite (second_motor_pin2, HIGH);

        if(flag == 0){

          Serial.println("Both Motors Anti-clockwise");

          flag = 1;

        }

    }

    else if (state == '0') {

         digitalWrite (first_motor_pin1, LOW);

      digitalWrite (first_motor_pin2, LOW);

      digitalWrite (second_motor_pin1, LOW);

      digitalWrite (second_motor_pin2, LOW);

        if(flag == 0){

          Serial.println("Both Motors OFF");

          flag = 1;

        }

    }

}

Kod Açıklaması

Öncelikle motorları kontrol etmek için olan koddaki pinleri başlattık. Dört pini başlattık, ikisi birinci motoru kontrol etmek için ve diğer ikisi ikinci motoru kontrol etmek içindir. Başlattığımız durum değişkeni, Bluetooth cihazından gelecek çıkışı depolamak içindir. Başlatılan bayrak değişkeni, dizinin yalnızca durumdan sonra yazdırılmasını sağlar.

int first_motor_pin1 = 11;

int first_motor_pin2 = 10;

int second_motor_pin1 = 9;

int second_motor_pin2 = 8;

int state;

int flag = 0;

Daha sonra setup fonksiyonunda tüm pinleri çıkış pinleri olarak ilan ettik çünkü çıkışı bu pinlerden L293D motor kontrol cihazına vereceğiz. Arduino'dan gelen bu çıktı, L293D motor kontrolörü IC'nin girişi olacaktır.

 pinMode (first_motor_pin1, OUTPUT);

  pinMode (first_motor_pin2, OUTPUT);

  pinMode (second_motor_pin1, OUTPUT);

  pinMode (second_motor_pin2, OUTPUT);

Daha sonra döngü fonksiyonunda verinin mevcut olup olmadığını veya android uygulamasındaki butona basılı olup olmadığını kontrol ettik. Veriler mevcut olacaksa, durum değişkeninde saklanacaktır. Ardından bu verileri kodumuzda önceden kaydedilmiş verilerle karşılaştıracağız. Veriler eşleşirse, o zaman yazılan kod çalıştırılır ve motor buna göre çalışır.

if(Serial.available( ) > 0){    

      state = Serial.read( );  

      flag = 0;

    }  

    if (state == '1') {

       digitalWrite (first_motor_pin1, LOW);

      digitalWrite (first_motor_pin2, HIGH);

      digitalWrite (second_motor_pin1, HIGH);

      digitalWrite (second_motor_pin2, HIGH);

          if(flag == 0){

          Serial.println("Left Motor ON");

          flag = 1;

        }

    }

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

HC-05 Bluetooth Modülü

 

HC-05 Bluetooth Modülü


HC-05, bir UART iletişim protokolü kullanan en iyi Bluetooth cihazıdır. HC-05 Bluetooth, birden çok pimi ve işlevleri nedeniyle diğer tüm Bluetooth cihazlarından özellik bakımından çok farklıdır. Farklı yöntem için birden fazla pimi vardır, bu da onu diğerlerine kıyasla benzersiz kılar. Modül normalde 9600 baud hızında TX ve RX pinleri ile UART seri iletişiminde çalışır. İki yönlü bir iletişim yöntemi sunar ve HC-05 hem slave hem de master olarak hareket edebilir. Bluetooth modülü, sınırlaması nedeniyle yalnızca kısa mesafeli iletişim sağlar, ancak yine de cihazların çoğu, hızı ve güvenliği nedeniyle onunla birlikte gelir. Bu cihazın sınırlaması, herhangi bir tür medyanın aktarılmasına izin vermemesidir.
HC-05 Bluetooth Modülü

HC-05 Pin Yapılandırması

HC-05, farklı işlemleri kontrol etmeye ve göstergeler aracılığıyla durumlarını görüntülemeye yardımcı olan birden fazla pim ve göstergeyle birlikte gelir. Bu pim düzeni şeması , tüm pimlerin göstergelerini sağlar. Bu aynı zamanda her bir pinin işlevselliğini de gösterir.

HC-05 Bluetooth Modülü Pin Yapılandırması

Pinout Diyagramı Açıklama

VCC Pimi

Her cihaz gibi, HC05 Modülleri de çalıştırma gücüne bağlıdır ve VCC pini, harici güç kaynağı ile arayüz oluşturmaya yardımcı olur.

GND Pimi

Mikrodenetleyici ile arayüz oluşturmak için her cihaz için ortak bir zemin gereklidir. Modülün topraklama pimi gereksinimi çözecektir.

TX Pimi

HC-05 Bluetooth modülü, mikro denetleyici ile UART iletişimi aracılığıyla arabirim. TX, modülün UART'daki veri aktarım pini olacaktır.

RX Pimi

Bu pin, UART iletişiminde pini alan veri olacaktır.

Eyalet Pimi

Durum, Bluetooth'un mevcut durumunu gösterecektir. Bluetooth'un başka bir cihazla bağlantısı hakkında denetleyiciye geri bildirim verir.

Etkinleştir / Anahtar Pimi

Etkinleştir / Anahtar pin, HC-05'i diğerlerinden benzersiz kılan tek pintir. Harici bir sinyal kullanarak cihazı veri modu ve komut modu arasında değiştirmeye yardımcı olur. YÜKSEK mantık durumu, cihazı komut modunda aktarır ve DÜŞÜK mantık durumu veri modunda aktarılır. Herhangi bir sinyal olmadan varsayılan cihaz durumu veri modu olacaktır.

Düğme Pimi

Komut ve veri modu durumları, modülde bulunan bir düğme aracılığıyla değiştirilebilir.

LED Pimi

LED, HC-05 Modülünün farklı durumlarını görselleştirmeye yardımcı olacaktır.

HC-05 Bluetooth Modülü Özellikleri

  • HC-05 Bluetooth modülü, daha kısa mesafeler için yüksek hızda iki iletişim yolu sunar.
  • Komut ve veri modu arasında geçiş yapmaya izin veren bir etkinleştirme pinine sahiptir.
  • Cihaz, herhangi bir mikro denetleyici veya sistemle arayüz oluşturması kolay olan UART (seri iletişim) kullanır.
  • Menzili 8-10 metre kadardır ancak yoluna çıkan herhangi bir engelle aşağıdan aşağı sinyal verir.
  • Cihaz, güç vermek için 5V kullanır.
  • Modül hem master hem de slave olarak hareket edebilir.
  • Modül için aşağıdaki baud hızları kullanılabilir:
    • 9600
    • 19200
    • 38400
    • 57600
    • 115200
    • 230400
    • 460800

HC-05 Uygulamaları

  • Çocuklar için uzaktan kumandalı arabaların çoğu HC 06 Bluetooth ile birlikte gelir.
  • Kablosuz kulaklıklarda ve farede, HC05, yüksek hızı nedeniyle kablosuz iletişim için kullanılabilir.
  • IoT'de WiFi yerine bazı cihazlarda, internetteki su baskınını önlemek için iletişimleri için Bluetooth bulunur.

Bu HC-05 Bluetooth Kartı nasıl kullanılır?

HC-05 Bluetooth modülünün kullanımı, seri iletişim arayüzüne sahip her sistem için bile her mikro denetleyici için basittir. Modülün iki seri giriş pini vardır, her ikisi de veri iletişimi için arayüz oluşturur. TX, kontrol cihazının RX ile arayüz oluşturacak ve RX, mikro kontrolörün TX ile arayüz oluşturacaktır. Veriler, baud hızıyla aktarılacaktır. Baud hızı, mikro denetleyici içinde tanımlanacaktır. Veriler, varsayılan değer olan 9600'e aktarılacaktır, ancak bu da değiştirilebilir.

HC-05 Bluetooth Modülü devresi

Harici GPIO pini veya düğmesiyle bağlanan üçüncü bir pim (Anahtar) vardır, ancak bir düğmeyle kontrol edilebilir. Anahtar pinin temel amacı modlar arasında geçiş yapmaktır. Varsayılan mod, Anahtar girişinde herhangi bir giriş olmadığında, cihaz veri modu olarak hareket edecektir. Veri modunda, cihazdan yalnızca veri aktarımı olacaktır. Tuş pimine YÜKSEK giriş sinyalini uyguladıktan sonra, cihaz Komut moduna girecektir.

Komut Modu

Komut modunda bazı kurallar vardır. Komut modu yalnızca 38400 baud hızında iletişim kurar. Komut moduna girdikten sonra, modülün varsayılan ayarı değiştirilebilir. Ardından aşağıdaki komutlar, HC-05 ayarlarının değiştirilmesine yardımcı olacaktır.

  • AT - İletişimi kontrol etmek için
  • AT + NAME = ****** - Cihaz adını ayarlamak / değiştirmek için
  • AT + UART = *****, *, * - Baud hızını, durdurma ve eşlik bitini ayarlamak için
  • + SÜRÜMÜNDE? - Yanıtlayıcının Bluetooth modülünün sürümünü gösterecektir.
  • AT + ORGL - Bu, kaydetme komutunu ayarın yapıldığı modüle ayarlayacaktır.

Master / Slave Modu

Her iki mod da modülün Master ve Slave olarak hareket etmesine yardımcı olur. Varsayılan modda, HC-05 BT bir bağımlı olarak hareket edecektir. Varsayılan bir şifre kullanarak, cihaz bağlanacaktır.

  • Varsayılan Parola: 1234 veya 0000

Modülü usta olarak kullanmak için, komut modunda olması gerekir. Ana mod, her Bluetooth modülünde ortak değildir. HC05 türünün biridir.

Anahtar pimi, dijital bir sinyal aracılığıyla kontrol edilebilen modların değiştirilmesine yardımcı olabilir, ancak modül, modları değiştirmek için kullanılabilen kendi üzerinde bir düğme sunar.

Gösterge Fonksiyonu 

HC-05 BT'nin durumları burada hayati bir role sahiptir. Bir durum pini ve bir LED bunu yapabilir. LED kullanıcılar içindir ve durum pini mikrodenetleyiciler içindir. Durum pini, mikro denetleyiciyi daha fazla talimat gerçekleştirmesi için bilgilendirmek olan bağlantı durumunda sadece yüksek olacaktır. LED'in farklı işlevleri olacaktır ve hepsi şunlardır:

  • Yanıp sönmeye devam ederse, bağlantı için bekliyordur.
  • 2 saniye boyunca bir kez yanıp sönme, modülün Komut Moduna geçtiğini gösterecektir.
  • Bir saniyede iki kez yanıp sönmesi, modülün Veri Moduna geçtiğini gösterecektir.

HC-05 Arduino ile Bluetooth Modülü Örneği

HC05 modülüne sahip birden fazla cihaz türü vardır, ancak günümüzde en yaygın olanı Arduino'dur. Arduino'da, Arduino ile arayüz oluşturmak için özel bir kütüphane yoktur. Arduino ile arayüz oluşturmak için verilen resmi takip edin:

Arduino Uno ile arayüz oluşturan HC-05 Bluetooth Modülü örneği

Arduino Arayüz Programı

Ardından aşağıdaki kodu Arduino kartına yükleyin.

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(2, INPUT);
}
void loop() {
if (Serial.available() > 0 ) {
int data = Serial.read();
Serial.println("INCOMING DATA:");
Serial.print(data);
}
// put your main code here, to run repeatedly:
}

Kod Çalışması

Kod basitçe seri baskıdan gelen verileri kontrol edecek ve bunu Arduino COM ekranına yazdıracaktır.

HC-05 kart arabiriminden sonra, modülün açılması ve ardından mobil veya dizüstü bilgisayarınızdaki başka bir Bluetooth modülüne bağlanması gerekecektir. Bağlantı kullanımı sırasında 1234 veya 0000 şifresini girin. Ardından cep telefonunuz aracılığıyla herhangi bir metin verisini gönderin. Verileri göndermek için bir sürü mobil uygulama var. Ortam dosyasını gönderme durumunda, HC05 desteklemediği için bir hata olabilir. Bu şekilde modül bir slave olarak hareket edecek, ancak aşağıdaki kod kullanılarak Master'a dönüştürülebilir. Değiştirmemiz gereken tek şey, aşağıdaki ifadeden değiştirilebilen baud hızıdır.

void setup() {
// put your setup code here, to run once:
Serial.begin(38400); // just change the baud rate from 9600 to 38400
pinMode(2, INPUT);
}

Cihazın bir ana cihaz olması durumunda, diğer ucun birbiriyle iletişim kurması için aynı baud hızına sahip olması gerekir. HC-05, günümüzde çoğu cihazda en yaygın olanıdır. Bir seferde sadece tek bir cihazla bağlantı kurabilir ve cihazın izni olmadan ana cihazını değiştirmez. Cihaz, yeni yöntemlerin icat edilmesinden sonra da kısa mesafeli iletişimde çok verimlidir. Çok güvenli ve hızlıdır; aynı zamanda diğer cihazlar için görünmezliğe izin verir ve bu da onu çok daha güvenli hale getirir.


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