الكود البرمجي
#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); }