Robotik Kodlama

Robotik Kodlama
Ana Sayfa

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

portgenişletme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
portgenişletme etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

29 Nisan 2021 Perşembe

74HC595N Kullanarak Arduino'nun Çıkış Portlarını Genişletmek

 

74HC595N Kullanarak Arduino'nun Çıkış Portlarını Genişletin

Bu makale, Arduino Uno veya Arduino Mega ile 74HC595N kaydıran yazmaç kullanarak dijital çıktıların kolay ve büyük ölçüde nasıl genişletileceği hakkındadır Bazen birçok elektriksel ve gömülü sistem projesinde , arduinoya daha fazla sensör veya diğer çıkış cihazlarını bağlama ve çalıştırma ihtiyacı vardır, ancak Arduino kartında bu tür bir sorunu önlemek ve çıktı sayısını artırmak için daha fazla çıkış pini yoktur. seri giriş ve paralel çıkış için kaydıran yazmacı IC74HC595N yardımıyla bağlantı noktaları. Yani bu yazıda, Arduino'nun çıkış portlarını nasıl artıracağınızı veya genişleteceğinizi öğreneceksiniz .basit bir vardiya kaydı kullanarak. Bu kaydırma yazmacı IC74HC595N, Arduino'dan üç giriş pinine ihtiyaç duyar ve sekiz çıkış pini verir, bu genişletilmiş pinler yalnızca çıkış portları olarak kullanılır ve yalnızca herhangi bir LCD ekran, Buzzers , hoparlörler, LED'ler vb. Gibi çıkış cihazlarını çalıştırır veya bağlar . Arduino ile birden fazla yedi segment ekranı arayüzlemek istiyorsanız, kesinlikle daha az çıkış portu sorunuyla karşılaşacaksınız. Bu nedenle, çıkış pinlerinden düşme sorununu çözmek için bu yöntemi kolayca kullanabilirsiniz.

74HC595N Kaydırma yazmacının tanıtımı 

IC74HC595N, 8 bitlik bir depolama yazmacıdır ve ayrıca 8 bit seri girişli 8 bitlik kaydırma yazmacı ve 8 bit seri veya paralel çıkışlarda ayrıca 3 durum çıkışlı depolama yazmacına sahip 100MHz kaydırma çıkış frekansı vardır. Verilerin kayan yazmacıya seri şekilde yazıldığı ve daha sonra depolama yazmacına kilitlendiği ve bu yazmaç kontrollü 8-çıkışlı hatlara sahiptir.

Kaydırma yazmacı IC74HC595N, 8 bellek konumu olarak düşünülebilecek olanı tutar, her biri 1 veya 0 olabilir. Bu değerleri açık veya kapalı olarak belirlemek için, 1 0r 0, ardından, üzerindeki Veri ve Saat bağlantı noktalarını kullanarak verileri besleyin. IC kaydırma yazmacı çipi. Saat pimi, veri pimi aktif yüksekse, her bir darbenin zamanından 8 darbe almalıdır, ardından 1, kaydırma yazmacına doğru itilir, aksi takdirde 0 olur. mandal kaydı. Bu önemlidir, aksi takdirde yanlış çıkış cihazları, veri kaydıran yazmacıya yüklenirken başlayacaktır. Çip ayrıca, çıkışları bir kerede etkinleştirmek veya devre dışı bırakmak için kullanılan bir OE çıkışı etkinleştirme pini. Daha sonra bunu Arduino'nun PWM pinine takın ve analogWrite programında bir komut kullanarak çıkış portuna bağlı çıkış cihazlarının parlaklığını kontrol edin. Pim düşük aktif olduğunda, onu GND'ye bağlayın.

Uygulama: Gömülü Tasarım ve Geliştirme, saat ve zamanlama, Tüketici Elektroniği

Arduino'nun çıkış portlarını genişletme işlemi 

Arduino veriyi birleştirdiğinde ve verileri seri formattaki cihaza ve bu seri veriyi kaydıran yazmaç IC 74HC595N'ye ilettiğinde. Ve bu kaydırılmış seri veriler, kaydırma yazmacı IC'nin çıkış pinlerinde mevcuttur.Arduino'nun çıkış portlarını shift register ile genişletin

Arduino'nun çıkış bağlantı noktalarının nasıl artırılacağına dair örnek 

