İçindekiler:

74HC164 Shift Register ve Arduino'nuz: 9 Adım
74HC164 Shift Register ve Arduino'nuz: 9 Adım

Video: 74HC164 Shift Register ve Arduino'nuz: 9 Adım

Video: 74HC164 Shift Register ve Arduino'nuz: 9 Adım
Video: Unlocking Shift Registers: Arduino Guide to 74HC164 with 74HC595 Comparison! 2024, Temmuz
Anonim
74HC164 Shift Register ve Arduino'nuz
74HC164 Shift Register ve Arduino'nuz
74HC164 Shift Register ve Arduino'nuz
74HC164 Shift Register ve Arduino'nuz

Vardiya kayıtları dijital mantığın çok önemli bir parçasıdır, paralel ve seri dünyalar arasında yapıştırıcı görevi görürler. Kablo sayısını, pin kullanımını azaltır ve hatta verilerini saklayarak işlemcinizin yükünü hafifletmeye yardımcı olurlar. Farklı boyutlarda, farklı kullanımlar için farklı modellerde ve farklı özelliklerde gelirler. Bugün tartışacağım olan 74HC164 8 bit, seri paralel çıkışlı, kilitsiz, kaydırma yazmacı. Neden? Birincisi, oradaki en temel kaydırma kaydedicilerinden biri, bu da onu öğrenmeyi kolaylaştırıyor, ancak sahip olduğum tek şey o oldu (lol!) Bu talimat, bu çipin nasıl çalıştığını, nasıl kablolanacağını kapsar. ve bazı örnek çizimler ve led devreler içeren bir arduino ile arayüz oluşturun. Umarım hepiniz hoşlanırsınız!

Adım 1: Peki Shift Register Nedir?

Peki Shift Register Nedir?
Peki Shift Register Nedir?

Daha önce de belirtildiği gibi, hepsi farklı tatlarda gelirler ve ayrıca 74HC164 8 bit, paralel çıkışlı, mandalsız, kaydırma yazmaçları kullandığımdan bahsetmiştim, yani tüm bunlar ne anlama geliyor?!? İlk olarak, 74 adı - 74xx mantık ailesinin bir parçası anlamına gelir ve mantığı çok fazla akımı doğrudan kontrol edemediğinden (tüm çip için 16-20ma yaygındır), yalnızca sinyalleri iletir, ancak bu şu anlama gelmez. bu sinyal, daha yüksek bir akım yükünü değiştirebilen bir transistöre gitmiyor. HC, yüksek hızlı bir cmos cihazı anlamına gelir, aşağıdaki bağlantıdan bunu okuyabilirsiniz, ancak bunun hakkında temel olarak bilmeniz gereken şey, bunun düşük olduğudur. güç cihazı ve 2 ila 5 volt arasında çalışacaktır (yani 3.3 volt arduino kullanıyorsanız sorun değil) Ayrıca yüksek hızlarda düzgün çalışabilir bu özel çipin tipik bir 78mhz hızı vardır, ancak yavaş veya hızlı gidebilirsiniz (saçmalamaya başlayana kadar) istediğiniz gibiwww.kpsec.freeuk.com/components/74series.htm164 bu çipin model numarasıdır, wikipediaen.wikipedia.org/wiki/List_of_7400_series_integrated_circuits adresinde büyük bir grafik var Sonraki, 8 bit Bir kaydırma yazmacı flip flop devrelerinden oluşur, bir flip flop 1 bit bellektir, bu ha s 8 (veya 1 bayt bellek). Hafıza olduğu için, kaydı güncellemeniz gerekmiyorsa, onunla "konuşmayı" bırakabilirsiniz ve siz onunla tekrar "konuşana" veya gücü sıfırlayana kadar, bıraktığınız durumda kalacaktır. diğer 7400 mantık serisi kaydırma yazmaçları paralel çıkışta 16 bit seriye kadar gidebilir Bu, arduino'nuzun verileri seri olarak gönderdiği (birbiri ardına kapalı darbelerde) ve kaydırma kaydının her biti doğru çıkış pinine yerleştirdiği anlamına gelir. Bu model sadece 2 kablonun kontrol edilmesini gerektirir, bu nedenle arduino üzerinde 2 dijital pin kullanabilir ve bu 2'yi 8'e daha fazla dijital çıkışa bölebilirsiniz. (örneğin bir NES gamepad) kilitli değil Bu, ihtiyacınız olursa bu çipin çöküşü olabilir. Veriler seri üzerinden bir kaydırma yazmacına girerken ilk çıkış pininde görünür, bir saat darbesi girdiğinde ilk bit 1 basamak kayar, çıkışlarda kaydırma etkisi yaratır, örneğin 00000001 çıkışlarda görünecektir. olarak 101001000100001000001000000100000001Aynı saati paylaşan ve bunu beklemeyen diğer lojik cihazlarla konuşuyorsanız sorun çıkarabilir. Mandallı kaydırmalı yazmaçların fazladan bir hafıza seti vardır, bu nedenle veriler kayıt defterine girildikten sonra bir anahtarı çevirebilir ve çıktıları gösterebilirsiniz, ancak başka bir kablo, yazılım ve takip edilecek şeyler ekler. LED ekranları kontrol ediyoruz, kaydırma efekti o kadar hızlı oluyor ki göremiyorsunuz (çipi ilk açtığınızda hariç) ve bayt kaydırma yazmacına girdikten sonra kaydırma yok artık çubuk grafik tipini, 7 segmenti kontrol edeceğiz ve arduino'da sadece 2 dijital pin (+ güç ve toprak) kullanan bu çip ve yazılımla birlikte 16LED 4x4 nokta vuruşlu bir matris

