26 Mayıs 2019 Pazar

DOKUNMATİK SENSÖR İLE LED YAKMA 26.05.2019

DOKUNMATİK SENSÖR İLE LED YAKMA

Malzemeler


  • Arduino Uno
  • Dokunmatik Sensör
  • Buzzer
  • RGB Led




KODUMUZ :

int dokunmatik = 7;
int kirmiziLed = 8;
int yesilLed = 9;
int buzzer = 10;

void setup() {
Serial.begin(9600);
pinMode(kirmiziLed, OUTPUT);
pinMode(yesilLed, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(dokunmatik, INPUT);
biip(50);
biip(50);
biip(50);
delay(500);
}

void loop() {
int dokunmatikDeger = digitalRead(dokunmatik);
if (dokunmatikDeger == HIGH){
digitalWrite(yesilLed, HIGH);
digitalWrite(kirmiziLed, LOW);
biip(50);
biip(50);
biip(50);
Serial.println("Dokunuldu");
}
else{
digitalWrite(kirmiziLed,HIGH);
digitalWrite(yesilLed,LOW);
Serial.println("Temas Yok");
}

}

void biip(unsigned char delayms){
digitalWrite(buzzer, HIGH);

delay(delayms);
digitalWrite(buzzer, LOW);
delay(delayms);


}

ARDUİNO UNO ROBOT ARABA NRF24L01 HC-12 JOYSTİCK HC-05 BLUETOOTH KONTROL 26.05.2019




KODUMUZ :


#define enA 9
#define in1 4
#define in2 5
#define enB 10
#define in3 6
#define in4 7
int xAxis, yAxis;
işaretsiz int   x = 0 ;
işaretsiz int   y = 0 ;
int motorSpeedA = 0 ;
int motorSpeedB = 0 ;
geçersiz kurulum ( ) { 
  pinMode ( ena, ÇIKIŞ ) ;
  pinMode ( ENB ÇIKIŞ ) ;
  pinMode ( in1, OUTPUT ) ;
  pinMode ( in2, OUTPUT ) ;
  pinMode ( in3, ÇIKIŞ ) ;
  pinMode ( in4, ÇIKIŞ ) ;
  Seri. başlar ( 38400 ) ; 
}
boşluk döngüsü ( ) { 
  X = 510 / 4 ;
  Y = 510 / 4 ;
  while ( Seri. kullanılabilir ( ) > = 2 ) { 
    x = Seri read ( ) ;
    gecikme ( 10 ) ;
    y = Seri read ( ) ;
  }
  gecikme ( 10 ) ;
  xAxis = x * 4 ;
  yAxis = y * 4 ;
  eğer ( yAxis < 470 ) { 
    digitalWrite ( in1, HIGH ) ;
    digitalWrite ( in2, LOW ) ;
    digitalWrite ( in3 , YÜKSEK ) ;
    digitalWrite ( in4, DÜŞÜK ) ;
    motorSpeedA = harita ( yAxis, 470 , 0 , 0 , 255 ) ;
    motorSpeedB = harita ( yAxis, 470 , 0 , 0 , 255 ) ;
  }
  aksi takdirde ( yAxis> 550 ) {  
    digitalWrite ( in1, LOW ) ;
    digitalWrite ( in2, HIGH ) ;
    digitalWrite ( in3 , DÜŞÜK ) ;
    digitalWrite ( in4, YÜKSEK ) ;
    motorSpeedA = harita ( yAxis, 550 , 1023 , 0 , 255 ) ;
    motorSpeedB = harita ( yAxis, 550 , 1023 , 0 , 255 ) ;
  }
   {
    motorSpeedA = 0 ;
    motorSpeedB = 0 ;
  }
  eğer ( xAxis < 470 ) { 
    int xMapped = harita ( xAxis, 470 , 0 , 0 , 255 ) ;
    motorSpeedA = motorSpeedA - xMapped;
    motorSpeedB = motorSpeedB + xMapped;
    eğer ( motorSpeedA < 0 ) { 
      motorSpeedA = 0 ;
    }
    eğer ( motorSpeedB> 255 ) { 
      motorSpeedB = 255 ;
    }
  }
  eğer ( xAxis> 550 ) { 
    int xMapped = harita ( xAxis, 550 , 1023 , 0 , 255 ) ;
    motorSpeedA = motorSpeedA + xMapped;
    motorSpeedB = motorSpeedB - xMapped;
    eğer ( motorSpeedA> 255 ) { 
      motorSpeedA = 255 ;
    }
    eğer ( motorSpeedB < 0 ) { 
      motorSpeedB = 0 ;
    }
  }
  eğer ( motorSpeedA < 70 ) { 
    motorSpeedA = 0 ;
  }
  eğer ( motorSpeedB < 70 ) { 
    motorSpeedB = 0 ;
  }
  analogWrite ( enA, motorSpeedA ) ; 
  analogWrite ( enB, motorSpeedB ) ;
}

BASİT ANALOG DEVRELER 26.05.2019

BASİT ANALOG DEVRESİ

Öncelikle kolay bir ayarlı direnç (trimpot) ile analog değer okuma işlemini yapabiliriz . Bu olay için 10K ' lık değerinde bir ayarlı direnç kullandık . Tabi bu isteğimize bağlı bir olaydır eğer elimizde başka bir değeri olan ayarlı direncimiz varsa onu da kullanabiliriz . Ayarlı direncimizin kalın olması sebebiyle Beradboard'a oturması sıkıntılı bir olay haline gelebilir . Bu yüzden ayakları yamultmayacak şekilde hafifçe bastırarak karta oturturmamız gerekir . Ayrıyetten el ile ayarlanan potansiyometreler Breadboard kartlara uyumlu değildir . O yüzden bunları sadece bir kablo yardımıyla bağlayabiliriz . Ayarlı direncimizin (trimpot) bir bacağına 5V diğer bacağına 0V yani GND verdik . Bunun sebebi tornavida ile ayarlı direncimizi ayarladığımızda 0 ile 5V arası değer almak istememizden kaynaklanır . Ayarlı direncin orta bacağı ise hareket halinde olan kısma bağlı olup tornavidayla çevrilince aynı bir ibre gibi direcç yüzeyinin üzerinde hareket etmektedir . Burada bahsettiğim bacağı da her hangi istediğimiz bir devreye bağlayabiliriz . Bu yapacağımız programda A0 bacağını değer okuyabilmek kullanacağız .


ANALOG VERİYİ OKUYACAK KODUMUZ : 


void setup() {

Serial.begin(9600) ;

}

void loop() {

int okuma = analogRead(A0) ;
Serial.print("Analog Değer:") ;
Serial.println(okuma) ;
delay(100) ;

}


BU FONKSİYON ŞİMDİ UNO İÇİN 0-1023 ARASI İNTEGER YANİ TAMSAYI VERİ DÖNDÜRMEKTEDİR . SONRA DA BU VERİYİ BELİRLİ ARALIKLARLA SERİ PORT EKRANINA YAZDIRIR .


ANALOGDAKİ VERİYİ ANALOGDAKİ GERİLİM MİKTARINI ÖLÇEN KODUMUZ :


void setup() {

Serial.begin(9600) ;

}

void loop() {

int okuma = analogRead(A0) ;
Serial.print("Analog Değer:") ;
Serial.println(okuma) ;
float gerilim = okuma * (5.0 / 1023.0) ;
Serial.print("Gerilim:") ;
Serial.print(gerilim) ;
Serial.println("V") ;
delay(100) ;

}


 

ANALOG GİRİŞ VE ANALOG DİJİTAL ÇEVİRİCİ 26.05.2019

ANALOG'DA GİRİŞ VE DİJİTAL ÇEVİRİCİ

Çoğu algılayıcı ve devre eğer digital sistemimizde çalışmıyorsa analog veri olarak çıkış vermektedir . Verimiz değişken bir gerilim veya bir frekans olabilir . Bir multimetrenin gerilim ölçesini analog bacaklarına uygulanan gerilim miktarını Arduino kartında ki Analog Dijital Çevirici (ADC) ölçer .Bu işlemdeki gerilim miktarını volt olarak değil de sayı verisi olarak hesaplanmaktadır aynı zamanda bu hesapladığımız sayı verisi çeşitli işlemlerden geçerek hesaplanabilir ya da gösterilebilecek duruma getirilmektedir . Bir dijital olmayan sistem analog sistemidir . Örnek olarak bu lamba devreside olabilir bir amfide de ya da bir pil olabilir . Mikrodenetliyici bunları anlamaz çünkü anlayacakları dilden konuşmazlar . 1 ve 0 üzerinde işlemini yapan bir mikrodenetleyici değişken gerilim değerlerini çözemez ve anlamaz . Elektriğin nerede olduğunu ya da olup olmadığını anlar başka da anladığı bir şey olmaz . Bir dijital veriyi okumakla değişken gerilim değerlerini ölçmemiz imkanlı bir olay değildir . Arduino kartlarımızda hangi girişin analog girişi olduğunu öğrenebiliriz . Bu durum çok kolaydır . Kartların hepsi üzerinde isimlendirilmiş ve bunların her birinin bir adı lakabı vardır . Analog girişlerimiz A ile başlar ve Uno kartımızda A0 , A1 , A2 , A3 , A4 , A5 ayaklarıdır . Eğer bir program yaparsak bunların hepsini aynı isimle çağırabiliriz . Mega kartında ise 16 adet analog girişimiz bulunur . Bunlar A0 ile A15 arasında isimlendirilmiştir . Due kartımızın girişinde ise analog bölümünde 12 adet giriş bulunur .  

ARDUİNO ÜZERİNDE BULUNAN PİNLER 26.05.2019

ARDUİNO'NUN ÜZERİNDEKİ PİNLERİN AÇIKLAMASI

Arduinomuzun üzerinde bulunan birden fazla bağlantı noktasının bulunduğu bir devre kartıdır . Burada arduinomuzun üzerinde bulunan pinleri işleyeceğiz ve ne işe yaradığını ne olarak kullanıldığını nelerde kullanacağımızı bu pinlerin özelliklerini ele alacağız.

USB PLUG : Bilgisayarımız ile Arduinomuzun arasındaki iletişimi sağlamak için kullanılan Arduino'nun üzerinde ki USB girişidir . 

RESET PİN : Reset pinimiz de anlaşıldığı gibi yazılımın resetlenip yeniden baştan başlatılmasıdır . Bu işlem reset pininin topraklanması ile gerçekleşmiş bulunuyor .

3.3VOLT POWER PİN : Bu pinimizde 3.3V bir çıkış sağlamaktadır . Eğer devremizde 3.3V 'luk çalıştırılması gereken bileşenler var ise beslenmesi bu pinden sağlanır . Ama bu pinin çıkış akımı 50ma kadardır . Bu yüzden çok yüksek akımlı pinleri bu bileşene bağlamamız imkansızdır . 

5 VOLT PİN : Bu pinimizin 5 V 'luk bir çıkış sağlar . 5V ile çalışan bileşenler eğer bu devremizdeyse bu pinin aracılığıyla besleme sağlayabilir . Bu pinin çıkışı 450ma'dır . 

GND PİN : GND dediğimiz şey bu devremizin tamamlanabilmesi için gereken topraklama pinidir . Arduinonun Kart şeklindeki tasarlanmış çeşitlerinde genellikle birde çok GND Pini bulunur . Bunun da sebebi ise Arduino GND pinin üzerinde 200ma lik bir akım geçirilmektedir . 2 adet GND pin sayesinde bu değer 400 ma çıkar .

VOLTAGE IN PIN : Voltage In Pın Arduinomuzun beslemek amacıyla kullandığımız bir giriştir .Üzerinde regülatör olmayan Arduino modelinde (Arduino Pro Mini) bu girişe 6 Volt üzerinde bir gerilim uygulamamız gerekir . Fakat üzerinde regülatör bulunduran bir Arduino modeli kullanuyorsak 9 Volt - 12 Volt arasında bir gerilim uygulamamız gerekir . 

 


25 Mayıs 2019 Cumartesi

ARDUİNO İLE HAREKET SENSÖRÜ 25.05.2019

ARDUİNO İLE HAREKET SENSÖRÜ (PIR) - HIRSIZ ALARMI

PIR ismi Passive Infra-Red kelimesinin baş harflerinden gelir . bu da bu sensörün kızılötesi dalgalarla çalıştığını bize açıklar . Yapacağımız hareket sensörü ortamdaki sıcaklık ve kızılötesi dalga değişimlerini algılamaya yarayan sensörlerimizdir . Yapısında fresnel bir lens bulunmaktadır . Bu lens sayesinde ise ortamdaki nesnelerden gelene ışınları sensörümüzün odaklamasını sağlamaktadır . Bulunduğumuz ortamda bir dalga değişimi olduğunda sensörümüz algılama işleimini gerçekleştirmiş bulunmaktadır . Bu devrede sadece bir tane servo motor kullandık . 


KODUMUZ : 
#include
int pirPin = 8 ;
int servoPin = 9 ;
int hareket ;
Servo motor ;

void setup() {

motor.attach(servoPin) ;
pinMode(pirPin , INPUT) ;

}

void loop() {

hareket = digitalRead(pirPin) ;

if(hareket == HIGH) {
motor.write(150) ;
delay(250) ;
motor.write(30) ;
delay(250) ;
motor.write(150) ;
delay(250) ;
motor.write(30) ;
delay(250) ;
motor.write(150) ;
delay(250) ;
motor.write(30) ;
delay(250) ;
motor.write(90) ;

}
else {

motor.write(90) ;

}
}

ARDUİNO HAREKET SENSÖRÜNÜ KULLANARAK HIRSIZ ALARMI YAPMAK

Hareket sensörü , buzzer , LED kullanarak kolay bir hırsız alarmı uygulaması yapacağız . Kuracağımız devrede ise hareket sensörümüz herhangi bir hareketi algıladığında bu hareketteki bilgiyi Arduinomuza aktaracak ve Arduino'nun çıkış bölgesine bağlı olan Led ve buzzeri tetikleyecektir . Ayrıyetten hareketteki algılama işlemini seri port ekranından takip edebileceğiz .

GEREKLİ MALZEMELER :

  • Arduino Uno
  • Breadboard
  • PIR Sensörü
  • Buzzer
  • 1 adet LED
  • 1 adet 330Ω Direnç
  • Jumber Kablo

BASİT HIRSIZ ALARMINDAKİ KODUMUZ : 

int sensör = 2 ;
int led = 13 ;
int buzzer = 10 ;
int sensordurum = LOW ;
int deger = 0 ;

void setup () {

pinMode (sensor, INPUT) ;
pinMode (led, OUTPUT) ;
pinMode (buzzer, OUTPUT) ;
Serial.begin(9600) ;

}

void loop () {

deger = digitalRead(sensor) ;
if (deger == HIGH)  {
digitalWrite(led , HIGH) ;
playTone(300 , 160) ;
delay(150) ;


if (sensordurum == LOW) {

Serial.println("hareket tespit edilmiştir") ;

sensordurum = HIGH ;

}

else {
digitalWrite (led,LOW) ;
playTone (0,0) ;
delay(300) ;
if (sensordurum == HIGH)  {

Serial.println("hareket sonlanmıştır") ;

sensordurum= LOW ;

}
}
}

void playTone(long duration, int freq) {

duration *= 1000 ;
int period = (1.0/freq)  * 1000000 ;
long elapsed_time < duration {

digitalWrite (buzzer, HIGH) ;
delayMicroseconds(period/2) ;
digitalWrite(buzzer, LOW) ;
delayMicroseconds(period/2) ;
elapsed_time  += (period) ;

}
}










ARDUİNO LEONARDO NEDİR ? 25.05.2019

LEONARDO NEDİR ?

Arduino Leonardo'muz yeni çıkarılmıştır ve Arduino 1.0.1 ' de desteklenen bir Arduino çeşidimizdir . 

Arduino Leonardo ATmega 32u4 tabanlıdır .20 tane dijital giriş/çıkış pini olan bir arduino çeşidir . 20 pinin 7 tanesi PWM çıkışı , 12 tanesi de analog giriş olarak kullanılabilmektedir . 16 MHz. kristal osilatörü mevcuttur . Haberleşmesi mikro USB bağlantısıyla gerçekleşmektedir .
 
Arduino Leonardo'nun özelliğindeki ayrıcalığı da  USB haberleşebilmek için ikinci bir entegre kullanılmamış olmasıdır . Bu özelliği Arduino Leonardo'nun takıldığı bilgisayara fare , klavye olarak tanıtılabilmesini sağlamış olur . 
Arduino Leonardo'nun temel özellikleri de şunlardır :
  • Mikrodenetleyici                 -     ATmega32u4
  • Çalışma Voltajı                   -     5V
  • Giriş Voltajı (önerilen)      -     7-12V
  • Giriş Voltajı (limit)            -     6-20V
  • Dijital G/Ç Pinleri            -     20
  • PWM Kanalı                    -     7
  • Analog Giriş Kanalı        -     12
  • Pin Başına DC Akım      -    40mA
  • 3.3V Pin İçin DC akım  -    50 mA
  • Flash Bellek                  -     32KB (ATmega32u4) 4 KB bootloader tarafından kullanılmaktadır 
  • SRAM                           -     2.5 KB (ATmega32u4)
  • EEPROM                     -     1 KB (ATmega32u4)
  • Clock Frekansı            -     16 MHz
  • Standart giriş , çıkış , besleme pinlerinin haricinde ise ;
  1. TWI : 2 (SDA) ve 3 (SCL). Wire kütüphanesi kullanıldığında TWI haberleşmeyi destekler.
  2. Harici kesmeler : 2 ve 3
  3. ICSP headerında SPI pinleri bulunur . Arduino Unoda'ki gibi giriş çıkış pinlerde değildir , direkt ICSP pinlerinde bulunmaktadır . SPI kütüphanesiyle kullanılmaktadır .

ARDUINO 27.05.2019

ARDUİNO DEDİĞİN NEDİR Kİ ? Arduino projelerimizde kullanabileceğimiz açık kaynak kodlu bir bileşendir. Arduino dediğimiz zaman aklımıza...