โปรเจกต์ Voltage Led ALERT ⚠️
ตรวจสอบว่ากระแสไฟปลอดภัยหรือไม่จากระยะไกลด้วยความช่วยเหลือของ Led โดยพิจารณาจาก Voltage ที่จ่ายเข้ามา
ตรวจสอบว่ากระแสไฟปลอดภัยหรือไม่จากระยะไกลด้วยความช่วยเหลือของ Led โดยพิจารณาจาก Voltage ที่จ่ายเข้ามา
ตีหนึ่งในคืนช่วงวันหยุดฤดูร้อน เบื่อสุดๆ จนไม่มีอะไรทำ และไม่อยู่ในอารมณ์ที่จะสร้างอะไรที่ไม่มี LED และแสงไฟ
ส่วนประกอบของโปรเจกต์นี้ประกอบด้วย:
Potentiometer ถูกใช้เพื่อควบคุมปริมาณ Voltage และ LED แต่ละสีจะสว่างขึ้นตามปริมาณนั้นๆ
ถ้า Voltage < หรือ = 3 Volts; Green LED จะสว่างขึ้น
ถ้า Voltage < 4 Volts และ > 3 Volts; Yellow LED จะสว่างขึ้น
ถ้า Voltage < หรือ = 5 Volts และ > 4 Volts; Red LED จะสว่างขึ้น
สร้างระบบแจ้งเตือนสำหรับกระแสไฟฟ้าเฉพาะจุด ซึ่งหาก Voltage สูงกว่าค่าที่กำหนด อุปกรณ์อาจเสียหายได้ ในโปรเจกต์นี้ เมื่อ Voltage เกินกำหนด Red LED จะสว่างขึ้น และหากใกล้ถึงระดับอันตรายแต่สูงกว่าค่าเฉลี่ย Yellow LED จะสว่างขึ้น และเมื่อกระแสไฟฟ้าอยู่ในระดับที่เหมาะสม Green LED จะสว่างขึ้น
int rPin = 11 ;
int yPin = 12 ;
int gPin = 13 ;
กำหนดค่าตัวแปรเหล่านี้สำหรับ Digital Pin ให้ตรงกับค่า Digital Pin บนบอร์ด
คุณสามารถใช้ Digital Pin ไหนก็ได้ตามที่คุณสะดวก
int readPin = A0;
float Val ;
float readVal ;
ตั้งค่าตัวแปรใหม่ **readPin** สำหรับค่า Analog Pin ที่จะใช้ร่วมกับคำสั่ง analogRead() ในภายหลัง
กำหนดค่าว่าง (Null) ให้กับตัวแปร Val และ readVal เพื่อให้เราสามารถกำหนดค่าให้พวกมันได้ในภายหลัง
String myString = "The Potentiometer Voltage is : " ;
int wait = 1000;
ตั้งค่าตัวแปร String ใหม่ชื่อ myString ซึ่งจะใช้ในการจัดรูปแบบการแสดงผลของ Serial.print() ในภายหลัง
นอกจากนี้ยังสร้างตัวแปร wait สำหรับ Delay โดยมีค่า 1000 Milliseconds หรือ 1 วินาที
คุณสามารถตั้งชื่อตัวแปรเหล่านี้เป็นอะไรก็ได้ตามที่คุณต้องการ แต่ควรเป็นชื่อที่ทำให้คุณเข้าใจได้ง่าย
pinMode(rPin,OUTPUT);
pinMode(yPin,OUTPUT);
pinMode(gPin,OUTPUT);
ประกาศตัวแปรสำหรับ Digital Pin ที่เราสร้างขึ้นก่อนหน้านี้ให้เป็น Output
pinMode(readPin,INPUT);
Serial.begin(9600);
}
ประกาศว่าจะใช้งาน Analog Pin พร้อมกับตัวแปร readPin เป็น INPUT
นอกจากนี้เรายังตั้งค่า Baud rate ของ Serial Monitor เป็น 9600
readVal = analogRead(readPin);
Val = (5./1023.)*readVal;
กำหนดค่าให้ readVal คือค่าที่อ่านได้จาก analogRead() ของ Analog Pin readPin ที่เราตั้งไว้
เราจะอ่านค่าได้ในช่วง 0 ถึง 1023 หรือ 1024 ระดับ
0 = 0 Volts
1023 = 5 Volts
เนื่องจากเป็นค่าแบบ 10 bit (2^10)
ในการอ่านค่านี้เป็น Volts เราจะใช้ตัวแปร Val ที่เราตั้งไว้ เนื่องจากเรารู้ว่า 5 Volts = 1023 ดังนั้น 1 Volt = 5/1023
เมื่อเราทราบค่าของ 1V แล้ว เราต้องนำไปคูณกับค่า readVal ที่ได้รับมาเพื่อให้ได้ค่า Voltage ออกมา
if (Val <= 3.00) {
digitalWrite(gPin,HIGH);
digitalWrite(yPin,LOW);
digitalWrite(rPin,LOW);
}
ตรงนี้เรากำลังใช้งานคำสั่งเงื่อนไข (Condition statements)
ถ้า Val น้อยกว่าหรือเท่ากับ 3, gPin หรือ Green Pin จะสว่างขึ้น
if (Val < 4.00 && Val > 3.00) {
digitalWrite(gPin,LOW);
digitalWrite(yPin,HIGH);
digitalWrite(rPin,LOW);
}
ตรงนี้ถ้า Val น้อยกว่า 4 และมากกว่า 3, yPin หรือ Yellow Pin จะสว่างขึ้น
if (Val > 4.00 && Val<= 5.00) {
digitalWrite(gPin,LOW);
digitalWrite(yPin,LOW);
digitalWrite(rPin,HIGH);
}
ตรงนี้ถ้า Val > 4 และ < หรือ = 5 แล้ว rPin หรือ Red Pin จะสว่างขึ้น
Serial.print(myString);
Serial.println(Val);
delay(wait);
}
ตรงนี้เราสั่ง Print ข้อความ String ที่เราตั้งไว้ก่อนหน้านี้ลงบน Serial Monitor เพื่อจัดรูปแบบการแสดงผล เพราะความเป็นระเบียบคือสิ่งสำคัญ (OCD)
หลังจากนั้นเราสั่ง Print ค่า Val เพื่อตรวจสอบความถูกต้องของโปรแกรมเทียบกับ LED
สุดท้าย เราใช้คำสั่ง Delay แบบเดิมๆ เพื่อพักสายตาบ้าง!!!!
โปรแกรมช่วงสุดท้ายไม่มี Inline Cause ด้วยเหตุผลบางอย่าง มิฉะนั้นมันจะทำงานไม่ได้ ขออภัยในความไม่สะดวกมา ณ ที่นี้




สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้