Adım 2: Temel Kablolama ve Çalıştırma

Temel Kablolama ve Çalıştırma
Temel Kablolama ve Çalıştırma
Temel Kablolama ve Çalıştırma
Temel Kablolama ve Çalıştırma

Kablolama 74HC164, 14 pinli bir çiptir, 4 giriş pinine, 8 çıkış pinine, güç ve toprağa sahiptir, bu yüzden üstten başlayalım. Pin 1 ve 2'nin her ikisi de seri girişlerdir, mantıksal AND geçidi olarak ayarlanmıştır, yani bitin 1 olarak görülebilmesi için her ikisinin de mantıksal olarak yüksek (yani 5 volt) olması gerekir, her ikisinde de düşük bir durum (0 volt) sıfır olarak okunacaktır. Buna gerçekten ihtiyacımız yok ve yazılımda bununla başa çıkmak daha kolay, bu yüzden birini seçin ve V+'a bağlayın, böylece her zaman yüksek okunur. Çipin üzerine sadece bir devre tahtası atlatıcısı yerleştirebildiğiniz için pim 1'den pim 14'e (V+) bir atlama teli kullanmayı seçiyorum. Kalan bir seri giriş (şemalarımda pin 2) arduino'nun dijital pin 2'sine gidecek. 74HC164'ün 3, 4, 5 ve 6 numaralı pinleri çıkışın ilk 4 baytıdırPin 7 toprağa bağlanır Sağa atlama, pin 8 saat pinidir, shift register bir sonraki seri bitin okumaya hazır olduğunu bu şekilde bilir, bu arduino üzerindeki dijital pin 3'e bağlanmalıdır. Pin 9, düşük giderse tüm registeri bir kerede temizlemek içindir, kullanma seçeneğiniz var, ancak bu esrarengiz şeyde hiçbir şey yok, bu yüzden onu V+pin 10, 11 12 ve 13'e bağlayın çıkış pininin son 4 baytı 14 cips gücüdür İşlem Önce seri girişi ayarlamanız gerekir register (arduino üzerindeki dijital pin 2) yüksek veya düşük, sonra saat pinini (dijital pin 3) düşükten yükseğe çevirmeniz gerekir, kaydırma yazmacı seri girişteki verileri okuyacak ve çıkış pinlerini kaydıracaktır. 1, 8 kez tekrarlayın ve tüm 8 çıkışı ayarladınız. Bu, arduino IDE'deki döngüler ve dijital yazma işlemleriyle elle yapılabilir, ancak t onunki çok yaygın bir donanım düzeyinde iletişimdir (SPI) sizin için bunu yapan tek bir işleve sahiptirler. shiftOut(dataPin, clockPin, bitOrder, value) Sadece veri ve saat pinlerinin arduino'ya nereye bağlı olduğunu, verilerin hangi yolla gönderileceğini ve neyin gönderileceğini ve sizin için halledildiğini söyleyin (kullanışlı)

Adım 3: Projeler

Projeler
Projeler

