إضاءة ذكية باستخدام مستشعر تجنب الحواجز بالأشعة تحت الحمراء

مبتدئ

image_pdf

الكود البرمجي

قم برفع الكود البرمجي التالي على لوحة الاردوينو

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); 
#define sensorPin1 9
#define sensorPin2 10
#define led 8

int sensorState1 = 0;
int sensorState2 = 0;
int count=0;

void setup()
{
pinMode (sensorPin1, INPUT_PULLUP);
pinMode (sensorPin2, INPUT_PULLUP);
pinMode(led, OUTPUT);

lcd.begin(16,2);
lcd.setCursor(4,0);
lcd.print("COUNTER");
lcd.setCursor(0,1);
lcd.print("No Visitors ");
delay(200);
}

void loop()
{ 
sensorState1 = digitalRead(sensorPin1);
sensorState2 = digitalRead(sensorPin2);

if(sensorState1 == LOW){
count++; 
delay(500);
}

if(sensorState2 == LOW){
count--; 
delay(500);
}


if(count<=0)
{
digitalWrite(led, LOW); 
lcd.setCursor(0,1);
lcd.print("No visitors ");
}
else if (count>0 ){
digitalWrite(led, HIGH);
lcd.setCursor(0,1);
lcd.print("Visitors: ");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(13,1);
lcd.print(" "); 

}
}

شرح الكود البرمجي

بالبداية نقوم باستدعاء مكتبة الشاشة الكرستالية LiquidCrystal و نعرف منافذ الشاشة و منافذ حساس تجنب العوائق و الليد

#include <LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7); 
#define sensorPin1 9
#define sensorPin2 10
#define led 8

ننشئ متغير لحالة الحساس الأول و الثاني بقيمة ابتدائية 0

int sensorState1 = 0;
int sensorState2 = 0;

ننشئ متغير يمثل قيمة عدد الأفراد الموجودين بالغرفة

int count=0;

في دالة (void setup) نعرف منافذ الادخال و منافذ الاخراج للقطع المستخدمة ونقوم بتهيئة الشاشة

void setup()
{
pinMode (sensorPin1, INPUT_PULLUP);
pinMode (sensorPin2, INPUT_PULLUP);
pinMode(led, OUTPUT);

lcd.begin(16,2);
lcd.setCursor(4,0);
lcd.print("COUNTER");
lcd.setCursor(0,1);
lcd.print("No Visitors ");
delay(200);
}

في دالة ال(void loop) نقوم بقراءة اشارة الدخل من الحساس

void loop()
{ 
sensorState1 = digitalRead(sensorPin1);
sensorState2 = digitalRead(sensorPin2);

if(sensorState1 == LOW){
count++; 
delay(500);
}

if(sensorState2 == LOW){
count--; 
delay(500);
}

اذا كانت قيمة متغير عدد أفراد الغرفة (count) أقل أو يساوي 0 يتم ايقاف تشغيل الاضاءة و يتم طباعة “No Visitors” على الشاشة الكرستالية

if(count<=0)
{
digitalWrite(led, LOW); 
lcd.setCursor(0,1);
lcd.print("No visitors ");
}

اذا كانت قيمة متغير عدد أفراد الغرفة (count) وطباعة عدد أفراد الغرفة على الشاشة الكرستالية  أكبر من 0 يتم تشغيل الاضاءة

else (count>0 ){
digitalWrite(led, HIGH);
lcd.setCursor(0,1);
lcd.print("Visitors: ");
lcd.setCursor(12,1);
lcd.print(count);
lcd.setCursor(13,1);
lcd.print(" "); 

}

}
X
Product added to the cart