الكود البرمجي
قم برفع الكود البرمجي التالي على لوحة الاردوينو
#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(" ");
}
}