Pekala, yeteri kadar ders ve teori, hadi bu çiple biraz eğlenceli şeyler yapalım! Bu talimatta denenecek 3 proje var, ilk 2'si kolay ve birkaç dakika içinde devre dışı bırakılabilir. Üçüncüsü, 4x4 led matris, led kablolama nedeniyle daha fazla zaman ve düşünce gerektirir. Parça listesi Proje 1: '2 Telli' çubuk grafik LED ekran denetleyicisi 1 * 74HC164 Shift register1 * lehimsiz breadboard1 * arduino veya arduino uyumlu (5v)1 * 330 ohm 1/4 watt direnç 8 * normal çıkış kırmızı LED'ler 12 * jumper teller Proje 2: '2 Wire' 7 segment ekran denetleyicisi 1 * 74HC164 Shift register1 * lehimsiz breadboard1 * arduino veya arduino uyumlu (5v))1 * 330 ohm 1/4 watt direnç 1 * ortak katot yedi segment ekran9 * jumper teller Proje 3: '2 Telli' 4x4 led matrix ekran 1 * 74HC164 Shift register1 * arduino veya arduino uyumlu (5v)4*150 ohm 1 1/4 watt rezistör8 * 1Kohm 1/8 watt rezistör (veya daha büyük)8 * NpN transistör (2n3904 veya daha iyisi)16 * normal çıkışlı kırmızı LED'ler onu inşa etmenin bir yoludur ve 160+ma'yı kaldırabilecek 5 volt gücü düzenler (yapabilirsiniz bir fren lambası gibi tüm LED'leri aynı anda açın)

Adım 4: Proje 1[pt 1]: '2 Wire' Bargraph LED Display Controller Hardware

Proje 1[pt 1]: '2 Telli' Bargraf LED Ekran Kontrol Cihazı Donanımı
Proje 1[pt 1]: '2 Telli' Bargraf LED Ekran Kontrol Cihazı Donanımı
Proje 1[pt 1]: '2 Telli' Bargraf LED Ekran Kontrol Cihazı Donanımı
Proje 1[pt 1]: '2 Telli' Bargraf LED Ekran Kontrol Cihazı Donanımı

Arduino'yu ve shift register'ı şemaya göre bağlayın, zaten breadboard kullanımına hazır 10 segmentli bir bargraf ekranım var ve resimde göreceğiniz şey bu, ancak aynı şeyi tek tek led'ler ile yapabilirsiniz ikinci sayfada Bunların sürücü aygıtları olmadığını, içinden çok küçük miktarda akım geçebilen mantık aygıtları olduklarını belirttim. 8 LED'i çalıştırmak için, devreyi basit tutarken ve shift register'ı pişirmeden, akımı biraz sınırlamamızı gerektirir. LED'ler paralel olarak bağlanır ve güce girmeden önce ortak bir zemini (ortak katot) paylaşır. besleme zemini, tüm LED'lerin kullanabileceği toplam akım miktarını 10ma ile sınırlandırarak 330 ohm'luk bir dirençten geçmeleri gerekir (5 voltta) Bu, LED'leri hasta görünümlü bir durumda bırakır ancak yanar ve böylece bu örnekte, LED'leri uygun akımlarında sürmek için, kaydırma yazmacının daha yüksek bir akım kaynağını açıp kapatabileceği bir transistör takmanız gerekecek (bkz. proje 3) Kaydırma kaydının Veri pininin (pin 2) ihtiyacı var arduino dijital pin # 2'ye bağlanmak için Shift register'ın (pin 8) Saat pininin arduino dijital pin # 3'e bağlanması gerekir

Adım 5: Proje 1[pt 2]: '2 Wire' Bargraph LED Display Controller Software

Proje 1[pt 2]: '2 Telli' Bargraf LED Ekran Denetleyici Yazılımı
Proje 1[pt 2]: '2 Telli' Bargraf LED Ekran Denetleyici Yazılımı
Proje 1[pt 2]: '2 Telli' Bargraf LED Ekran Denetleyici Yazılımı
Proje 1[pt 2]: '2 Telli' Bargraf LED Ekran Denetleyici Yazılımı

Örnek 1: " _164_bas_ex.pde" dosyasını açın arduino IDE'sinin içinde, Bargraf ekranındaki LED'leri açık veya kapalı tanımlamanıza izin veren basit bir çizim İlk 2 satır veri ve saat için kullanacağımız pin numaralarını tanımlar, I const tamsayı üzerinde #define kullanın, hatırlamayı daha kolay buluyorum ve bir kez derlendiğinde birinin veya diğerinin avantajı yok #define data 2#define clock 3 sonraki void kurulum işlevidir, yalnızca bir kez çalışır, bu nedenle arduino döner açık, vardiya kaydını ayarlar ve yapacak başka bir şeyi yoktur. Void setup fonksiyonunun içinde saat ve data pinlerini OUTPUT pinleri olarak ayarlıyoruz, sonra shiftOut fonksiyonunu kullanarak datayı shift register void setup(){ pinMode(clock, OUTPUT); // saat pinini çıkış pinMode'u yap(data, OUTPUT); // veri pinini bir çıkış shiftOut yap(veri, saat, LSBFIRST, B10101010); // bu ikili değeri kaydırma kaydına gönder} shiftOut işlevinde, argümanlarının veri pini olduğunu görebilirsiniz, saat saat pinidir LSBFIRST, ikili notasyonda (Bxxxxxxx) yazarken 7. B'yi geçen eleman En Az Anlamlı Bit'tir İlk önce, bu ilk önce beslenir, böylece 8 bitin tümü beslendiğinde son çıkışta biter B10101010, kaydırma yazmacına gönderilen İkili değerdir ve her tek ışığı açacaktır., farklı kalıpları açmak veya kapatmak için farklı değerlerle oynamayı deneyin ve son olarak boş bir void döngüsü (çünkü kullanmasanız bile bir taneye ihtiyacınız var) void loop(){} // şimdilik boş döngü Örnek 2: ilk 8 satır ilk örneğin ilk 8 satırı ile aynı, aslında diğer projeler için değişmeyecekler, bu nedenle #define data 2#define clock 3void setup(){ pinMode(clock, OUTPUT); // saat pinini çıkış pinMode'u yap(data, OUTPUT); // data pinini bir çıktı yap Ama şimdi void kurulumunda 8 adet for loop var, bu boş bir bayt alıyor ve en soldaki bitten başlayarak ve sağa doğru hareket ederek bir seferde 1 bit kaydırıyor. Bu, en sağdaki bitten başlayıp sola çalıştığımız ilk örnekten geriye doğru, ancak MSBFIRST kullanarak dışarı kaydırma işlevi verileri doğru şekilde gönderirAyrıca for döngüsüne bir gecikme ekleriz, böylece görünür olacak kadar yavaşlar. for(int i = 0; i < 8; ++i) // 0 - 7 için do { shiftOut(veri, saat, MSBFIRST, 1 << i); // bir mantık yüksek (1) değerini i delay(100); // 100ms geciktir, yoksa göremezsin } }void loop(){} // şimdilik boş döngü betiği yükle ve şimdi çubuk grafiğin her bir ışığı birer birer yandığını görmelisiniz

Adım 6: Proje 2: '2 Telli' 7 Segment Ekran Denetleyicisi

Proje 2: '2 Telli' 7 Segment Ekran Denetleyicisi
Proje 2: '2 Telli' 7 Segment Ekran Denetleyicisi
Proje 2: '2 Telli' 7 Segment Ekran Denetleyicisi
Proje 2: '2 Telli' 7 Segment Ekran Denetleyicisi

7 segmentli ekranınızın pin çıkışına bakın (yalnızca ikili bir tane vardı ama sadece yarısını kullanıyorum) ve her segmenti kaydırma kaydındaki doğru bite bağlamak için aşağıdaki çizimi kullanınbit 1 = pin 3bit 2 = pin 4bit 3 = pin 5bit 4 = pin 6bit 5 = pin 10bit 6 = pin 11bit 7 = pin 12bit 8 = pin 13 (ondalık noktayı kullanmak istiyorsanız)Ve ekranın katodu 330ohm direnç üzerinden ve toprak beslemesi için şimdi seven_seg_demo.pde'yi açın arduino'da IDEÖnce data ve saat pinlerini nerede tanımladığımızı görüyorsunuz #define data 2#define clock 3 Sonra tüm karakter kalıplarını ikili olarak ayarlıyoruz, bu oldukça kolay, orta segmente ihtiyacınız varsa aşağıdaki çizime bakın bir tane yazın, sonra üst segmente ihtiyacınız var mı, öyleyse başka bir tane yazın, tüm 8 segmenti kapsayana kadar bunu yapmaya devam edin, en sağdaki bitin (bit 8) her zaman 0 olduğuna dikkat edin, çünkü ondalık basamağı asla açmam puan. bayt sıfır = B01111110;bayt bir = B00000110;bayt iki = B11011010;üç bayt = B11010110;bayt dört = B10100110;bayt beş = B11110100;altı bayt = B11111100;bayt yedi = B01000110;bayt sekiz = B11111110;dokuz bayt = B11110110; void kurulumunda verilerimizi ve saat pinlerimizi void setup(){ pinMode(clock, OUTPUT); // saat pinini çıkış pinMode'u yap(data, OUTPUT); // veri pinini bir çıktı yapın3} sonra void döngüsünde her kalıbı (sayı) görüntülemek için shiftOut kullanırız 1/2 saniye bekleyin ve sonraki 0'dan 9'u görüntüleyin, çünkü bu void döngü işlevinde yapıldığından sayılacaktır 0-9 ve sonsuza kadar tekrarlayın. void loop(){ shiftOut(veri, saat, LSBFIRST, sıfır); gecikme(500); shiftOut(veri, saat, LSBFIRST, bir); gecikme(500); shiftOut(veri, saat, LSBFIRST, iki); gecikme(500); shiftOut(veri, saat, LSBFIRST, üç); gecikme(500); shiftOut(veri, saat, LSBFIRST, dört); gecikme(500); shiftOut(veri, saat, LSBFIRST, beş); gecikme(500); shiftOut(veri, saat, LSBFIRST, altı); gecikme(500); shiftOut(veri, saat, LSBFIRST, yedi); gecikme(500); shiftOut(veri, saat, LSBFIRST, sekiz); gecikme(500); shiftOut(veri, saat, LSBFIRST, dokuz); gecikme(500);}

Adım 7: Proje 3[pt 1]: '2 Telli' 4x4 Led Matris Ekran

Proje 3[pt 1]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 1]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 1]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 1]: '2 Telli' 4x4 Led Matris Ekran

