OUTPUT (LED ÖRNEKLERİ)
void setup(){
pinMode(13,OUTPUT); //pin13'ü çıkış olarak ayarladık
}
void loop(){
digitalWrite(13,HIGH); //pin 13'den 5V çıkış sağladık yani lambayı çalışır hale getirdik
delay(1000); //en son işlemleri 1000 mili saniye yani 1 saniye bekletmiş oluyoruz
digitalWrite(13,LOW); //pin 13'den voltaj çıkışını durdurmuş olduk yani lambayı söndürdük
delay(1000);
}
2) Şimdi de pin 8'e bağlı led'i bir saniye aralıklarla yakıp, söndürelim ve bu sayede ilk devremizi kurmuş olacağız. (R1=220 ohm) Dijital pinine bağlanan cihazları direk pin numarası ile yönetebiliriz.
void setup(){
pinMode(8,OUTPUT); //pin 8'i çıkış olarak ayarladık
}
void loop(){
digitalWrite(8,HIGH); //pin 8'den 5V çıkış sağladık
delay(1000); //en son işlemleri 1000 milisaniye yani 1 saniye bekletmiş oluyoruz
digitalWrite(8,LOW); //pin 8'den voltaj çıkışını durdurmuş olduk
delay(1000);
}
3) Aynı programı bu kezde pin numarası ile değilde kullanacağımız pine verdiğimiz isim ile çalıştıralım ve pin'e isim atama işlemini de öğrenmiş olalım.
int led=8; //pin 8'e led isim vermiş bulunmaktayız. Bundan sonra 8 diye değilde led ismi ile çağıracağız.
void setup(){
pinMode(led,OUTPUT); // önceden 8 diye çağırdığımız pin'i artık led ismi ile çağırıyoruz
}
void loop(){
digitalWrite(led,HIGH);
delay(1000);
digitalWrite(led,LOW);
delay(1000);
}
const int led = 8;
int ledDurumu = LOW;
long gecenZaman = 0; // gecenZaman isimli değişken oluşturmuş olduk ve buna 0 değerini atadık
int ledDurumu = LOW;
long gecenZaman = 0; // gecenZaman isimli değişken oluşturmuş olduk ve buna 0 değerini atadık
long sure = 1000;// sure isimli değişken oluşturmuş olduk ve buna 1000 değerini atadık
void setup(){
pinMode(led,OUTPUT);
}
void loop(){
unsigned long gecerliZaman = millis(); // gecerliZaman isimli değişkene o ana kadar gecen süre bilgisini atamak
if (gecerliZaman - gecenZaman > sure){
gecenZaman = gecerliZaman;
if(ledDurumu == LOW) ledDurumu = HIGH;
else ledDurumu = LOW;
digitalWrite(led,ledDurumu);
}
}
5) Basit trafik lambası her gün sokakta gördüğümüz trafik ışıklarını basit bir şekilde çalışma mantığını öğrenmiş olacağız. Tabi sizler bununla yetinmeyiz daha karmaşık devreler kurup deneyin. ( 3 adet 220 ohm direnç ve 3 adet led )
int sari = 6;
int yesil = 7;
void setup(){
pinMode(kirmizi,OUTPUT);
pinMode(sari,OUTPUT);
pinMode(yesil,OUTPUT);
}
void loop(){
digitalWrite(kirmizi,HIGH);
digitalWrite(sari,LOW);
digitalWrite(yesil,LOW);
delay(5000);
digitalWrite(kirmizi,LOW);
digitalWrite(sari,HIGH);
digitalWrite(yesil,LOW);
delay(500);
digitalWrite(kirmizi,LOW);
digitalWrite(sari,LOW);
digitalWrite(yesil,HIGH);
delay(3000);
}
6) Yürüyen led bu devremizde de digital bağlantı pinlerine bağladığımız ledleri sırayla yakmaya çalışacağız.
void setup(){
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
}
void loop(){
digitalWrite(0,HIGH);
delay(1000);
digitalWrite(0,LOW);
digitalWrite(1,HIGH);
delay(1000);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
delay(1000);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
delay(1000);
digitalWrite(3,LOW);
digitalWrite(4,HIGH);
delay(1000);
digitalWrite(4,LOW);
digitalWrite(5,HIGH);
delay(1000);
digitalWrite(5,LOW);
digitalWrite(6,HIGH);
delay(1000);
digitalWrite(6,LOW);
digitalWrite(7,HIGH);
delay(1000);
digitalWrite(7,LOW);
}
7) Şimdi de yukarıda yaptığımız devreyi daha kolay ve kısa kodlar ile yazalım
void setup() {
for(int i=0; i<=7; i++){
pinMode(i,OUTPUT);
}
}
void loop() {
for(int i =0; i<=7; i++){
digitalWrite(i,HIGH);
delay(1000);
digitalWrite(i,LOW);
}
}
8) Şimdi de yukarıda yaptığımız devreyi daha farklı kodlar ile yazalım. Bu koda dikkat edin ileride çok işinize yarayacağından çok eminim ve farklı led yakma uygulamalarını deneyin. Binary sayı nedir, nasıl yazılır nasıl, hesaplanır araştırın ve öğrenin.
void setup() {
DDRD = B11111111; // 1 -> ÇIKIŞ ( output ) , 0 -> GİRİŞ ( input )
}
void loop() {
PORTD = B00000001; // 1 -> HIGH , 0 -> LOW dijital 0 bacağı açık diğerleri kapalı
delay(1000);
PORTD = B00000010; // dijital 1 pini açık diğerleri kapalı
delay(1000);
PORTD = B00000100;// dijital 2 pini açık diğerleri kapalı
delay(1000);
PORTD = B00001000;// dijital 3 pini açık diğerleri kapalı
delay(1000);
PORTD = B00010000;// dijital 4 pini açık diğerleri kapalı
delay(1000);
PORTD = B00100000;// dijital 5 pini açık diğerleri kapalı
delay(1000);
PORTD = B01000000;// dijital 6 pini açık diğerleri kapalı
delay(1000);
PORTD = B10000000;// dijital 7 pini açık diğerleri kapalı
delay(1000);
}
9) Şimdi de yukarıda yaptığımız devreyi daha farklı kodlar ile yazdım. Buradaki kodlara dikkat edin ileride çok işinize yarayacağından çok eminim ve farklı led yakma uygulamalarını da deneyin. Hexadecimal sayı nedir, nasıl yazılır nasıl, hesaplanır araştırın ve öğrenin.
void setup() {
DDRD = 0xFF;
}
void loop() {
PORTD = 0x01;
delay(1000);
PORTD = 0x02;
delay(1000);
PORTD = 0x04;
delay(1000);
PORTD = 0x08;
delay(1000);
PORTD = 0x10;
delay(1000);
PORTD = 0x20;
delay(1000);
PORTD = 0x40;
delay(1000);
PORTD = 0x80;
delay(1000);
}
10) Şimdi de yukarıda yaptığımız devreyi daha farklı kodlar ile deneyelim. Buradaki kodlara dikkat edin ileride çok işinize yarayacağından çok eminim ve farklı led yakma uygulamalarını da deneyin. Özellikle buradaki amacım dizi ( array ) nasıl kullanılır onu öğretmeye çalıştım.
int dizi[]={ 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80 };
void setup() {
DDRD = 0xFF;
}
void loop() {
for( int i = 0; i <= 7; i++ ){
PORTD = dizi[i];
delay(1000);
}
}
Hiç yorum yok:
Yorum Gönder