الكود البرمجي
#define LED1 3
#define LED2 4
#define LED3 5
#define LED4 6
#define LED5 7
#define LED6 8
int value;
void setup()
{
//set pins attached to LEDs as outputs
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
}
void loop()
{
value = analogRead(5);
//glow the LEDs depending on the ammount of sound detected by the electret
if (value > 455 && value <555)
{//glow first LED
Clear(4);
Glow(4);
}
else if (value > 378 && value < 624)
{//glow 2nd LED
Clear(5);
Glow(5);
}
else if (value > 311 && value < 693)
{//glow 3rd LED
Clear(6);
Glow(6);
}
else if (value > 244 && value < 762)
{//glow 4th LED
Clear(7);
Glow(7);
}
else if (value > 177 && value < 831)
{//glow 5th LED
Clear(8);
Glow(8);
}
else if (value < 177 || value > 831)
{//glow 6th LED
Clear(9);
Glow(9);
}
}
void Glow(int initial)//function to glow LEDs
{
for(int i=3;i<initial;i++) digitalWrite(i,HIGH);
}
void Clear(int initial)//function to clear LEDs
{
for(int i=initial;i<9;i++) digitalWrite(i,LOW);
}
شرح الكود :
في البداية نقوم بتسمية منافذ الأردوينو المستخدمة في المشروع. ونقوم بالإعلان عن المتغير value الذي سيستخدم في تخزين قيمة قراءة الإشارة الصوتية :
#define LED1 3 #define LED2 4 #define LED3 5 #define LED4 6 #define LED5 7 #define LED6 8 int value;
في الدلة ()setup ، نقوم بضبط الإعدادات اللازمة مثل ضبط المنافذ الموصله مع الـ LEDs كمخرج :
void setup()
{
//set pins attached to LEDs as outputs
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(LED4,OUTPUT);
pinMode(LED5,OUTPUT);
pinMode(LED6,OUTPUT);
}
في الدالة ()loop ، نقوم بقراءة الإشارة الصوتية الناتجة عن المايكروفون بعد تكبيرها بواسطة LM386 :
value = analogRead(5);
بعد ذلك نقوم بإختبار القيمة المقاسه وإعتمادا على هذه القيمة نقوم بإضاءة الـ LEDs بإستخدام الدالتين Clear وGlow للتعبر عن مدى ارتفاع أو انخفاض شدة الإشارة الصوتية :
if (value > 455 && value <555)
{//glow first LED
Clear(4);
Glow(4);
}
else if (value > 378 && value < 624)
{//glow 2nd LED
Clear(5);
Glow(5);
}
else if (value > 311 && value < 693)
{//glow 3rd LED
Clear(6);
Glow(6);
}
else if (value > 244 && value < 762)
{//glow 4th LED
Clear(7);
Glow(7);
}
else if (value > 177 && value < 831)
{//glow 5th LED
Clear(8);
Glow(8);
}
else if (value < 177 || value > 831)
{//glow 6th LED
Clear(9);
Glow(9);
}
نستخدم الدالة Glow لإضاءة الـ LEDs تدريجيا حسب قيمة شدة الصوت :
void Glow(int initial)//function to glow LEDs
{
for(int i=3;i<initial;i++) digitalWrite(i,HIGH);
}
نستخدم الدالة Clear لإطفاء الـ LEDs تدريجيا حسب قيمة شدة الصوت :
void Clear(int initial)//function to clear LEDs
{
for(int i=initial;i<9;i++) digitalWrite(i,LOW);
}

