Ana Sayfa Arduino El Yapımı Kapasitif Sensor ile Led ve Dc Motor Kontrolü

El Yapımı Kapasitif Sensor ile Led ve Dc Motor Kontrolü

7 min read
1
1
3,621

Merhaba arkadaşlar ,

Bugün size yaptığım el yapımı kapasitif sensör ile ledlerin sayısını ve dc motorun dönüş yönünü ayarlayan projemi sunacağım.Dilerseniz ilk önce projemizi biraz tanıyalım.

İki tane kapasitif sensörle ledlerin sayısını, elinizi sensörlere değdirmeden üstünde kaydırarak ledlerin sayısını azaltıp veya çoğaltabilirsiniz.Motor kontrolünü sağlamak isterseniz iki kapasitif sensöre elinizle basarsanız motor sekmesi açılır.Motor sekmesindede elinizi sağ sensöre yaklaştırırsanız motor sağ,elinizi sol sensöre yaklaştırırsanız motor sol tarafa döner.

Bu anlattıklarımızı bir de videomuzdan izleyebilirsiniz.

Kullanılan Malzemeler

Arduino UNO R3

Breadboard

Alüminyum Folyo

Jumper Kablolar

Dirençler(4 tane 220 ohm,2 tane 140 kohm)

4 tane led

Lcd Ekran 2×16

Dc Motor

L293d Entegresi

Potansiyometre

 

Kapasitif Sensorlerin Yapımı

20150623_230932

 

Fotoğrafta görüldüğü gibi alüminyum folyoyu 110mm x 110 mm boyutunda kesip kabloları folyoya değdirip sert bir zemine yapıştırıyoruz. İki sensor içinde aynı şeyi yapıyoruz.

Dilerseniz sensörlerin boyutunu değiştirebilirsiniz ancak sensöre bağlı olan direncinde boyutunu değiştirmeniz gerekebilir.

Kapasitif sensörle ilgili detaylı bilgiye buradan ulaşabilirsiniz.

 

Devre Şeması 

Untitled Sketch 1_bbUntitled Sketch 3_bb

Yukarıda gördüğünüz üzere devre şemasını sizin için çizdim.Özellikle 2 tane yaptım bütün devreyi bir fotoğrafa çizersem çok karışık olacağını düşündüm.Siz iki devreyi birden kurarsınız

Dirençler; ledlere bağlı olanlar 220 ohm, Sensorlere bağlı olan direnç ise 140kohm değerindedir.

Arduino Kodları



#include <CapacitiveSensor.h>
 
#include <LiquidCrystal.h>
 
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
 
const int LED4=A1 ;
 
const int LED1=A0 ;
 
const int LED2=7 ;
 
const int LED3=10 ;
 
const int motorpin1=A3 ;
 
const int motorpin2=A2 ;
 
int sayici ;
 
int first ;
 
CapacitiveSensor   cs_4_2 = CapacitiveSensor(6,9);
 
CapacitiveSensor   cs_4_3 = CapacitiveSensor(13,8);
 
void setup()
 
{
 
lcd.begin(16, 2);
 
cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF);
 
Serial.begin(9600);
 
pinMode(motorpin1,OUTPUT);
 
 
 
pinMode(motorpin2,OUTPUT);
 
pinMode(LED1,OUTPUT);
 
pinMode(LED2,OUTPUT);
 
pinMode(LED3,OUTPUT);
 
pinMode(LED4,OUTPUT);
 
}
 
 
 
void loop()
 
{
 
 
 
long total1 =  cs_4_2.capacitiveSensor(100);
 
long total2 =  cs_4_3.capacitiveSensor(100);
 
delay(50) ;
 
lcd.setCursor(1,1) ;
 
lcd.print(sayici);
 
lcd.setCursor(5,1) ;
 
lcd.print(first);
 
Serial.println(total2);
 
Serial.println(total1);
 
Serial.println("\t");
 
 
if(   total1<40 && total2<40  )
 
first=0;
 
if( first==0 && total1>50 && total2<50 && sayici!=4  )
 
first=2;
 
if( first==0 &&  total1<50 && total2>50 && sayici!=0)
 
first=1;
 
if(first==2 && total1>50 && total2>50 && sayici<4 && sayici>=0 )
 
{
 
++sayici ;
 
first=3 ;
 
}
 
if(first==1 && total1>50 && total2>50 && sayici<=4 && sayici>0 )
 
{
 
--sayici ;
 
first=3;
 
}
 
if(total1>150 && total2>150 && first!=5 )
 
{
 
if(sayici==9)
 
{
 
sayici=0 ;
 
first=5;
 
analogWrite(motorpin1,0);
 
analogWrite(motorpin2,0);
 
}
 
else if(sayici!=9)
 
sayici=9 ;
 
first=5 ;
 
}
 
switch(sayici)
 
{
 
case 0 :
 
lcd.setCursor(0,0) ;
 
lcd.print("led sekmesi");
 
digitalWrite(LED2,LOW) ;
 
analogWrite(LED1,LOW) ;
 
digitalWrite(LED3,LOW) ;
 
analogWrite(LED4,LOW) ;
 
break;
 
case 1 :
 
digitalWrite(LED2,LOW) ;
 
analogWrite(LED1,255) ;
 
digitalWrite(LED3,LOW) ;
 
analogWrite(LED4,0) ;
 
break;
 
case 2 :
 
digitalWrite(LED2,HIGH) ;
 
analogWrite(LED1,255) ;
 
digitalWrite(LED3,LOW) ;
 
analogWrite(LED4,0) ;
 
break;
 
case 3 :
 
digitalWrite(LED2,HIGH) ;
 
analogWrite(LED1,255) ;
 
digitalWrite(LED3,HIGH) ;
 
analogWrite(LED4,0) ;
 
break;
 
case 4 :
 
digitalWrite(LED2,HIGH) ;
 
analogWrite(LED1,255) ;
 
digitalWrite(LED3,HIGH) ;
 
analogWrite(LED4,255) ;
 
break;
 
case 9 :
 
lcd.setCursor(0,0) ;
 
lcd.print("motor sekmesi");
 
if (total1>50 && total2<50)
 
{
 
analogWrite(motorpin1,300);
 
 
 
analogWrite(motorpin2,0);
 
}
 
if(total2>50 && total1<50)
 
{
 
analogWrite(motorpin1,0);
 
analogWrite(motorpin2,300);
 
}
 
else if(total2<50 && total1<50)
 
{
 
analogWrite(motorpin1,0);
 
analogWrite(motorpin2,0);
 
}
 
default:
 
break ;
 
}
 
}




 

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Konuk Yazar
Daha Fazla Göster -  Arduino

1 Yorum

  1. hilal

    29 Haziran 2015 at 13:01

    plakanın altında ve üstünde bağlantı kablolarıyla aynı renkli kablolar var onlar ne işe yarıyor?

    Reply

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Egesim’de Yaşadığım Kötü Olaylar

Merhaba arkadaşlar , Bu yazıda Egesim adlı bir firmanın GOSB içerisinde bulunan fabrikasın…