18 Eylül 2015 Cuma

Joystick Bozuk Abi...

Merhabalar arkadaşlar
Hepimiz hemen hemen uzaktan kumandalı arabalarda kullandığı daha genel bir örnek için PlayStation oynarken yardımcı olan malzemeyi işleyeceğiz.

DataSheet













  • X-Y pinlerini analog bacakalara bağlamanız gerekiyor 
  • 0-1023 arası değer alıyorsunuz
  • X saldan sağa değer alıyor
  • Y yukarıdan aşağı değer alıyor
  • Geometrideki analetik sistem olarak düşünmemiz gerekmekte
  • Ortada durduğu zaman 0,0 orjinde bulunur
Şimdi yaptığım devreyi anlatmaya geçeyim

Kullanılacak Malzemeler

  • Arduino Geliştirme kartı
  • 4 adet led (Tercihen her biri farklı)
  • 1 adet Thumb Joystick
  • Deney Tahtası
  • Jumper Kablolar

Bağlantı Şeması



Kullanılacak Kodlar

int mavi=12;
int kir=13;
int yes=11;
int sari=10;
int yPin=A0;
int xPin=A1;
int buton=2;
int xPos=0;
int yPos=0;
int buttonDurum=0;

void setup() {
 pinMode(xPin, INPUT);
 pinMode(yPin, INPUT);
 pinMode(mavi, OUTPUT);
 pinMode(kir, OUTPUT);
 pinMode(yes, OUTPUT);
 pinMode(sari, OUTPUT);
 pinMode(buton, INPUT_PULLUP);
}
void loop() {
 xPos=analogRead(xPin);
 yPos=analogRead(yPin);
 buttonDurum=digitalRead(buton);
 if(yPos >600){
   digitalWrite(yes,HIGH);
   digitalWrite(sari,LOW);
   }
   else if(yPos<490){
     digitalWrite(sari,HIGH);
     digitalWrite(yes,LOW);}
 if(xPos > 600){
 digitalWrite(kir, HIGH);
 digitalWrite(mavi, LOW);
 }
 else if(xPos< 490){
 digitalWrite(kir, LOW);
 digitalWrite(mavi, HIGH);
 }
 if(buttonDurum==0){
  digitalWrite(kir, HIGH);
 digitalWrite(mavi, HIGH);
 digitalWrite(yes,HIGH);
 digitalWrite(sari,HIGH);
 }
 else{
   digitalWrite(kir, LOW);
 digitalWrite(mavi, LOW);
 digitalWrite(yes,LOW);
 digitalWrite(sari,LOW);
 }}

Fotoğraf ve Video



29 Haziran 2015 Pazartesi

NTC'yi kül etmek

Merhabalar arkadaşlar
Bugün Termistörler (NTC-PTC) ile uğraşmayı deneyeceğiz. Peki nedir bu termistörler, ne işe yararlar?
Arkadaşlar bu arada bu deneyi yaparken dikkat edin ateşle oynamak zorunda kalacaksınız çok fazla yaklaştırmamanızda fayda var. 

Termistörler

Termistörler ısı ile değerleri değişen bir direnç türüdürler. Termistörlerin bazı tipleri ısı ile doğru orantılı tipleride ısı ile ters orantılı olmak üzere dirençlerini değiştirirler. Termistörler foto dirençlerin kullanıldığı her devrede kullanılabilir.

NTC

Negative Temperature Coefficient

Negatif ısı katsayılı termistörlerdir. Üzerindeki sıcaklık arttıkça direnci azalır, sıcaklık düştükçe direnci artar







PTC

Positive Temperature Coefficient

Pozitif katsayılı termistörlerdir. Üzerindeki sıcaklık arttıkça direnç artar, sıcaklık azaldığı zaman ise direncide azalır.









Gerekli Malzemeler

  • Arduino geliştirme kartı
  • Çakmak yada kibrit
  • 5 adet led
  • 1k direnç
  • Ntc
  • Jumper kablolar

Bağlantı Şeması