4x4 LED matrix projesi biraz daha karmaşık, ancak neredeyse tamamı yapım aşamasında, benimkini perfboard üzerinde lehimlemeyi seçiyorum, ancak bir breadboard üzerinde çoğaltmak mümkün olmalı, sadece çok daha fazla aralıklı. Devreler de kaydırma yazmacının doğrudan led'leri sürmemesi, bunun yerine kaydırma yazmacı çıkışlarının 1Kohm'luk bir direnç üzerinden bir NpN transistörünün tabanına gönderilmesi, bitin çıkışı yüksek olduğunda yeterli akım ve voltajın geçmesine izin vermesi bakımından farklılık gösterir. kollektör ve emiter arasındaki bağlantıyı değiştirmek için transistör, kollektörler "sağlam" regüleli 5 volta bağlanır. Transistörlerin emitörleri 150 ohm'luk dirençlere ve dirençler arka arkaya 4 ledin anodlarına bağlanır ve satırı 20ma ile sınırlar, ancak ekranda görüntü çizerken bir seferde yalnızca 1 led yanar ve bu nedenle tam parlaklığa yakındır (neredeyse çünkü tüm görüntüyü oluşturmak için gerçekten hızlı açılıp kapanırlar) 4 satır ve 4 sütunlar, her sıra bir direnç ve bir transistör alır, her sütunda LED'in katotları birbirine bağlanır, tabanı aynı zamanda kaydırma yazmacı tarafından kontrol edilen bir transistörün kolektörüne koştu ve nihayet toprağa çıktı. Şematik büyük versiyonu www.instructables.com/files/orig/F7J/52X0/G1ZGOSRQ/F7J52X0G1ZGOSRQ.jpg

