การต่อวงจรสวิตช์ควบคุมด้วยแสง
const byte Vin = 3; //รับค่าแรงดัน Vout จากวงจรสวิตซ์ควบคุมด้วยแสงที่pin 3
const byte Vout = 5; //ปล่อยแรงดันให้วงจรLEDหรือPeizo buzzerที่pin 5
int t0 = 0; //ตัวแปรเก็บค่าเวลาช่วงที่ไม่มีวัตถุกั้นในสวิตซ์ควบคุมด้วยแสง
int t = 0; //ตัวแปรเก็บค่าเวลาช่วงที่มีวัตถุกั้น
boolean count = false; //ตัวแปรกำหนดสถานะว่ามีวัตถุกั้นแล้ว
void setup() {
pinMode(Vin, INPUT); //กำหนดpin 3 เป็นอินพุต
pinMode(Vout, OUTPUT); //กำหนดpin 5 เป็นเอาต์พุต
Serial.begin( 9600 ); // open serial port
}
void loop() {
if(digitalRead(Vin)==HIGH){ //เมื่อมีวัตถุกั้นจะอ่านได้ค่า HIGH
digitalWrite(Vout,HIGH); //เมื่อมีวัตถุกั้นจะทำให้LEDติดหรือBuzzerดัง
t = millis(); //เก็บค่าเวลาตอนที่วัตถุกั้นอยู่
count = true; //เปลี่ยนค่าสถานะเป็น มีวัตถุกั้นอยู่แล้ว
}else{ //เมื่อไม่มีวัตถุกั้น
digitalWrite(Vout,LOW); //LEDดับหรือBuzzerไม่ดัง
if(count){ //หากมีวัตถุกั้นอยู่แล้วแล้วเอาออกจะแสดงค่าเวลา
int time = t-t0; //นำเวลาตอนที่มีวัตถุกั้นแล้วลบด้วยเวลาตอนที่ยังไม่ใส่วัตถุกั้น
Serial.print("time = ");
Serial.println(time); //แสดงเวลาหน่วยมิลลิวินาที
count = false; //เปลี่ยนสถานะกลับไปเป็นยังไม่มีวัตถุกั้น
}
t0 = millis(); //เก็บค่าเวลาตอนที่ยังไม่มีวัตถุกั้น
}
}
ไม่มีความคิดเห็น:
แสดงความคิดเห็น