ในโพสต์นี้เราจะสร้างวงจรหรี่ไฟถนนอัตโนมัติ Arduino ซึ่งสามารถลดความสว่างเมื่อไม่มีรถแล่นผ่านถนนเพื่อประหยัดพลังงาน
โดย
ภาพรวม
เราจะสำรวจวิธีการตรวจจับยานพาหนะหรือมนุษย์โดยไม่มีการตรวจจับที่ผิดพลาดซึ่งอาจเกิดขึ้นเนื่องจากสัตว์และยังมีโปรโตคอลสำหรับการลดแสงโดยไม่ต้องสิ้นเปลืองพลังงาน
ไฟถนนช่วยให้ยานพาหนะนำทางไปตามถนนได้ แต่ในช่วงดึกถนนส่วนใหญ่จะว่างเปล่าและยังคงมีไฟถนนทั้งหมดส่องสว่างจนถึงเช้า
เนื่องจากการส่องไฟถนนตลอดทั้งคืนแม้ว่าถนนจะว่างเปล่าจึงไม่คุ้มที่จะจุดโคมไฟถนนและค่าใช้จ่ายเนื่องจากการใช้พลังงานส่งผลโดยตรงต่อรัฐบาลท้องถิ่น
เพื่อเอาชนะปัญหานี้ด้วยวิธีที่ชาญฉลาดเราสามารถลดความสว่างของโคมไฟถนนให้อยู่ในระดับที่ต้องการและส่องสว่างเต็มที่เมื่อมียานพาหนะหรือมนุษย์เดินผ่านเท่านั้น
วิธีนี้อาจช่วยให้รัฐบาลลดการใช้จ่ายด้านพลังงานและยังประหยัดพลังงานได้มากซึ่งสามารถนำไปใช้เพื่อวัตถุประสงค์อื่น ๆ ที่ต้องการพลังงานได้
แนวคิดที่เสนอให้ตรวจจับกิจกรรมบนท้องถนนใช้เซ็นเซอร์อัลตราโซนิกซึ่งสามารถวัดระยะห่างระหว่างเซ็นเซอร์และสิ่งกีดขวางในกรณีนี้สิ่งกีดขวางคือยานพาหนะหรือมนุษย์
เมื่อยานพาหนะเข้ามาในช่วงของเซ็นเซอร์จะทำการคำนวณทางคณิตศาสตร์บางอย่างเพื่อกำหนดระยะห่างระหว่างยานพาหนะและเซ็นเซอร์หากรถได้รับการยืนยันว่าอยู่ต่ำกว่าช่วงที่กำหนดไว้ล่วงหน้าไมโครคอนโทรลเลอร์ในตัวจะทำให้ไฟถนนสว่างขึ้น ความสว่างสูงสุด
ไฟถนนจะส่องสว่างที่ความสว่างสูงสุดตามระยะเวลาที่กำหนดไว้ล่วงหน้าและลดความสว่างลงหากไม่มีการตรวจพบยานพาหนะหรือมนุษย์อีก
ถึงตอนนี้วัตถุประสงค์ของโครงการนี้จะถูกยกเลิก มาดูวงจรของการตั้งค่าที่นำเสนอกัน
การทำงานของวงจร
วงจรหรี่ไฟถนนอัตโนมัติประกอบด้วย Arduino ซึ่งเป็นสมองของโครงการเซ็นเซอร์อัลตราโซนิกสำหรับตรวจจับยานพาหนะหรือมนุษย์ ตัวควบคุม 9V มีไว้สำหรับจ่ายไฟให้กับบอร์ดไมโครคอนโทรลเลอร์ arduino และ MOSFET สำหรับการขับ LED ซึ่งกินไฟเพียงไม่กี่แอมแปร์ที่ความสว่างสูงสุด
ต้องเลือกโมดูล LED และแหล่งจ่ายไฟสำหรับการตั้งค่าอย่างระมัดระวังเพื่อให้มีพลังงานเพียงพอสำหรับทั้งวงจรและไม่ใช้แหล่งจ่ายไฟมากเกินไป
โมดูล LED สามารถเป็นโมดูลแบบโฮมเมดซึ่งแสดงในแผนผังหรืออาจซื้อได้ในตลาด แต่ก่อนที่จะสร้างหรือรับตลาดรูปแบบหนึ่งโปรดคำนวณแรงดันไฟฟ้าและความต้องการกระแสสำหรับแหล่งจ่ายไฟ
แหล่งจ่ายไฟอาจเป็น SMPS หรือสร้างโดยใช้หม้อแปลงวงจรเรียงกระแสและตัวควบคุมแรงดันไฟฟ้า
LED ลดความสว่างโดยใช้ PWM PWM เป็นคลื่นสี่เหลี่ยมเปิดและปิดการจ่ายไฟให้กับ LED อย่างรวดเร็วโดยมีการกำหนดความกว้างในการเปิดและปิดอย่างดีในรอบเดียว ความกว้างของเวลาเปิดและปิดจะกำหนดความสว่างของ LED
เมื่อไฟถนนเปลี่ยนเป็นความสว่างเต็มที่แหล่งจ่ายไปยัง LED จะไม่มีพัลส์และจะจ่าย DC คงที่
การตั้งค่าทั้งหมดสามารถดำเนินการได้ดังที่แสดงด้านล่าง:
แผนภาพการตั้งค่า
-
เซ็นเซอร์อัลตร้าโซนิคถูกยกขึ้นเหนือพื้นประมาณ 3.5 ฟุตถึง 4 ฟุตซึ่งทำขึ้นเพื่อให้ตรวจจับยานพาหนะและมนุษย์เท่านั้นเนื่องจากความสูงเฉลี่ยอยู่ที่ประมาณเดียวกันและเมื่อสุนัขหรือแมวหรือสัตว์อื่น ๆ ซึ่งมักจะเดินเตร่ไปทั่วเมือง ไม่ทำให้ไฟถนนมีความสว่างสูงสุด
สัตว์ที่อาศัยและท่องไปทั่วเมืองมีความสูงต่ำกว่า 3.5 ฟุต
ความสูงของเซ็นเซอร์อาจถูกปรับให้ทำงานในระดับที่เหมาะสมตามที่อธิบายไว้ในภาพด้านบน
ระยะเกณฑ์สามารถควบคุมได้ในโปรแกรม
เมื่อ Arduino ตรวจพบสิ่งกีดขวางที่ตรวจพบต่ำกว่าระยะที่กำหนดไว้ล่วงหน้าไฟ LED จะมีความสว่างสูงสุด
รหัสโปรแกรม:
//--------------------Program developed by R.Girish-------------------//
const int trigger = A1
const int echo = A2
int vcc = A0
int gnd = A3
int LED = 3
long Time
float distanceCM
float distanceM
float distance = 100 // set threshold distance in cm
int dim = 28 // adjust minimum brightness
int bright = 255 // adjust maximum brightness
float resultCM
float resultM
void setup()
{
pinMode(LED,OUTPUT)
pinMode(trigger,OUTPUT)
pinMode(echo,INPUT)
pinMode(vcc,OUTPUT)
pinMode(gnd,OUTPUT)
Serial.begin(9600)
}
void loop()
{
digitalWrite(vcc,HIGH)
digitalWrite(gnd,LOW)
digitalWrite(trigger,LOW)
delay(1)
digitalWrite(trigger,HIGH)
delayMicroseconds(10)
digitalWrite(trigger,LOW)
Time=pulseIn(echo,HIGH)
distanceCM=Time*0.034
resultCM=distanceCM/2
resultM=resultCM/100
Serial.print('Distance in cm: ')
Serial.println(resultCM)
Serial.print('Distance in meter: ')
Serial.println(resultM)
Serial.println('------------------------------------------')
if(resultCM<=distance)
{
analogWrite(LED, bright)
delay(10000)
}
if(resultCM>=distance)
{
analogWrite(LED,dim)
}
delay(100)
}
//-----------------Program developed by R.Girish-------------------//
บันทึก:
•สามารถปรับระยะเกณฑ์ได้โดยการแทนที่ค่าด้วยค่าของคุณเอง
ระยะลอย = 100 // กำหนดระยะทางเป็นซม
ต้องป้อนค่าเป็นเซนติเมตรค่าสูงสุดคือ 400 ถึง 500 ซม. หรือ 4 ถึง 5 เมตร
•สามารถปรับการหรี่แสงได้โดยใช้
int dim = 28 // ปรับความสว่างขั้นต่ำ
255 คือความสว่างสูงสุด 0 คือปิดไฟ
นอกจากนี้เรายังสามารถเห็นระยะห่างระหว่างเซ็นเซอร์และสิ่งกีดขวางในจอภาพอนุกรม
หากคุณมีคำถามเพิ่มเติมเกี่ยวกับวงจรหรี่ไฟถนนอัตโนมัติที่ใช้ Arduino อย่าลังเลที่จะถามในส่วนความคิดเห็น
คู่ของ: เครื่องทำความร้อนแบบเหนี่ยวนำสำหรับห้องปฏิบัติการและร้านค้า ถัดไป: วงจรแอปพลิเคชันยิมฟิตเนสที่ควบคุมด้วยตัวจับเวลา