gerekli malzemeler;
1 x Arduino Uno (ben Uno kullandım fakat diğer Arduino çeşitleri de neredeyse hiçbir değişiklik yapmadan kullanılabilir)
1 x Arduino Türkiye ProtoShield (veya herhangi bir breadboard)
1 x Karakter LCD
1 x Potansiyometre (ayarlı direnç)
1 x LDR (ışığa duyarlı direnç)
1 x 10K Direnç
1 x Mantar Led
1 x Buzzer
1 x Lazer Pointer (oyuncakçılarda satılan bildiğimiz lazer)
Projenin gerçekleştirilmesi için öncelikle breadboarda devrenin kurulması gerekmektedir. Bunun içinFritzing ile oluşturduğum görsel yardımcı olabilir.
Görselde de görüldüğü üzere devremizde buzzer yok. Bir engelle karşılaştığı zaman led yakarak haber veriyor. İstendiği takdirde led yerine buzzer veya başka bir dijital pine de buzzer bağlanabilir. Bunun için yazılımımızda led için yaptıklarımızın aynısını buzzer için de yapmanız gerekmektedir.
LCD kullanımına şu adreste Kaan Ceyhan arkadaşımız anlattığı için değinmeyeceğim.
Devremizi kurduktan sonra sıra geldi programımızı(sketch) yazmaya.
#include <LiquidCrystal.h> // LCD kütüphane kodu ekleniyor #define LED 13 // Uyarı ledinin bağlı olduğu dijital pin #define BUZZER 2 // Uyarı buzzerının bağlı olduğu dijital pin
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // LCD bağlantılarının Arduinomuzda bağlı olduğu pinler const int analogInPin = A5; // LDR'nin bağlı olduğu analog pin int sensorValue = 0; // LDR'den aldığımız değeri tutacak olan değişkenimizin değerini sıfırlıyoruz void setup() { lcd.begin(16, 2); // LCD'nin satır ve sütun sayısı pinMode(13, OUTPUT); //LED'in pinini çıkış olarak ayarlıyoruz pinMode(8,OUTPUT); //Buzzer'ın pinini çıkış olarak ayarlıyoruz } void loop() { lcd.clear(); //LCD'deki karakterleri temizliyoruz sensorValue = analogRead(analogInPin); // Analog pinimizden gelen LDR değerini okuyup değişkenimizi atıyoruz lcd.setCursor(0,0); lcd.print("Sensor:"); lcd.setCursor(8, 0); lcd.print(sensorValue); lcd.setCursor(0,1); lcd.print("LED & BUZZER:"); if (sensorValue <= 840){ digitalWrite(LED,LOW); digitalWrite(BUZZER,LOW); lcd.setCursor(13,1); lcd.print("OFF"); } else{ digitalWrite(LED,HIGH); digitalWrite(BUZZER,HIGH); lcd.setCursor(13,1); lcd.print("ON"); } delay(100); }
Sketchimizin yaptığı iş kısaca şu;
LDR ışığa duyarlı bir direnç olduğundan ışık şiddetiyle ters orantılı olarak bize bir direnç gösterir. Yani ışık şiddeti arttıkça direnç azalır, ışık şiddeti azaldıkça direnç artar.
” if (sensorValue <= 840){ ” satırında gördüğünüz 840 değeri benim devreyi test ettiğim ortamdaki ışık şiddetine göre optimize edilmiş bir değerdir. Normalde LDR’ye lazer tutulduğunda sensör değerimiz 900 civarında görünmektedir, minimum okuduğum değer 840 olduğundan ben bu değerin altına düştüğünde sistemin alarm vermesini istediğimden bu değeri seçtim. Siz ortama göre bu değeri kalibre edebilirsiniz.
Sistemin kurulabilmesi için lazeri harici bir pil veya Arduinonun besleme pinlerinden besleyebilirsiniz.
Hepinize kolay gelsin !!!
hocam ben arduinoda yeniyim ve lm 35 sensör ,lcd kullanarak dijital bir sensör yapmaya calişiyorum devreyi bağlıyorum lakin kod yükleyemiyorum arduino hata veriyor . sizden ricam aşağıda yazdığım koddaki hatalarımı bana söylermisiniz.
#include
float sicaklik,gerilim;
int sensorPin=0;
LiquidCrystal lcd(12,11,5,4,3,2);
void setup(){
lcd.begin(16,2);
}
void loop()
{
gerilim=analogRead(sensorPin);
gerilim=(gerilim/1023)*5000;
sicaklik=gerilim/10.0;
lcd.setCursor(0,0);
lcd.print(“Sicaklik:”);
lcd.setCursor(0,1);
lcd.print(sicaklik);
delay(1000);
}
BeğenLiked by 1 kişi
canım ilkin özür dilerim ama biz sadece proje paylaşırız.
BeğenBeğen
İlkin geç yazdığım için özür dilerim siteye giriş sifremi unuttmuştum şu an buna bakamam ama yorumunu sitede yayınlayım belki yardım eden olur bu sıralar çok iş olduğundan özür dilerim
BeğenBeğen