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...