74HC595 - 74HC165 Kullanımı

Gokrtl

Gökhan Kartal (TeknoDay)
Staff member
Katılım
27 Şubat 2019
Mesajlar
12,195
Bu akşam 74HC595 ve74HC165 entegreleri mıncıklayacağım. Denemeleri arduino üzerinde yapacağım ve sonra asıl amacım olan pico pinlerini çoğaltmak için kullanacağım.

20220426_172035.jpg
 

Ekler

  • 74HC595.pdf
    594 KB · Görüntüleme: 176
  • sn74hc165-ep.pdf
    920.7 KB · Görüntüleme: 206
595:
int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
byte leds = 0;
 
void setup()
{
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT); 
  pinMode(clockPin, OUTPUT);
}
 
void loop()
{
  leds = 0;
  registeraYaz();
  delay(500);
  for (int i = 0; i < 8; i++)
  {
    bitSet(leds, i);
    registeraYaz();
    delay(500);
  }
  for (int i = 8; i >= 0; i--)
{
    bitClear(leds, i);
    registeraYaz();
    delay(500);
  }
}
void registeraYaz()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, leds);
   digitalWrite(latchPin, HIGH);
}
 
74hc595_sketch_updated_bb-888x1024.png

Fritzig'den nefret ediyporum ama öğrendiğim kaynakta fz şeması verilmiş
 
595:
int latchPin = 5;
int clockPin = 6;
int dataPin = 4;
byte leds = 0;
 
void setup()
{
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
}
 
void loop()
{
  leds = 0;
  registeraYaz();
  delay(500);
  for (int i = 0; i < 8; i++)
  {
    bitSet(leds, i);
    registeraYaz();
    delay(500);
  }
  for (int i = 8; i >= 0; i--)
{
    bitClear(leds, i);
    registeraYaz();
    delay(500);
  }
}
void registeraYaz()
{
   digitalWrite(latchPin, LOW);
   shiftOut(dataPin, clockPin, LSBFIRST, leds);
   digitalWrite(latchPin, HIGH);
}
Senin yüzünden tembelliğe alışıcam bu gidişle. :katil2:
 
Bu verdiğim bir sıralı led yakma uygulaması.
İstediğimiz çıkışı ayrı aynı nasıl set edeceğiz?

bitSet(leds, i);
registeraYaz();

i yerine yazacağımız 0-8 arasında çıkışlarımız var 1 yazarsak Q1'i aktif eder sadece 2 yazarsak Q2 aktif olur

Registere yaz voidine baktığımzda önce latch'ı aşşağı alıp ben sana bilgi yazıcam dinle diyoruz daha shiftOUT arduinonun shift registerler için oluşturduğu komut ile 595e komut yolluyoruz
 
Fritz'deki yapıyı kullanamayız. Trafo kademe seçimleri kritik, sistem ilk açıldığında bütün kademelerin OFF olmasını garantilememiz lazım. O yüzden OE sinyalini kullanmamız gerekiyor. Şimdi SER, SRCLK, RCLK ve OE 4 pin yapıyor.

Ama OE yi de kullanarak 3 pinle de işi bitirebiliriz. Bunun için SER data girişi olacak, SRCLK ve RCLK birleştirilecek ve clock girişi olacak, OE ile de yazdığımız bilgiyi dışa aktaracağız. Bu sistemde doğru sonucu almak için verinin iki kere peş peşe yazılması gerekiyor.
 
Fritz'deki yapıyı kullanamayız. Trafo kademe seçimleri kritik, sistem ilk açıldığında bütün kademelerin OFF olmasını garantilememiz lazım. O yüzden OE sinyalini kullanmamız gerekiyor. Şimdi SER, SRCLK, RCLK ve OE 4 pin yapıyor.

Ama OE yi de kullanarak 3 pinle de işi bitirebiliriz. Bunun için SER data girişi olacak, SRCLK ve RCLK birleştirilecek ve clock girişi olacak, OE ile de yazdığımız bilgiyi dışa aktaracağız. Bu sistemde doğru sonucu almak için verinin iki kere peş peşe yazılması gerekiyor.
o zaman bizim OE pinine PULL-UP yapıp picoya bağlamamız lazım çıkış yapacağımız zaman 0'a çekicez.
Bizim gariban kendine gelip kalkış yapana kadar kendi kendine bişeyler yapamaz o zaman 595
 
@taydin abi 595'in beslemesine 1 tane'de germanyum diyot mu koysak az voltaj kıssın ama beslemeyi nano saniye de olsa geç versin OE'den
OE hali hazırdaki 3.3v'hatta pull-up olacak.
595'in beslemesini de aynı hattan germanyum diyot ile yapsak germanyum diyotun oluşturacağı nano saniyelik OE pininin önce HIGH olmasını sağlar karışmaz ortalık
 