Arkadaşlar burada 5V'u boarda götürmeyi unutmuşum kırmızı çizgi tarafında istediğimiz bir yere bağlamamız yeterli olacaktır.




















Kullanılacak Kodlar

//28.06.2015 ntc ile 5 led
int ntcSic=0;
int led1 = 13;
int led2 = 12;
int led3 = 11;
int led4 = 10;
int led5 = 9;


void setup() {
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);

}

void loop() {
  ntcSic =analogRead(0);
  if(ntcSic<=400)
  {
    digitalWrite(led1, HIGH);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    }
   else if(ntcSic>=400 && ntcSic<410)
   {
    digitalWrite(led1, LOW);
    digitalWrite(led2, HIGH);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    }
    else if(ntcSic>=410 && ntcSic<420)
   {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, HIGH);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    }
    else if(ntcSic>=420 && ntcSic<430)
   {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, HIGH);
    digitalWrite(led5, HIGH);
    }
    else if(ntcSic>=430 && ntcSic<440)
   {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, HIGH);
    }
    else if(ntcSic>=440 && ntcSic<450)
   {
    digitalWrite(led1, LOW);
    digitalWrite(led2, LOW);
    digitalWrite(led3, LOW);
    digitalWrite(led4, LOW);
    digitalWrite(led5, LOW);
    }
    delay(50);
}

Fotoğraf ve Video

27 Haziran 2015 Cumartesi

7 Segment ile sayım başladı

 Merhabalar arkadaşlar
Bugün filmlerde bir çok bomba sahnesinde kullanılan segmentlere bir başlangıç yapmak istiyorum.
Yapacağımız uygulama aslında biraz ilk yaptığımız blink'e cok benzemekte tek yapacağımız, bağlantılara voltaj verip almak.

Geçen günlerde bir paylaşımda bir Türk dizisinde bomba sahnesinde daha kullanılmış ve bunu hepimizin aracı olan Arduino ile yapmışlar gittikçe büyüyoruz. Her seferinde yeni bir sensör yada bir şey tanıtmaya çalışıyorum eğer ki merak ettiğiniz bir şey olursa anlatmaya çalışırım. (not: tabi bende becerebilirsem)

7 Segment Bacak Bağlantıları



Kullanılacak malzemeler

  • Bir adet Arduino geliştirme kartı 
  • 7 segment display (anot/katot (farkını yukarıdan görebilirsiniz))
  • Yaklaşık 10 adet Jumper kablo

Bağlantı Şeması



Kullanılacak Kodlar

//28.06.2015 BlueTesla 
int a = 2;
int b = 3;
int c = 4;
int d = 5;
int e = 6;
int g = 7;
int f = 8;

void setup() {
  pinMode(a,OUTPUT);
  pinMode(b,OUTPUT);
  pinMode(c,OUTPUT);
  pinMode(d,OUTPUT);
  pinMode(e,OUTPUT);
  pinMode(g,OUTPUT);
  pinMode(f,OUTPUT);
  }

void loop() {
  // 0
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(g, LOW);
  digitalWrite(f, HIGH);
  delay(500);
 
  // 1
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(g, LOW);
  digitalWrite(f, LOW);
  delay(500);

  // 2
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, LOW);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(f, LOW);
  delay(500);
 
  // 3
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(g, HIGH);
  digitalWrite(f, LOW);
  delay(500);
 
  // 4
  digitalWrite(a, LOW);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(g, HIGH);
  digitalWrite(f, HIGH);
  delay(500);
 
  // 5
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(g, HIGH);
  digitalWrite(f, HIGH);
  delay(500);
  // 6
  digitalWrite(a, HIGH);
  digitalWrite(b, LOW);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(f, HIGH);
  delay(500);
  // 7
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, LOW);
  digitalWrite(e, LOW);
  digitalWrite(g, LOW);
  digitalWrite(f, LOW);
  delay(500);

  // 8
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, HIGH);
  digitalWrite(g, HIGH);
  digitalWrite(f, HIGH);
  delay(500);
 
 // 9
  digitalWrite(a, HIGH);
  digitalWrite(b, HIGH);
  digitalWrite(c, HIGH);
  digitalWrite(d, HIGH);
  digitalWrite(e, LOW);
  digitalWrite(g, HIGH);
  digitalWrite(f, HIGH);
  delay(1000);
  }