Adım 8: Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran

Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran
Proje 3[pt 2]: '2 Telli' 4x4 Led Matris Ekran

Kaydırmalı yazmaç, LED'lerin hem anotlarını hem de katotlarını YX formatında kontrol eder, aşağıdaki bit 1 = sütun 1 (en sağdaki) bit 2 = sütun 2 bit 3 = sütun 3 bit 4 = sütun 4 bit 5 = satır 1 (en üstteki) bit'e bakın 6 = satır 2bit 7 = satır 3bit 8 = satır 4Bir görüntünün grafik kağıdına 4x4'lük bir kare çizmesini ve görüntülenmesini istediklerinizi doldurmasını sağlamak için, daha sonra bir YX tablosu yapın. Aşağıda bir benzetme için bir eşleme göreceksiniz, ayrıca 4x4 "pikselde yapılabilecek en iyi şey" Doldurulan her bölüm için hangi sütunda (Y) olduğunu, sonra hangi satırda (X) olduğunu yazıyorum Şimdi aç arduino IDE'deki _4x4.pde dosyasında eski 2 arkadaşımızı göreceksiniz #define data 2#define clock 3 ardından bir dizi tamsayı int img = {1, 1, 4, 1, 1, 3, 4, 3, 2, 4, 3, 4}; YX koordinatlarımın sadece bir listesine bakarsanız, bu değerleri elle dönüştürmek büyük bir acı olurdu ve bir bilgisayarımız var… bırakın yapsın! saat ve veri pinlerimiz OUTPUTS void setup(){ pinMode(clock, OUTPUT); // saat pinini çıkış pinMode'u yap(data, OUTPUT); // veri pinini bir çıktı yapın3} Ve kafa karıştırıcı görünen bir void döngüsü, her şeyi başlatmak için bazı yerel değişkenleri void loop(){ int Y; int X; bayt çıkışı; Sonra bir for döngüsü, bu döngünün img dizisindeki girişlerin miktarı kadar uzun olması gerekiyor, bu görüntü için sadece 6 piksel kullandım, bu yüzden 12 YX koordinatı oluşturuyor. i +=2 kullanarak diğer tüm sayıları atlamasını sağlarım, çünkü döngü başına 2 koordinat okuruz for(int i = 0; i < 12; i += 2) // img dizisindeki nokta sayısı, bu durumda 12 { Şimdi dizideki noktasındaki Y girişini okuyoruz ve değerinden bir çıkarıyoruz, çünkü baytlar birden başlamaz, sıfırdan başlarlar, ancak 1'den saydık // ilk YX kablo çiftini al Y = (img - 1); // bit sayısı 0'dan başladığı için bir çıkar Daha sonra dizideki [i + 1]'deki X girişini okuruz ve aynı nedenden dolayı değerinden bir çıkarırız X = (img[i+1] - 1); Pikselin YX değerlerine sahip olduktan sonra, biraz bitsel veya matematik yapıyoruz ve sola kaydırıyoruz. Önce X değerini okumamız gerekiyor ve değeri ne olursa olsun onu o kadar basamak + 4 sola kaydırıyoruz yani X 4 ise ve 4 ekleyin, bit 8 (MSB), grafiğe tekrar bakarak …bit 1 = sütun 1 (en sağdaki)bit 2 = sütun 2bit 3 = sütun 3bit 4 = sütun 4bit 5 = satır 1 (en üstteki)bit 6 = satır 2bit 7 = satır 3bit 8 = satır 4Bit 8 son satırdırSonraki Y değeri de sola kaydırılır, bu sefer sadece kendisi tarafından, üzerine hiçbir şey eklenmez. Son olarak ikisi birlikte 2 yarım bayt yerine 1 bayta dönüştürülür (nibbles), bitsel veya (| sembolü) kullanmak iki bayt alır ve temel olarak bunları birbirine ekler, X = 10000000Y = 00000001--------------------VEYA = varsayalım 10000001sıra 4 sütun 1 dışarı = 1 << (X + 4) | 1 << Y; Ve son olarak, mevcut resmi görüntülemek için shiftOut ve dizide daha fazla veri kalmayana kadar bunu yapmaya devam edin … verileri sola kaydırdığımızdan ve MSB'nin son çıkış pininde olmasına ihtiyacımız olduğundan, bir anı geciktirin ve sonsuza kadar döngü yapın vardiya kaydının ilk önce onu gönderir. shiftOut(veri, saat, MSBFIRST, çıkış); // baytı kayıt gecikmemize (1) kaydırıyoruz; // biraz geciktir, böylece gözlerinde bir ışık noktası bırakma şansı olur. ve nihayet rastgele bir ışıltı yapıcı

9. Adım: Sonuç

Çözüm
Çözüm
Çözüm
Çözüm
Çözüm
Çözüm

Tüm bunların ötesinde, oldukça kullanışlı küçük bir çip ve çöpe giden eski bir elektronik parçadan çıkardığım için memnunum. Ekran sistemlerinin yanı sıra başka şeyler için de kullanılabilir, ancak herkes ışıkları ve görmenin anında geri bildirimini sever. olup bitenler benim gibi görsel düşünürler için son derece yararlı. Ayrıca lütfen kodumu bağışlayın, Ekim ayının üçüncü haftasından beri sadece arduinoya sahibim ve oldukça büyük bir hızlandırılmış kurs oldu. Ama sistemle ilgili harika olan şey bu, onunla oturup çalışırsanız, 8 bitlik bir mikro denetleyiciyle dünyayı kontrol etmeyi oldukça kolaylaştıran zarif özelliklerle dolu. Her zaman olduğu gibi, sorular ve yorumlar memnuniyetle karşılanır ve teşekkürler oku, umarım çok şey öğrenmişsindir

Önerilen: