[ บทความ : ทดลองสร้าง senser แสง ด้วย LDR ]

ทดลองสร้าง senser แสง ด้วย LDR

สวัสดีครับ .... ห่างหายกันไปนาน สำหรับบทความเกี่ยวกับ จิปาถะ (อื่นๆ) เมื่อวันที่ ๒๕ ม.ค. ๒๕๔๔ นั้น สถาบันราชภัฏ ในแถบตะวันตก ซึ่งประกอบด้วย เพชรบุรี (ผมทำงานอยู่ที่นี่) , จอมบึง (จ.ราชบุรี), นครปฐม และ กาญจนบุรี ได้จัดแข่งขันกีฬาสัมพันธ์ ระหว่างสถาบัน โดยมี สรภ. กาญจนบุรี เป็นเจ้าภาพ ... การแข่งขันครั้งนี้เป็นการแข่งขันกีฬา ครั้งแรก ที่มีการแข่งขันวิชาการพร้อมกัน ในส่วนของการแข่งขันวิชาการนั้น มีการแข่งขัน 3 ประเภท คือ ตอบคำถาม, เกมส์ และ ควบคุมหุ่นยนต์ ... ในส่วนของการแข่งขันควบคุม หุ่นยต์นั้นจะเป็นการนำเอาหุ่นยนต์ปล่อยเข้าไปในเขาวงกต ในทางเข้าของเขาวงกต ... โดยด้านบน และด้านล่างของกำแพง จะมีเส้นสีดำให้หุ่นใช้สำหรับ ตรวจสอบเส้นทาง ... หลังจากปล่อยหุ่นยนต์เข้าไปแล้ว ต้องให้หุ่นยนต์ หาเส้นทาง สำหรับออกจากเขาวงกตให้เร็วที่สุด ... ซึ่งทางออกนั้นมีด้วยกัน 2 รูปแบบ คือ ทางออกจริงๆ กับ ทางออกที่กำหนดว่าเป็น death zone ... นั่นเป็นเป็นเรื่องการแข่งขัน ... แต่เรา จะมาดูถึง sensor หรือ ตัวตรวจจับ แบบ tracker line หรือ เดินตามเส้น ...

sensor แสง ที่ใช้สำหรับ ตรวจจับเส้นนั้น มีหลักการง่ายๆ คือ ส่งแสงไปที่พื้น แล้วตรวจผลการสะท้อน ของแสงจาก พื้นนั้น ... โดยถ้าพื้นเป็นสีทึบ จะมีผลแตกต่างกับพื้นที่เป็นสีสว่าง ... ตัวตรวจจับแสงที่มีให้เลือกนั้น ก็มีหลายชนิดด้วยกัน ... ที่เราจะมาสนใจในบทความนี้ ก็คือ LDR กับ LED (เป็นตัวส่องแสงสว่าง) ... วงจรเป็นดังนี้ครับ


อุปกรณ์

1. LDR จำนวน 1 ตัว
2. LED สีแดง จำนวน 1 หลอด
3. R 10K สำหรับทำ pullup ให้ LED (ป้องกันหลอด LED ขาด)
4. VR 100K สำหรับปรับ Voltage ปลายทาง
ผลลัพธ์ที่ได้จากการประกอบวงจรก็จะเป็นดังนี้ครับ ... สาเหตุที่ผมต้องเอากระดาษสีดำมาหุ้มด้านข้าง ก็เพื่อป้องกันแสงจากภายนอกมารบกวนการทำงานของ LDR นั่นเอง

มีวงจรเรียบร้อย คราวนี้มาลองเขียนโปรแกรมอ่านค่าจาก วงจร อันนี้กันดีกว่าครับ ... ผมทดลองใช้บอร์ด ET-V6 ทั้งแบบ Z80 และ MCS-51 โหมด ... ถ้าสังเกตสักนิดจะเห็นว่า วงจรของเราคราวนี้มีปัญหา หรือจุดบอดในเรื่อง ผลลัพธ์ ที่ได้ นั้นเป็นระดับ Voltage ซึ่งเรียกได้ว่าเป็นค่าแบบ Analog แต่ไมโครคอนโทรลเลอร์ หรือ ไมโครโปรเซสเซอร์ที่เราใช้นั้น ทำงานแบบ Digital เราจึงต้องหาวิธีที่จะแบ่งชนิดของแรงดัน ออกมาเป็น 2 ช่วงเท่านั้น คือ ค่าที่ไม่เกินกว่าระดับที่เรียกว่าเป็น 0 และค่าที่ ไม่ต่ำกว่าการตีความว่าเป้น 1 (ลองดูรายละเอียดของไอซีที่เราใมช้ด้วยนะครับ ว่า Logic 0 นั้นเขาต้องการค่า Voltage ฃ่วงใด และ Logic 1 ต้องการเท่าใด) ... ปัญหาเหล่านี้หมดไปได้เลยครับ เพราะผมจะใช้ ADC เบอร์ LTC1298 ที่บอร์ด ET-V6 สนับสนุน การทำงานเอาไว้ด้วย (มีทั้ง socket ให้ใส่ และใน Monitor ก็มี system call ที่ทำงานกับ LTC1298 ได้เลย) ...

1. ตัวอย่างกับ ET-V6 ภาค Z80
2. ตัวอย่างกับ ET-V6 ภาค MCS-51

เป็นอย่างไรบ้างครับ ... ลองทำแล้วพอมองออกไหมครับว่าจะนำไปประยุกต์ใช้ได้อย่างไร .... คราวหน้าจะเอา วงจรสำหรับ tracker line มาเสนออีกครับ แต่คราวนี้ผมจะใช้ Infrared ในการตรวจจับ ... คราวนี้เท่านี้ก่อนครับ สวัสดีครับ

คราวหน้าผมจะนำหุ่นยนต์ของคณะคอมพิวเตอร์และเทคโนโลยีชั้นสูง (SCAAT) กับหุ่นยนต์ tracker ของ โปรแกรมวิชาอิเล็กทรอนิกส์ ของสถาบันราชภัฏเพชรบุรี มาให้ชมกันครับ


เขียนโดย : ศุภชัย บุศราทิจ
Author : Supachai Budsaratij
e-mail : raek@se-ed.net
วันที่ทำการปรับปรุง : ๒๐ ก.พ. ๒๕๔๔