Fotoğraf ve Video



Herkese iyi çalışmalar dilerim arkadaşlar

22 Haziran 2015 Pazartesi

L298N ile Yarış Başlıyor

Merhaba arkadaşlar

Bugün sizlerle L298N Motor sürücüsünü inceleyeceğiz.

Eminim bir çoğumuz motorun arkasına pil bağlayıp bir şeyler yapmışızdır. Bugün ise onu bir shield  ve arduino sayesinde programlamayı öğreneceğiz ileriye doğru uzaktan kumanda edeceğiz. 

298N SHİELD PİN(BACAKLALRI)


  1.  DC motor 1 "+" yada step motor A+
  2.  DC motor 1 "-" yada step motor A-
  3.  12V jumper'i eğer jumperi kaldırır isek 35V'a  kadar besliyebiliriz. Eğerki jumper takılı ise 12V ile besleyiniz.
  4.  Jumper takılı ise 12V girişi takılı değilse 12-35V arası giriş.
  5. GND
  6. 5V Girişi isterseniz jumper takılı ise Arduinoyu buradan besliyebilirsiniz.
  7. 1. Motorun pwm bacağı (Enable)
  8. İN_A1
  9. İN_A2
  10. İN_B1
  11. İN_B2
  12. 2. Motorun pwm bacağı (Enable)
  13. DC motor 2 "+" yada step motor B+
  14. DC motor 2 "-" yada step motor B-

Kullanılacak malzemeler

  • Arduino geliştirme kartı
  • L298N Shield
  • 2 adet dc Motor
  • Jumper kablolar (dişi-erkek* erkek-erkek)

Bağlantı Şeması


Kullanılacak Kodlar

// L298N ile arduino arasındaki bağlantı
// 1. Motor
int enA = 10;
int in1 = 9;
int in2 = 8;
// 2. Motor 
int enB = 5;
int in3 = 7;
int in4 = 6;
void setup()
{
  // Tüm motor pinlerini OUTPUT olarak ayarladık
  pinMode(enA, OUTPUT);
  pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT);
  pinMode(in4, OUTPUT);
}
void demoBir()
{
  // bu fonksiyo  iki kotoruda düzgün bir hızla gitmesini sağlıyacak
  // 1. motoru çalıştır
  digitalWrite(in1, HIGH);
  digitalWrite(in2, LOW);
  //motorun hızını 0-255 arası bir hız ayarla
  analogWrite(enA, 200);
  // 2. Motoru çalıştır
  digitalWrite(in3, HIGH);
  digitalWrite(in4, LOW);
  // motorun hızını 0-255 arası bir hız ayarla
  analogWrite(enB, 200);
  delay(2000);
  // şimdi motorun yönünü değiştirelim
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH); 
  delay(2000);
  // motorları durdur
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);
}
void demoIki()
{
  // motorların ikisinide durmuş bir halden yavaşca hızlandırıp
  // son hızına kadar çıkaracağız
  // motorları çalıştır
  digitalWrite(in1, LOW);
  digitalWrite(in2, HIGH);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, HIGH); 
  // motoru 0 hızdan maksimum hıza çıakr
  for (int i = 0; i < 256; i++)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  } 
  // motorları maksimum hızdan 0 hıza düşür
  for (int i = 255; i >= 0; --i)
  {
    analogWrite(enA, i);
    analogWrite(enB, i);
    delay(20);
  } 
  // motorları durdur
  digitalWrite(in1, LOW);
  digitalWrite(in2, LOW);  
  digitalWrite(in3, LOW);
  digitalWrite(in4, LOW);  
}
void loop()
{
  demoBir();        //sürekli demo1 ve demo2 yi uygulaması için buraya yazdık
  delay(1000);
  demoIki();
  delay(1000);
}

