ลักษณะการทำงานนะครับ จะมี Prox. sensor อยู่ 2 ตัว เซนเซอร์เเต่ละตัวจะมีหลอด LED ประจำตำแหน่งอยู่ 2 สี คือเเดงเเละเขียว ในสภาวะปกติ led สีเขียวจะติด เเต่เมื่อเซนเซอร์ตัวใดมีการตรวจจับได้จะเปลี่ยนเป็นสีเเดง
- เมื่อเซนเซอร์ตัวที่1 ตรวจจับได้ LED ประจำตำแหน่งเซนเซอร์ตัวที่1 สีเเดงจะติด (ตัวที่ไม่มีการตรวจจับสีเขียวจะติด) จนกว่าเซนเซอร์ตัวที่ 2จะตรวจจับได้ led ประจำตำแหน่งเซนเซอร์1 ถึงจะเปลี่ยนเป็นสีเขียว
- เงื่อนไขมีอยู่ว่า ถ้าเซนเซอร์ตัวที่ 1 มีการตรวจจับวัตถุได้กี่ครั้งต่อเนื่องกัน เซนเซอร์ตัวที่ 2 ต้องตรวจจับได้เท่ากับตัวที่1 led ประจำเซนเซอร์ตัวที่1 ถึงจะเปลี่ยนเป็นสีเขียว
ตัวย่าง
- sensor1 มีการตรวจจับวัตถุได้ 3 ครั้งต่อเนื่องกัน (led ประจำ sensor1 เปลี่ยนจากเขียวเป็นเเดง ledประจำ sensor2 เป๊นสีเเดง)
- sensor2 มีการตรวจจับวัตถุได้ครั้งที่ 1 (led ประจำ sensor2 เปลี่ยนจากเขียวเป็นแดง เเละ led ประจำ sensor1 ยังคงเป็นสีเเดง)
- sensor2 มีการตรวจจับวัตถุได้ครั้งที่ 2 (led ประจำ sensor2 ยังคงเป็นสีแดง เเละ led ประจำ sensor1 ยังคงเป็นสีเเดง)
- sensor2 มีการตรวจจับวัตถุได้ครั้งที่ 3 เท่ากับsensor1 (led ประจำ sensor2 ยังคงเป็นสีแดง เเต่ led ประจำ sensor1 เปลี่ยนเป็นสีเขียว)
ลักษณะจะเป็นการทำงานเเบบนี้วนซ้ำๆ เนื่องจากผมจะนำไปใช้ในเเบบจำลองตรวจจับตำเเหน่งรถไฟด้วยการเเสดงผมด้วยหลอด led
ผู้รู้ท่านใดทราบการเขียนโค้ดช่วยเเนะนำผมหน่อยนะครับ
ขอบคุณครับ
ใช้คำสั่ง digitalRead() จากเซนเซอร์เข้ามา จะได้ค่าจากเซนเซอร์เป็น 0 หรือ 1 เอาค่านี้ไปเช็ค if เพื่อสั่งควบคุมโปรแกรมครับ
ต้องทำยังไงครับ sensor2 ถึงจะรู้ว่า sensor1 มีการตรวจจับได้ต่อเนื่องกันทั้งหมดกี่ครั้ง
เพิ่มตัวนับการตรวจจับครับ เช่นตัวอย่างนี้
int sensor1 = digitalRead(pin_1);
int sensor2 = digitalRead(pin_2);
int count_sensor1 = 0;
int count_sensor2 = 0;
if(sensor1==1){
count_sensor1++;
}
if(sensor2==1){
count_sensor2++;
}