
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ı
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ı
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ı
[php]
#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 ;
}
}
[/php]
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?