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.
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ı
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ı
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ı
#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);
}