Professional Documents
Culture Documents
ﺳﻨﺘﻌ ﱠﺮف ﰲ ﻫﺬا اﳌﴩوع ﻋﲆ ﻣﺎ ﻳُﺴ ﱠﻤﻰ ﺑﺎﻟﺤﺴﺎس اﻟﺼﻮيت ) . (microphone sound sensorﻳﻌﻤﻞ ﻫﺬا
اﻟﺤﺴﺎس ﻋﲆ ﻗﻴﺎس ﻣﻘﺪار ارﺗﻔﺎع اﻟﺼﻮت ﰲ ﺑﻴﺌﺔ ﻣﻌﻴﱠﻨﺔ .ﻳﻮﺟﺪ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻧﻮاع ﻟﻬﺬا اﻟﺤﺴﺎس إﻻ أ ﱠن
ﱠ
واﻟﺤﺴﺎس KY-038اﳌ ُﺒ ﱠﻴﻨﺎن ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ:
ﱠ أﺷﻬﺮ ﻫﺬه اﻷﻧﻮاع ﻫام اﻟﺤﺴﺎس LM393
"+#و?>=
. "#أردو <ع ا
ُ إ
ى ا ا أردو
A0
ُ إ
ى ا ا"! أردو
D0
www.darshoaa.com
info@darshoaa.com
اﻟﻔﺼﻞ اﻟﺴﺎدس :اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ 124
"+#و?>=
. "#أردو <ع ا
ُ إ
ى ا ا"! أردو
OUT
و
ة ات
ر ا
ر ا
ون
ا
ا!ر
اج
( LM393
&ّ%س 'ت
ﻛام أﴍﻧﺎ ﻣﺴﺒﻘﺎًُ ،ميﻜﻦ اﻟﺘﺤﻜﻢ مبﻘﺪار اﻟﺤﺴﺎﺳﻴﺔ ﻟﺸ ﱠﺪة اﻟﺼﻮت ﻣﻦ ﺧﻼل اﳌﻘﺎوﻣﺔ اﳌﻮﺿﱠ ﺤﺔ ﰲ
اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ .ﻛﻠام زادت ﻗﻴﻤﺔ ﻫﺬه اﳌﻘﺎوﻣﺔ ﻗﻠﱠﺖ اﻟﺤﺴﺎﺳﻴﺔ ﺗﺠﺎه اﻟﺼﻮت .ﺳﻨﺘﻌ ﱠﺮف ﰲ ﻫﺬا
ﺣﺴﺎس ﻟﻠﺼﻮت ،ﺣﻴﺚ ﺗﺘﻢ إﺿﺎءة ﻫﺬا اﻟﻠﻴﺪ ﺑﺸﻜﻞ آﱄ مبﺠﺮد
اﳌﴩوع ﻋﲆ ﻛﻴﻔﻴﺔ إﺿﺎءة ﻟﻴﺪ ﺿﻮيئ ﱠ
اﺳﺘﺸﻌﺎر ﻣﺼﺪر ﺻﻮيت ﺑﺎﻟﻘﺮب ﻣﻨﻪ.
www.darshoaa.com
info@darshoaa.com
125 اﻟﻔﺼﻞ اﻟﺴﺎدس :اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ
ﻟﻮﺣﺔ ﻋﻤﻞ
ﻟﻴﺪ ﺿﻮيئ
أﺳﻼك ﺗﻮﺻﻴﻞ
ﻳﻌﻤﻞ ﻫﺬا اﳌﴩوع ﺑﺒﺴﺎﻃﺔ ﻋﲆ إﺿﺎءة ﻟﻴﺪ ﺿﻮيئ مبﺠ ﱠﺮد إﺻﺪار ﺻﻮت ﻣﺎ ﺑﺸ ﱠﺪ ٍة ُﻣﻌ ﱠﻴﻨ ٍﺔ ﺑﺠﺎﻧﺐ
اﻟﺪارة ،ﺣﻴﺚ ﺗﺘﻢ ﻗﺮاءة ﻛﻤﻴﺔ اﻟﺼﻮت اﻟﺼﺎدر ﺑﺎﺳﺘﺨﺪام اﻟﺤﺴﺎس اﻟﺼﻮيت وﺗﺘﻢ إﺿﺎءة اﻟﻠﻴﺪ اﻟﻀﻮيئ
ﻟﺪى وﺻﻮل ﻛﻤﻴﺔ اﻟﺼﻮت اﻟﺼﺎدر إﱃ ﺷ ﱠﺪ ٍة ُﻣﻌ ﱠﻴﻨ ٍﺔ .وﰲ ﺣﺎل ﺗﻮﻗﱡﻒ اﳌﺼﺪر اﻟﺼﻮيت ﻳﻌﻮد اﻟﻠﻴﺪ اﻟﻀﻮيئ
ﻟﻴﻨﻄﻔﺊ ﻣﺮ ًة أﺧﺮى .ﻗﺒﻞ إﺿﺎﻓﺔ اﻟﻜﻮد اﻟﱪﻣﺠﻲ ﻧﺤﺎول ﺗﻮﺻﻴﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ
ﻛام ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ:
www.darshoaa.com
info@darshoaa.com
اﻟﻔﺼﻞ اﻟﺴﺎدس :اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ 126
ﻋﻨﺪ ﺗﻮﺻﻴﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ ﻳﺠﺐ أن ﻧﺄﺧﺬ ﺑﻌني اﻻﻋﺘﺒﺎر اﻷﻣﻮر اﻟﺘﺎﻟﻴﺔ:
• ﺗﻢ ﺗﻮﺻﻴﻞ اﻟﻠﻴﺪ اﻟﻀﻮيئ إﱃ اﳌﺄﺧﺬ رﻗﻢ 13ﺿﻤﻦ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ.
• ﺗﻢ إﺳﺘﺨﺪام ﺣﺴﺎس ﺻﻮيت ﻣﻦ ﻧﻮع LM393اﻟﺬي ﻳﺤﻮي 3أرﺟﻞ ﻓﻘﻂ .ﻛام أﴍﻧﺎ ﻣﺴﺒﻘﺎً ﻳﺠﺐ
اﻟﺤﺴﺎس اﻟﺼﻮيت إﱃ ﻣﺄﺧﺬ رﻗﻤﻲ .ﰲ ﻣﺜﺎﻟﻨﺎ ﻫﻨﺎ ﺗﻢ وﺻﻞ ﻫﺬه اﻟﺮﺟﻞ ﻣﻊ وﺻﻞ اﻟﺮﺟﻞ ) (OUTﰲ ﱠ
اﳌﺄﺧﺬ رﻗﻢ 7ﺿﻤﻦ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ .ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ وﺻﻞ اﻟﺮﺟﻞ GNDإﱃ ﻣﺄﺧﺬ اﻷرﴈ وﺗ ُﻮﺻﻞ
اﻟﺮﺟﻞ +5vإﱃ ﻣﺄﺧﺬ اﻟﺘﻐﺬﻳﺔ ﺿﻤﻦ ﻟﻮﺣﺔ أردوﻳﻨﻮ.
• ﺗﻢ ﺿﺒﻂ اﳌﻘﺎوﻣﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﺸﺪة اﻟﺼﻮﺗﻴﺔ ﺑﺤﻴﺚ ﻳﺘﻢ اﻟﺘﺤﺴﺲ ﻟﻠﺼﻮت اﻟﺨﺎص ﺑﻄﻘﻄﻘﺔ أﺻﺎﺑﻊ
اﻟﺤﺴﺎس ﻟﻬﺬا اﻟﺼﻮت ﻋﻠﻴﻨﺎ ﺗﻐﻴري ﻗﻴﻤﺔ ﻫﺬه اﻟﻴﺪ .ﰲ ﺣﺎل ﺗﻢ إﺻﺪار ﺻﻮت ُﻣﻌني ومل ﻳﺴﺘﺠﺐ ﱠ
اﳌﻘﺎوﻣﺔ زﻳﺎدة وﻧﻘﺼﺎﻧﺎً ﺣﺘﻰ ﻳﺘﻢ ﺿﺒﻄﻬﺎ ﺑﺎﻟﺸﻜﻞ اﳌﻄﻠﻮب.
ﺑﻌﺪ اﻟﺘﺤﻘﱡﻖ ﻣﻦ وﺻﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﺑﺎﻟﺸﻜﻞ اﳌﻄﻠﻮب ﻳﺘﻢ إدﺧﺎل اﻟﻜﻮد اﻟﱪﻣﺠﻲ اﻟﺘﺎﱄ ﺿﻤﻦ
ﺑﻴﺌﺔ ﺗﻄﻮﻳﺮ أردوﻳﻨﻮ:
;int ledPin=13
;int sensorPin=7
www.darshoaa.com
info@darshoaa.com
127 اﻟﻔﺼﻞ اﻟﺴﺎدس :اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ
{)(void setup
;)pinMode(ledPin, OUTPUT
;)pinMode(sensorPin, INPUT
;)Serial.begin (9600
}
{)( void loop
;)val =digitalRead(sensorPin
;)Serial.println (val
س ا
أآ& %ا ا#$د ! إ
ءة ا
ا
//
ا
{ )if (val==HIGH
;)digitalWrite(ledPin, HIGH
}
{ else
;)digitalWrite(ledPin, LOW
}
}
اﳌﺘﻐري sensorPin=7اﻟﺬي ُميﺜﻞ رﻗﻢ اﳌﺄﺧﺬ اﳌﻮﺻﻮل ﻣﻊ اﻟﺤﺴﺎس اﻟﺼﻮيت ﻛام ﺗ ﱠﻢ
ﰲ اﻟﺒﺪاﻳﺔ ﺗﻢ ﺗﻌﺮﻳﻒ ﱢ
اﳌﺘﻐري
اﳌﺘﻐري ledPin=13اﻟﺬي ُميﺜﱢﻞ اﳌﺄﺧﺬ اﳌﻮﺻﻮل ﻣﻊ اﻟﻠﻴﺪ اﻟﻀﻮيئ .ﻛﺬﻟﻚ ﻓﻘﺪ ﺗﻢ ﺗﻌﺮﻳﻒ ﱢ
ﺗﻌﺮﻳﻒ ﱢ
اﳌﺘﻐري ﻻﺳﺘﻘﺒﺎل اﻟﻘﻴﻤﺔ اﳌﻘﺮوءة ﻣﻦ اﻟﺤﺴﺎس اﻟﺼﻮيت .ﻫﺬه ﱢ valﻣﻦ اﻟﻨﻮع اﳌﻨﻄﻘﻲ .ﻳُﺴﺘﺨﺪم ﻫﺬا
اﻟﺘﺤﺴﺲ ﻟﺼﻮت ﻓﻮق اﻟﺸﺪة اﻟﺼﻮﺗﻴﺔ ﱡ اﻟﻘﻴﻤﺔ إﻣﺎ أن ﺗﻜﻮن ) (HIGHأو أن ﺗﻜﻮن ) .(LOWﰲ ﺣﺎل
اﻟﺤﺴﺎس ﻳُﻌﻴﺪ اﻟﻘﻴﻤﺔ ) (HIGHوإﻻ ﺳ ُﻴﻌﻴﺪ اﻟﻘﻴﻤﺔ ).(LOW
اﳌ ُﺤ ﱠﺪدة ﻋﻦ ﻃﺮﻳﻖ اﳌﻘﺎوﻣﺔ ﻓﺈنﱠ ﱠ
ﰲ اﻟﺘﺎﺑﻊ )( setupمتﺖ ﺗﻬﻴﺌﺔ اﳌﺄﺧﺬ اﳌﻮﺻﻮل ﻣﻊ اﻟﻠﻴﺪ اﻟﻀﻮيئ ﻛأمﺧﺬ ﺧﺮج ،أﻣﺎ اﳌﺄﺧﺬ اﳌﻮﺻﻮل ﻣﻊ
اﻟﺤﺴﺎس اﻟﺼﻮيت ﻓﻘﺪ متﱠﺖ ﺗﻬﻴﺌﺘﻪ ﻋﲆ أﻧﻪ ﻣﺄﺧﺬ دﺧﻞ ،ﻛام ﺗ ﱠﻢ ﺿﺒﻂ ﴎﻋﺔ ﺷﺎﺷﺔ اﻟﻌﺮض اﻟﺘﺴﻠﺴﲇ. ﱠ
ﺑﻌﺪ ذﻟﻚ ﻳﺒﺪأ ﻋﻤﻞ اﻟﺘﺎﺑﻊ )( .loopﻳﺘﻢ أوﻻً ﻗﺮاءة اﻟﻘﻴﻤﺔ اﻟﻨﺎﺗﺠﺔ ﻋﻦ اﻟﺤﺴﺎس اﻟﺼﻮيت وﺗﺨﺰﻳﻦ ﻫﺬه
اﳌﺘﻐري valوﻣﻦ ﺛﻢ ﻋﺮض ﻫﺬه اﻟﻘﻴﻤﺔ ﺿﻤﻦ ﺷﺎﺷﺔ اﻟﻌﺮض اﻟﺘﺴﻠﺴﲇ: اﻟﻘﻴﻤﺔ ﺿﻤﻦ ﱢ
;)val =digitalRead(sensorPin
;)Serial.println (val
ﻟيك ﻧﺘﻤﻜﻦ ﻣﻦ إﺿﺎءة اﻟﻠﻴﺪ اﻟﻀﻮيئ ،ﺗﻢ وﺿﻊ ﻋﺒﺎرة ﴍﻃﻴﺔ ﻟﻠﺘﺤﻘﱡﻖ ﻣﻦ اﻟﻘﻴﻤﺔ اﳌﻘﺮوءة ﻣﻦ
اﻟﺤﺴﺎس ﺑﺎﺳﺘﺸﻌﺎر ﻫﺬا اﻟﺼﻮت وإرﺳﺎل
اﻟﺤﺴﺎس اﻟﺼﻮيت .ﻋﻨﺪ إﺻﺪار ﺻﻮت ﺑﺸ ﱢﺪة ﻣﻌﻴﱠﻨﺔ ﻳﻘﻮم ﱠ
ﱠ
اﻟﻘﻴﻤﺔ ) (HIGHوإﻻ ﻳُﺮﺳﻞ اﻟﻘﻴﻤﺔ ).(LOW
{ )if (val==HIGH
;)digitalWrite(ledPin, HIGH
www.darshoaa.com
info@darshoaa.com