----------------------------------------------------------------------------------------------------------------------

Herkese iyi çalışmalar dilerim dostlar.

18 Haziran 2015 Perşembe

LCD ile Hayırlı Ramazanlar

     Öncelikle herkese hayırlı Ramazanlar arkadaşlar.
Bugün 18.06.2015 ve sizlerle Arduino'da lcd ekranın kullanımı ile ilgili bilgiler vermeye çalışacağım.


Kullanacağımız bu eleman LiquidCrystal denilen bir yapıttan oluşmaktadır. İsmi de buradan gelmekte (Liquid Crystal Display). 
Bugün kullanacağım lcd ekranı ebay, amazon, aliexpress, istanbulda olanlar karaköydeki elektronik devre elemanı satan mağazalardan bulabilirler.
Ebay---> 2-4$ arası
Karaköy---> 8-15 tl

╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤╤

Bu sitede yeterli seviyede bilgi bulunmakta istiyen olursa gözden geçirebilir.
 LiquidCyrstalDisplay

╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧╧

Kullanılacak Malzemeler

  • Arduino geliştirme kartı
  • 2x16 LCD ekran
  • Bir adet pot
  • Bol sayıda Jumper kablo

Bağlantı Şeması

LCD nin bacakları şeklin en sol tarafından sırasıyla...

Vss/Vdd/V0/RS/RW/E/DB0/DB1/DB2/DB3/DB4/DB5/DB6/DB7/LED+/LED-





Kullanılacak Kodlar


/*
15-16 BOS
Enabled   -> Digital 11
DB4       -> Digital 5
DB5       -> Digital 4
DB6       -> Digital 3
DB7       -> Digital 2 
RW --------> GND
RS --------> Digital 12
VO --------> Pot orta uç
Pot sağ sol-> biri GND biri +5
VSS  -----> GND
VDD ------> +5 V
*/
// Program başlangıcı
#include <LiquidCrystal.h>

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() { 
  lcd.begin(16, 2); 
  lcd.print("     HAYIRLI    ");
}
void loop() {
  lcd.setCursor(0, 1);
  lcd.print("   RAMAZANLAR   ");
}

Bir Kaç Fotoğraf



Herkese hayırlı ramazanlar ve kolay gelsin


15 Haziran 2015 Pazartesi

Mz80

Merhaba Arkadaşlar...
   Bugün sizlerle mz80 i tanıyalım istedim hemde seri iletişim kullanalım. Yapacaklarımız çok basit olup çok fazla yerde yararlanılabilir. Örneğin sumo robotlarının olmazsa olmazıdır, çizgi izleyen robotlarda engel algılamada, yarıştığımız pistlerde süre başlangıcı vb. Bir çok alanda kullanıla bilen bir aygıttır.

Kullanım 

Sensör dijital çıkışlıdır.  Algılanacak cisim menzil içine girdiğinde sensör çıkışı 0V’dan 5V’a yükselir. Çıkış sinyali mikrodenetleyici devrelerine doğrudan bağlanabilir. Doğru bağlantı için kablolar tablosuna bakınız
 <-----Robotus.com'dan alınmıştır.

Özellikler

  • 80 santimetre menzile sahiptir. Menzili arkasındaki trimpot ile değiştirilebilir.
  • 5V'da 10ma akım çekmektedir.
  • NPN çıkışlıdır.
  • -25, +55 °C derece aralığında çalışmaktadır.

Satın Alım

Şahsen ben www.ebay.com üzerinden aldım ortalama 5 $ a denk geliyor
Türkiyede ise fiyatı 25-35 tl arası değişmektedir

Gerekli Malzemeler

  • Arduino  Kartı
  • Mz80 
  • Jumper Kablolar 

Bağlantı Şeması



