เซ็นเซอร์ที่นำเสนอโดย Instructables ภายใต้ชื่อเล่น AdnanA61 ช่วยให้คุณตรวจจับรังสีอินฟราเรดคลื่นสั้นจากแหล่งต่าง ๆ เช่นรีโมทคอนโทรลไฟหลอดไส้และดวงอาทิตย์ มันไม่ตอบสนองต่อรังสีอินฟราเรดรูปแบบอื่น - คลื่นยาวซึ่งเป็นแหล่งกำเนิดวัตถุทั้งหมดที่ได้รับความร้อนจนถึงอุณหภูมิปกติ สินค้าทำที่บ้าน สร้างสัญญาณสองประเภท: อะนาล็อกและไม่ต่อเนื่องส่วนที่สองเป็นสัญญาณเปรียบเทียบ สัญญาณทั้งสองสามารถใช้ได้ทั้งกับ Arduinoและไปยังอุปกรณ์อื่น ๆ ที่มีหรือไม่มีไมโครคอนโทรลเลอร์ ต่อไปนี้คือการออกแบบบอร์ดอื่นวงจรไม่แตกต่างกัน:
เซ็นเซอร์ทำขึ้นจากหนึ่งในสองตัวเปรียบเทียบของวงจรไมโคร LM393 โดยสามารถใช้เซ็นเซอร์ตัวที่สองเพื่อแก้ปัญหาอื่นได้หากต้องการ หากคุณไม่ได้ใช้จะเป็นการดีกว่าที่จะเชื่อมต่อทั้งสองอินพุตด้วยสายทั่วไปและปล่อยให้เอาท์พุทไม่ได้เชื่อมต่อ
รูปแบบถูกออกแบบมาเพื่อให้การอ่านไม่สะดวก จุดสามจุดที่กำหนดเป็น A0 ต้องเชื่อมต่อเข้าด้วยกัน สองจุดที่กำหนดเป็น D0 - เช่นกัน ดังนั้นจึงชัดเจนว่าเชื่อมต่อกับอะไรและทำงานอย่างไร ไม่มีปริศนา หากคุณรวบรวมเซ็นเซอร์จากนักออกแบบ pinout ของหวีบนบอร์ดที่รวมอยู่ในชุดจะเป็นดังนี้:
แน่นอนบนกระดานชั่วคราวพิมพ์หรือเขียงหั่นขนม pinout นี้สามารถทำให้คุณสะดวก คุณสามารถตรวจสอบการทำงานของบอร์ดและปรับขีด จำกัด ตัวเปรียบเทียบได้ทันทีหลังจากประกอบเพียงแค่จ่ายพลังงานด้วย LED บนบอร์ด ไฟ LED ดวงที่สองติดสว่างขึ้นอย่างต่อเนื่องเมื่อเปิดเครื่อง จากนั้นคุณสามารถเชื่อมต่อเซ็นเซอร์กับ Arduino และทดสอบเอาต์พุตอะนาล็อกด้วยภาพร่างนี้:
// คัดลอกโค้ดนี้ใน ide ของ arduino จากบรรทัดนี้
// note: - รหัสนี้ใช้สำหรับค่าอนาล็อก
int sensor = A0; // การเตรียมใช้งานหมุดแอนะล็อก
int buzzer = 3; // การเริ่มต้นพินออด
ค่า int;
การตั้งค่าเป็นโมฆะ () {
Serial.begin (9600);
pinMode (เซ็นเซอร์, อินพุต); // assing ชนิดโหมดพินของพินเป็นอินพุตหรือเอาต์พุต
pinMode (ออดสัญญาณออก);
}
void loop () {
value = analogRead (เซ็นเซอร์); // อ่าน valus จากเซ็นเซอร์
value = map (ค่า 0.1023,0,255); // การจับคู่ค่าจาก 0 ถึง 1,023 b / w 0 ถึง 255
digitalWrite (เสียงสัญญาณค่า); // การเปิดหรือปิดเสียงสัญญาณเตือนด้วยค่าที่แมป
}
และดิจิตอล - ด้วยภาพร่างอื่น:
// คัดลอกโค้ดนี้ใน ide ของ arduino จากบรรทัดนี้
// หมายเหตุ: - รหัสนี้ใช้สำหรับค่าดิจิทัล
int sensor_digital = 2; // การเริ่มต้นพินดิจิตอล
int buzzer = 3;
ค่า int;
การตั้งค่าเป็นโมฆะ () {
Serial.begin (9600);
pinMode (เซ็นเซอร์_digital, อินพุต);
pinMode (ออดสัญญาณออก);
}
void loop () {
value = digitalRead (sensor_digital); // อ่านข้อมูลดิจิตอลจากเซ็นเซอร์
digitalWrite (เสียงสัญญาณค่า); // การเปิดหรือปิดออด
}
เมื่อทุกอย่างทำงานได้คุณสามารถเขียนโปรแกรมที่ใช้อัลกอริธึมที่มีความซับซ้อนมากขึ้น ตัวอย่างเช่นสำหรับหุ่นยนต์“ กลัว” ที่จะเข้าใกล้เปลวไฟหรือหลอดไฟที่ทรงพลังเพื่อไม่ให้เสื่อมสภาพ และเขากำลังทำสิ่งที่ถูกต้องนับตั้งแต่ถือเซ็นเซอร์กับแหล่งกำเนิดความร้อนที่แรงน้อยกว่า 100 มม. สามารถสร้างความเสียหายได้