Dersler

View on GitHub

EEM-251 İleri Düzey Programlama

2022-2023 Güz Dönemi Ders 5

8-Bit seri input seri/paralel output kaydırma yazmacı

74HC595 datasheeti indirmek için tıklayınız.

image

int cikis_clk = 6;
int kaydirma_clk = 7;
int dataPin = 5;
int i=0;
void setup() 
{
  pinMode(cikis_clk, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(kaydirma_clk, OUTPUT);
}
int sayac=0;
int basamak;
void loop() 
{ 
  digitalWrite(cikis_clk, LOW);
  for(int i=7;i>=0;i--){
    digitalWrite(kaydirma_clk,LOW);
    basamak=bitRead(sayac,i);
    digitalWrite(dataPin,basamak);
    digitalWrite(kaydirma_clk,HIGH);
  }
  digitalWrite(cikis_clk, HIGH);

  sayac++;
  delay(1000);

}
int cikis_clk = 6;
int kaydirma_clk = 7;
int dataPin = 5;
int i=0;
void setup() 
{
  pinMode(cikis_clk, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(kaydirma_clk, OUTPUT);
}
int sayac=1;
int basamak;
void loop() 
{ 
  digitalWrite(cikis_clk, LOW);
  for(int i=7;i>=0;i--){
    digitalWrite(kaydirma_clk,LOW);
    basamak=bitRead(sayac,i);
    digitalWrite(dataPin,basamak);
    digitalWrite(kaydirma_clk,HIGH);
  }
  digitalWrite(cikis_clk, HIGH);
  sayac=sayac*2;
  if(sayac==256)
    sayac=1;
  delay(1000);
}
int cikis_clk = 6;
int kaydirma_clk = 7;
int dataPin = 5;
int i=0;
void setup() 
{
  pinMode(cikis_clk, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(kaydirma_clk, OUTPUT);
}
int sayac=0;
int basamak;
void loop() 
{ 
  digitalWrite(cikis_clk, LOW);
  digitalWrite(kaydirma_clk,LOW);
  if(sayac%8==0)
    digitalWrite(dataPin,HIGH);
  else
    digitalWrite(dataPin,LOW); 
  digitalWrite(kaydirma_clk,HIGH);
  digitalWrite(cikis_clk, HIGH);
  sayac++;
  delay(1000);
}
int cikis_clk = 6;
int kaydirma_clk = 7;
int dataPin = 5;
int i=0; 
void setup() 
{
  pinMode(cikis_clk, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(kaydirma_clk, OUTPUT);
}
byte sayac=0;
void loop() 
{
  digitalWrite(cikis_clk, LOW);
  shiftOut(dataPin, kaydirma_clk, MSBFIRST, sayac);
  digitalWrite(cikis_clk, HIGH); 
  sayac++;
  delay(1000);
}
int cikis_clk = 6;
int kaydirma_clk = 7;
int dataPin = 5;
int i=0;
void setup() 
{
  pinMode(cikis_clk, OUTPUT);
  pinMode(dataPin, OUTPUT);  
  pinMode(kaydirma_clk, OUTPUT);
}
byte sayac=0;
int yon = 1;
int veri;
void loop() 
{
  digitalWrite(cikis_clk, LOW);
  shiftOut(dataPin, kaydirma_clk, MSBFIRST, 1<<sayac);
  digitalWrite(cikis_clk, HIGH); 
  if (sayac==7)
    yon=-1;
  else if(sayac==0)
    yon=1; 
  sayac=sayac+yon;
  delay(1000);
}

İki kaydırma yazmacının birlikte kullanılması

image

int latchPin = 12;  
int clockPin = 11;     
int dataPin = 13;  
byte ikinci_byte = 0;
byte birinci_byte = 0;
unsigned long i = 1;
void setup()
{   
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
  pinMode(clockPin, OUTPUT);   
}
void loop()
{
  birinci_byte = i;
  ikinci_byte = i >> 8;
  digitalWrite(latchPin, LOW);
  shiftOut(dataPin,clockPin, MSBFIRST, ikinci_byte);
  shiftOut(dataPin,clockPin, MSBFIRST, birinci_byte);
  digitalWrite(latchPin, HIGH);
  i = i << 1;
  if(i >  32768 ) 
    i=1;
    delay(300);
}
int latchPin = 12;  
int clockPin = 11;     
int dataPin = 13;  
byte ikinci_byte = 0;
byte birinci_byte = 0;
unsigned long i = 1;
void setup()
{   
    pinMode(latchPin, OUTPUT);
    pinMode(dataPin, OUTPUT);
    pinMode(clockPin, OUTPUT);   
}
void loop()
{
    birinci_byte = i;
    ikinci_byte = i >> 8;
    digitalWrite(latchPin, LOW);
    shiftOut(dataPin,clockPin, MSBFIRST, ikinci_byte);
    shiftOut(dataPin,clockPin, MSBFIRST, birinci_byte);
    digitalWrite(latchPin, HIGH);
    i = i << 1;
    if(i == 1UL<<16 ) 
      i=1;
    delay(300);
}

RGB LED uygulamaları

image

void setup()
{
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}
int sayac=0;
void loop()
{
  for(int i=0;i<3;i++)
    digitalWrite(9+i,bitRead(sayac,i));    
  delay(1000); 
  sayac++;
}
void setup()
{
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
}
int sayac=0;
void loop()
{
  sayac=random(8);
  for(int i=0;i<3;i++)
    digitalWrite(9+i,bitRead(sayac,i));    
  delay(1000);   
}

LCD display kullanımı

image

#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  lcd.begin(16, 2);
  lcd.print("hello, world!");
}
void loop() {
  lcd.setCursor(0, 1);
  lcd.print(millis() / 1000);
  delay(100);
}
#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  lcd.begin(16, 2);
}
void loop() {
  lcd.print(millis() / 1000);
  delay(100);
}
#include <LiquidCrystal.h>
const int rs = 2, en = 3, d4 = 4, d5 = 5, d6 = 6, d7 = 7;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
  lcd.begin(16, 2);
}
void loop() {  
  lcd.setCursor(0, 1);
  lcd.print("Zaman: ");  
  if(millis() / 100 < 10)
    lcd.setCursor(9, 1);  
  else if(millis() / 100 < 100)
    lcd.setCursor(8, 1);
  else if(millis() / 100 < 1000)
    lcd.setCursor(7, 1);
  lcd.print(millis() / 100);
    delay(50);
}