Fritzing programımda bir problem oluştu o yüzden ISIS de çizmek zorunda kaldım. +5 volt direk arduino üzerinde +5 Volta bağlanıla bilinir Gnd de aynı şekilde 












Kullanılacak Kodlar

int mz80 = 11;
int mzdeger = 0;

void setup() {
   pinMode(mz80, INPUT);
   Serial.begin(9600);
}

void loop() {
  mzdeger = digitalRead(mz80);
  if(mzdeger == 0) {
    Serial.println(1);
    
    }
  else{
    Serial.println(0);
    
    }
    delay(500);
}
-----------------------------------------------------------------------------------------------------------

Bir kaç fotoğraf ve Video


11 Haziran 2015 Perşembe

3 Buton ile RGB

Merhaba arkadaşlar...
Bugün 3 adet buton ile RGB'led adı verilen devre elemanını kontrol edeceğiz.

RGB led nedir ?

RGB İngilizcedeki red (kırmızı), green (yeşil), blue (mavi) renklerin baş harfleri birleştirilerek oluşmuş bir terimdir. Genel çalışma prensipi; bu üç rengi kullanarak, farklı kombinasyonlarda, çok fazla renk verebilir.

Gerekli Malzemeler

  • Arduino geliştirme kartı
  • RGB led (benimkisi anode)
  • 3 adet 330 ohm direnç
  • 3 adet 10 k direnç
  • 3 adet çıt çıt buton
  • Jumper kablolar
  • Bread board

Bağlantı Şeması

























Kullanılacak Kodlar


/*------>BlueTesla
3 butonlu rgb devresi
her buton bir rengi yakmaktadır
butonlar bir birini etkilemez
*/
int but1 = 13;
int but2 = 12;
int but3 = 11;
int kir = 7;
int yes = 6;
int mav = 5;

int but1Durum = 0;
int but2Durum = 0;
int but3Durum = 0;

void setup() {
  pinMode(but1,INPUT);
  pinMode(but2,INPUT);
  pinMode(but3,INPUT);
  pinMode(kir,OUTPUT);
  pinMode(yes,OUTPUT);
  pinMode(mav,OUTPUT);

digitalWrite(kir, LOW);
digitalWrite(yes, LOW);
digitalWrite(mav, LOW);
}
void loop() {
  but1Durum = digitalRead(but1);
  if(but1Durum==HIGH){
    digitalWrite(kir, LOW);
}
else {
    digitalWrite(kir, HIGH);
}
  but2Durum = digitalRead(but2);
  if(but2Durum==HIGH){
    digitalWrite(yes, LOW);
}
else {
    digitalWrite(yes, HIGH);
}
  but3Durum = digitalRead(but3);
 if(but3Durum==HIGH){
    digitalWrite(mav, LOW);
}
else {
    digitalWrite(mav, HIGH);
}
}

--------------------------------------------------------------------------------------------------------------




Hepinize iyi çalışmalar...

Servo Kontrol


Merhaba arkadaşlar...
Bugün daha önce yaptığım çalışmayı sizlerle paylaşmak istiyorum.
Servo için 3 ayrı program vermeye çalışacağım. Servo motorlar günümüzde 3d Printer, robot kol, kaldırma tutma yani bir nevi iskeletteki eklem görevi görmektedir. İleride de bende uzaktan kumandalı arabamda kullanmaya çalışacağım.

Gerekli Malzemeler


  • Arduino Geliştirme kartı
  • 9V pil ve Pil başlığı                                    
  • 10 K pot
  • Jumper kablolar
  • 7805







Bağlantı Şeması


















Kullanılacak Kodlar 


