Instructables tarafından AdnanA61 takma adı altında önerilen sensör, uzaktan kumandalar, ateş, akkor lambalar ve güneş gibi kaynaklardan kısa dalga kızılötesi radyasyon tespit etmenizi sağlar. Kaynaklarının tümü normal sıcaklıklara ısıtılmış nesneler olan uzun dalga olan başka bir kızılötesi radyasyon formuna cevap vermez. ev yapımı ürün iki tür sinyal üretir: analog ve ayrık, ikincisi eşiği ayarlanabilir hale getirilmiş bir karşılaştırıcı tarafından oluşturulur. Her iki sinyal de Arduinove mikrodenetleyici içeren veya içermeyen diğer cihazlara. Aşağıdaki başka bir kart tasarımı, devre farklı değil:
Sensör, LM393 mikro devresinin iki karşılaştırıcısından birinde yapılır; ikincisi istenirse başka bir sorunu çözmek için kullanılabilir. Kullanmazsanız, her iki girişini de ortak bir kabloya bağlamak ve çıkışı bağlı bırakmak daha iyidir.
Şema, okunması çok uygun olmayacak şekilde tasarlanmıştır. A0 olarak belirtilen üç nokta birbirine bağlanmalıdır. D0 olarak gösterilen iki nokta da -. Böylece neye bağlı olduğu ve nasıl çalıştığı belli oluyor. Bilmeceler yok. Sensörü tasarımcıdan monte ederseniz, sette bulunan tahtadaki tarak pin çıkışı aşağıdaki gibi olacaktır:
Tabii ki, derme çatma bir tahtada, baskılı veya breadboard üzerinde, bu pin çıkışı sizin için uygun hale getirilebilir. Panodaki LED sayesinde, güç besleyerek, montajdan hemen sonra kartı çalışırken kontrol edebilir ve karşılaştırıcı eşiğini ayarlayabilirsiniz. İkinci LED, güç açıkken sürekli yanar. Ardından sensörü Arduino'ya bağlayabilir ve analog çıkışı bu çizim ile test edebilirsiniz:
// bu kodu arduino'nun kenarına bu satırdan kopyala
// not: - bu kod analog değer içindir
int sensörü = A0; // analog pimi başlatma
int zil = 3; // zil pimini başlatma
int değeri;
void setup () {
Serial.begin (9600);
pinMode (sensör, INPUT); // pimin pin modu tipini giriş veya çıkış olarak değerlendirmek
pinMode (buzzer, OUTPUT);
}
void loop () {
değer = analogOkuma (sensör); // valusun sensörden okunması
değer = harita (değer, 0.1023,0,255); // 0 ila 1023 s / b 0 ila 255 arasında bir değer eşleme
digitalWrite (zil, değer); // sesli uyarıyı eşlenen değerle açma veya kapatma
}
Ve dijital - başka bir taslakla:
// bu kodu arduino'nun kenarına bu satırdan kopyala
// not: - bu kod dijital değer içindir
int sensor_digital = 2; // dijital pini başlatma
int zil = 3;
int değeri;
void setup () {
Serial.begin (9600);
pinMode (sensor_digital, INPUT);
pinMode (buzzer, OUTPUT);
}
void loop () {
değer = digitalRead (sensor_digital); // dijital verileri sensörden okuma
digitalWrite (zil, değer); // sesli uyarıyı açma veya kapatma
}
Her şey işe yaradığında, daha karmaşık algoritmalar uygulayan programlar yazabilirsiniz. Örneğin, bir robotun bir alev veya güçlü bir akkor lambaya yaklaşmaması için bozulmayacak. Ve doğru olanı yapıyor, çünkü sensör kartını 100 mm'den daha az bir mesafede güçlü ısıtma kaynaklarına tutmak ona zarar verebilir.