Şimdi basit bir kaydıran yazmaç kullanarak Arduino'nun çıkış portlarının nasıl genişletileceğini bir örnekle görelim. Arduino ile sekiz adet ışık yayan diyotu bir shift register üzerinden bağlayacağız ve bu ledleri Arduino ve shift register yardımıyla kontrol etmeye çalışacağız. Bu örnekte, çıkış cihazı olarak sekiz LED alalım ve IC 74HC595N kaydırma yazmacının çıkış pinlerine bağlanalım.

Çıkış portlarına bağlı 8 LED'i kontrol etmek üzere olan kodla başlayalım.

 // these pins are define in the datasheet of shift register IC
Int DS_pin = 8 ;           // means DS pin of IC connected to the pin 8 of Arduino

Int STCP_pin = 9 ;      // means STCP pin of IC connected to the pin 9 of Arduino

Int SHCP_pin = 10 :    // means SHCP pin of IC connected to the pin 10 of Arduino

Void setup () {

pinMode (DS_pin, OUTPUT) ;             // DS pin  are set to be outputs

pinMode (STCP_pin, OUTPUT) ;          // STCP pin  are set to be outputs

pinMode (SHCP_pin, OUTPUT) ;          // SHCP pin  are set to be outputs

writereg () ;                           // declare function

}

Boolean registers [8] ;         // registers array

Void writereg ()

{

digitalWrite (SHCP_pin, LOW) ;        // start initialization the registers one by one

for (int i = 7; i>=0; i--)                        // insert register value in the reverse order

{                                // shift in the value that we have shored into the registers [8] array one by one

digitalWrite ( SHCP_pin, LOW ) ;   

digitalWrite ( DS_pin, registers[i] ) ;     // write the value of register

digitalWrite ( STCP_pin, HIGH ) ;        // Creating LOW to HIGH transition here      

}

digitalWrite ( SHCP_pin, HIGH ) ;

}

Void loop ()

{

For ( int i=0; i<9; i++)                   // within the for loop declare register high one by one

{

registers [i] = High ;

Delay (100) ;                                   // time delay

writereg ( ) ;

}

For ( int i=8; i>0; i++)                       // for reverse the leds

{

registers[i] = low ;                             // set to low

Delay (100) ;                                      // time delay

writereg ( ) ;

}

}                                                        // end the program

Şimdi, gerçekte neler olduğunu açıklayan aşağıdaki devreye bir göz atın. Sağda kaydıran yazmaç IC 74HC595N ve Arduino'dan gelen bağlantı. IC'nin GND ve VCC'si Arduino Board ile bağlanmalıdır. IC'nin MR pini, 5v VCC'ye yüksek ortalama bağlantıda olmalıdır. IC'nin veri sayfasında 13 OE numaralı pin inverter pinidir, bu nedenle topraklanmalıdır. Arduino'nun çıkış portlarını shift register ile genişletin

Şekil 1. Donanım Devre Şeması

Arduino'nun 8,9,10 pinleri IC'nin DS, STCP, SHCP pinlerine bağlıdır, Arduino'nun bu üç pini bir DataPin, ClockPin ve LatchPin'dir.

  • DataPin: Seri verilerin, DataPin'den daha fazla iletilmesi gerektiğinde.
  • LatchPin: Geçiş yapma ihtiyacı olduğunda
  • ClockPin : vardiya verisine ihtiyaç duyulduğunda, bir saat darbesi üretmesi için
  • Ayrıca çıkış cihazı 1 ila 7 arasında IC pimlere bağlı ve 8 LED inci LED sayısı 15 olan Q0 ucuna bağlanmalıdır.

Arduino'nun çıkış portlarını artırmak için başka bir yöntem 

Arduino'dan daha fazla çıkış portu almanın başka bir yolu var. Şimdi Arduino kartında bulunan Analog pinleri, yukarıdaki yöntemden daha kolay olan dijital çıkış portları olarak düşünün. A0'dan A5'e kadar olan analog pinlerin 14, 15, 16, 17, 18, 19 numaralı dijital çıkış pinleri gibi davrandığını varsayalım.

Misal:

digitalWrite (15, DÜŞÜK)

Yukarıya düşük A1 pinini yazın.


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.