//Program1 (pot ile servo konum ayarı)
#include <Servo.h>    //servo kütüphanesi koda dahil ediliyor
const int ServoPals=9;  //servoyu kontrol edecek pals çıkış pini
const int Pot=0;  //potun bağlanacağı adc pini
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
int deger=0;  //adc nin okuduğu değeri tutacak değişken
void setup(){
      servoKontrol.attach(ServoPals);   //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
     deger=analogRead(Pot);  //pottan değer okuuyor
     deger=map(deger,0,1023,0,179);   //0-1023 arasında okunan değeri 0-179 arasında sınırla
     servoKontrol.write(deger); //deger kadar açıda motoru hareket ettir.
     delay(15);
}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Program2 (tek yön 180 derece yavaşlatılmış otomatik tarama)
#include <Servo.h>    //servo kütüphanesi koda dahil ediliyor
const int ServoPals=9;  //servoyu kontrol edecek pals çıkış pini
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
void setup(){
      servoKontrol.attach(ServoPals);   //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
     for (int i=0; i<180;i++){     
servoKontrol.write(i); //i kadar açıda motoru hareket ettir.
          delay(20);
     }
}

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

//Program3 (tek yön 180 derece tarama, pot ile hız ayarı)
#include <Servo.h>//servo kütüphanesi koda dahil ediliyor
Servo servoKontrol; //servo sınıfıdan bir nesne yaratılıyor
int deger=0;  //adc nin okuduğu değeri tutacak değişken
void setup(){
      servoKontrol.attach(9);  //servoKontrol nesnesine hangi pinden pals çıkışı alnıcağı belirtiliyor
}
void loop(){
     for (int i=0 ; i<180 ; i++){
         deger=analogRead(0);  //pottan değer okuuyor
        deger=map(deger,0,1023,5,100);     //0-1023 arasında okunan değeri 5-100 arasında sınırla, 
        servoKontrol.write(i);    //deger kadar açıda motoru hareket ettir.
       delay(deger);
  }
}
-------------------------------------------------------------------------------------------------------------------
Umarım ileride daha da iyi programlar yapacağız
Herkese iyi çalışmalar dilerim 

7 Haziran 2015 Pazar

Ldr ile Led kontrolü



Merhaba arkadaşlar bugün analog bir devre elemanı olan ldr ile led'i kontrol edeceğiz hemde seri haberleşmeyi başlatacağız...
Ldr

Foto direnç olarak da geçen ldr ışığa duyarlı bir elemandır. Wikipedia da yazan yazıyı aynen kopyalasam yeterli olacaktır herhalde.Üzerlerine düşen ışık şiddetiyle ters orantılı olarak dirençleri değişen elemanlardır. Foto direnç, üzerine düşen ışık arttıkça direnç değeri lineer olmayan bir şekilde azalır. LDR’nin aydınlıkta direnci minimum, karanlıkta maksimumdur. Hem AC devrede, hem DC devrede aynı özellik gösterir. Bu elemanların yapısında “kadmiyum sülfat” (CdSO4) yarı iletken madde olarak kullanılmaktadır. Kadmiyum sülfat, yalıtkan bir taban üzerine yerleştirilmiş olup, içerisinde iki taraftan daldırılmış birbirlerine değmeyen iletken teller bulunmaktadır. Bu iki iletken telden dışarıya uç çıkarılarak LDR’nin bağlantı terminalleri oluşturulmuştur. LDR’nin üst yüzeyi ışık etkisini algılayabilmesi için şeffaf bir malzemeyle kaplanmıştır.

http://tr.wikipedia.org/wiki/Foto_direnç

Şimdi yavaştan devremize geçelim

Gerekli malzemeler
  • Arduino Geliştirme Kartı
  • Bread board
  • 220 ohm ve 4.7k direnç
  • led 
  • ldr
  • ve olmazsa olmazımız jumper kablolar

Bağlantı Şeması



Kullanılacak kodlar

/*ldr ile led yakıp söndürme 
aynı zamandada seri haberleşme*/
int ldr = A0;
unsigned int ldrDeger =0 ;

void setup() {
    pinMode(13, OUTPUT);
  
     Serial.begin(9600);

}

void loop() {
     ldrDeger = analogRead(ldr);
     if(ldrDeger<200) 
     digitalWrite(13,HIGH);
     else
     digitalWrite(13,LOW);

}

Çektiğim birkaç fotoğraf




Hepinize iyi çalışmalar