@taydin abi 595'in beslemesine 1 tane'de germanyum diyot mu koysak az voltaj kıssın ama beslemeyi nano saniye de olsa geç versin OE'den
OE hali hazırdaki 3.3v'hatta pull-up olacak.
595'in beslemesini de aynı hattan germanyum diyot ile yapsak germanyum diyotun oluşturacağı nano saniyelik OE pininin önce HIGH olmasını sağlar karışmaz ortalık

Voltaj azalınca niye geciksin yav? O gene aynı sürede çıkar dışarı.

Ama şöyle bir diğer seçenek olabilir: Bir tane de SRCLR pini var tüm flip flopları resetleyen. SRCLR eğer sistem açılırken 0 olacak şekilde bir ayarlama yaparsak (reset devresi gibi) o zaman OE ye gerek kalmaz ve Fritz'deki yapı da çalışır.
 
Her iki yapıyı deneyim ilk power verildiğinde pinlerde neler oluyor bakalım.

Eğer OE kullanırsak çıkışların uygun şekilde ya pull down yada pull up yapılması lazım. Pasif konuma çekilecek yani.
 
Voltaj azalınca niye geciksin yav? O gene aynı sürede çıkar dışarı.

Ama şöyle bir diğer seçenek olabilir: Bir tane de SRCLR pini var tüm flip flopları resetleyen. SRCLR eğer sistem açılırken 0 olacak şekilde bir ayarlama yaparsak (reset devresi gibi) o zaman OE ye gerek kalmaz ve Fritz'deki yapı da çalışır.
Yok abi diyotların bir geçirme süresi vardı ya ondan yaralanalım diyorum.
 
Yok abi diyotların bir geçirme süresi vardı ya ondan yaralanalım diyorum.

Diyot çok az geciktirir. İşlemci boot edecek de, arduino sketch'i yükleyecek de, pinleri yaplandıracak da, sonra da değerlerini yazacak. O zamana kadar trafonun sekonderi kısa devreden dolayı koku üretmeye başlamıştır bile.

Sanırım en mantıklısı yukarıda senin kurduğun devreyi kullanmak, ama 595'i de bir reset devresi ile ilk açılışta bilinen (pasif) bir duruma getirmek. Sonra PICO artık göbeğini kaşıya kaşıya sistemi ayağa kaldırır, sonra da 595'e olması gerekeni yazmaya başlar.
 
Diyot çok az geciktirir. İşlemci boot edecek de, arduino sketch'i yükleyecek de, pinleri yaplandıracak da, sonra da değerlerini yazacak. O zamana kadar trafonun sekonderi kısa devreden dolayı koku üretmeye başlamıştır bile.

Sanırım en mantıklısı yukarıda senin kurduğun devreyi kullanmak, ama 595'i de bir reset devresi ile ilk açılışta bilinen (pasif) bir duruma getirmek. Sonra PICO artık göbeğini kaşıya kaşıya sistemi ayağa kaldırır, sonra da 595'e olması gerekeni yazmaya başlar.
Dur abi anlaşamadık.

595.png

Böyle yapıcaz
o 1k'nın önünden de picoya gidicez lazım olduğunda 0a çekecek gariban
 
Şu devre çalışır gibime geliyor. İlk açılışta RC reset devresi çıkışları 0 yapacak. Çıkış 0 olunca da kademe değiştiren TRIAC'ların ateşlememesini temin ettik mi tamamdır.

1650990962046.png
 
Bir tane attiny ile geciktirme devresi yapalım :katil2::katil2:(Gökhan abi duymasın ne varsa camdan fırlatır)
 

Forum istatistikleri

Konular
7,175
Mesajlar
121,831
Üyeler
2,902
Son üye
ssefeate

Son kaynaklar

Son profil mesajları

Freemont2.0 wrote on herbokolog's profile.
nick iniz yakıyor
:D
Freemont2.0 wrote on posta's profile.
Merhabalar :)
az bilgili çok meraklı
Prooffy wrote on semih_s's profile.
Merhaba, sizden DSO2C10 hakkında bilgi rica ettim. Yanıtlarsanız sevinirim...
Unal wrote on taydin's profile.
Timur Bey, Arduino kontrollü bir akü şarj cihazı yapmaya çalışıyorum. Aklımdaki fikri basit bir çizim olarak konu açmıştım. Özellikle sizin fikirlerinizi çok önemsiyorum.
Back
Top