You are on page 1of 5

‫‪123‬‬ ‫اﻟﻔﺼﻞ اﻟﺴﺎدس‪ :‬اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ‬

‫اﻟﻤﺸﺮوع اﻟﺜﺎﻣﻦ‪:‬‬ ‫‪3.6‬‬


‫اﻟﺤﺴﺎس ﻟﻠﺼﻮت‬
‫َّ‬ ‫اﻟﻠﻴﺪ اﻟﻀﻮﺋﻲ‬
‫اﻟﺤﺴﺎس اﻟﺼﻮﺗﻲ‬
‫َّ‬ ‫ﻣﻔﻬﻮم‬ ‫‪1.3.6‬‬

‫ﺳﻨﺘﻌ ﱠﺮف ﰲ ﻫﺬا اﳌﴩوع ﻋﲆ ﻣﺎ ﻳُﺴ ﱠﻤﻰ ﺑﺎﻟﺤﺴﺎس اﻟﺼﻮيت )‪ . (microphone sound sensor‬ﻳﻌﻤﻞ ﻫﺬا‬
‫اﻟﺤﺴﺎس ﻋﲆ ﻗﻴﺎس ﻣﻘﺪار ارﺗﻔﺎع اﻟﺼﻮت ﰲ ﺑﻴﺌﺔ ﻣﻌﻴﱠﻨﺔ‪ .‬ﻳﻮﺟﺪ اﻟﻌﺪﻳﺪ ﻣﻦ اﻷﻧﻮاع ﻟﻬﺬا اﻟﺤﺴﺎس إﻻ أ ﱠن‬
‫ﱠ‬
‫واﻟﺤﺴﺎس ‪ KY-038‬اﳌ ُﺒ ﱠﻴﻨﺎن ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ‪:‬‬
‫ﱠ‬ ‫أﺷﻬﺮ ﻫﺬه اﻷﻧﻮاع ﻫام اﻟﺤﺴﺎس ‪LM393‬‬

‫ا )‪ :(4-6‬ا‪-8‬س ‪ LM393‬وا‪-8‬س ‪KY-038‬‬

‫ﻣﺘﻐرية ‪ potentiometer‬ﻟﻀﺒﻂ ﻛﺜﺎﻓﺔ اﻟﺨﺮج اﻟﺮﻗﻤﻲ‪ .‬ﻛام ﻫﻮ‬


‫ﻛﻞ ﻣﻦ اﻟﺤﺴﺎﺳني ﻳﺤﻮي ﻣﻘﺎوﻣﺔ ﺟﻬﺪ ﱢ‬ ‫ٌ‬
‫ﻣﻼﺣﻆ ﰲ اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ‪ ،‬ﻳﺤﻮي اﻟﻨﻮع ‪ LM393‬ﻋﲆ ‪ 3‬أرﺟﻞ ﺑﻴﻨام ﻳﺤﻮي اﻟﻨﻮع ‪ KY-038‬ﻋﲆ‬
‫‪ 4‬أرﺟﻞ‪ .‬ﻳﺘﻢ وﺻﻞ ﻫﺬه اﻷرﺟﻞ ﻣﻊ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ ﻛام ﻫﻮ ﻣﻮﺿﺢ ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ‪:‬‬

‫ا‪0:‬ول )‪ "+  :(1-6‬أر ا‪-8‬س ا) ‪


. 4 +‬أردو‬

‫‪ "+#‬و?>= ‪
. "#‬أردو‬ ‫<ع ا‬

‫ُ  إ
ى ا  ا    أردو ‬ ‫‪A0‬‬

‫ُ  إ
ى ا  ا"!     أردو ‬ ‫‪D0‬‬

‫ُ  ( ا'& ا‪%‬ر‪   # $ $‬أردو ‬ ‫‪GND‬‬

‫‪www.darshoaa.com‬‬
‫‪info@darshoaa.com‬‬
‫اﻟﻔﺼﻞ اﻟﺴﺎدس‪ :‬اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ‬ ‫‪124‬‬

‫‪ "+#‬و?>= ‪
. "#‬أردو‬ ‫<ع ا‬

‫ُ  ( ا) ‪   # $‬أردو ‬ ‫‪VCC‬‬

‫ُ  إ
ى ا  ا"!     أردو ‬ ‫‪OUT‬‬

‫اﻟﺤﺴﺎس ﻳﺘﻜﻮن ﻣﻦ اﻟﻌﻨﺎﴏ اﳌﺒ ﱠﻴﻨﺔ‬


‫اﻟﺤﺴﺎس اﻟﺼﻮيت ‪ LM393‬ﺣﻴﺚ أ ﱠن ﱠ‬
‫ﰲ ﻫﺬا اﳌﴩوع ﺗﻢ اﺳﺘﺨﺪام ﱠ‬
‫ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ‪:‬‬

‫ و   
ة ا ت‬ ‫

ر ا‬

‫ر ا‬
‫ ون‬
‫ا‬
‫ا!ر ‬

‫اج‬

‫( ‪LM393‬‬ ‫
&‪ّ%‬س ' ت‬

‫ا )‪ :(5-6‬ا <ت ا* ‪@-8>


-‬س ‪LM393‬‬

‫ﻛام أﴍﻧﺎ ﻣﺴﺒﻘﺎً‪ُ ،‬ميﻜﻦ اﻟﺘﺤﻜﻢ مبﻘﺪار اﻟﺤﺴﺎﺳﻴﺔ ﻟﺸ ﱠﺪة اﻟﺼﻮت ﻣﻦ ﺧﻼل اﳌﻘﺎوﻣﺔ اﳌﻮﺿﱠ ﺤﺔ ﰲ‬
‫اﻟﺸﻜﻞ اﻟﺴﺎﺑﻖ‪ .‬ﻛﻠام زادت ﻗﻴﻤﺔ ﻫﺬه اﳌﻘﺎوﻣﺔ ﻗﻠﱠﺖ اﻟﺤﺴﺎﺳﻴﺔ ﺗﺠﺎه اﻟﺼﻮت‪ .‬ﺳﻨﺘﻌ ﱠﺮف ﰲ ﻫﺬا‬
‫ﺣﺴﺎس ﻟﻠﺼﻮت‪ ،‬ﺣﻴﺚ ﺗﺘﻢ إﺿﺎءة ﻫﺬا اﻟﻠﻴﺪ ﺑﺸﻜﻞ آﱄ مبﺠﺮد‬
‫اﳌﴩوع ﻋﲆ ﻛﻴﻔﻴﺔ إﺿﺎءة ﻟﻴﺪ ﺿﻮيئ ﱠ‬
‫اﺳﺘﺸﻌﺎر ﻣﺼﺪر ﺻﻮيت ﺑﺎﻟﻘﺮب ﻣﻨﻪ‪.‬‬

‫اﻟﻌﻨﺎﺻﺮ اﻹﻟﻜﺘﺮوﻧﻴﺔ اﻟﻤﻄﻠﻮﺑﺔ‬ ‫‪2.3.6‬‬

‫ﻹﻧﺠﺎز ﻫﺬا اﳌﴩوع ﺳﻨﺤﺘﺎج إﱃ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ اﻟﺘﺎﻟﻴﺔ‪:‬‬

‫ﻟﻮﺣﺔ أردوﻳﻨﻮ ‪UNO‬‬

‫‪www.darshoaa.com‬‬
‫‪info@darshoaa.com‬‬
‫‪125‬‬ ‫اﻟﻔﺼﻞ اﻟﺴﺎدس‪ :‬اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ‬

‫ﻟﻮﺣﺔ ﻋﻤﻞ‬

‫‪LM393‬‬ ‫ﺣﺴﺎس ﺻﻮيت ﻧﻮع‬

‫ﻟﻴﺪ ﺿﻮيئ‬

‫‪200 Ω‬‬ ‫ﻣﻘﺎوﻣﺔ‬

‫أﺳﻼك ﺗﻮﺻﻴﻞ‬

‫ﺷﺮح ﻋﻤﻞ اﻟﻤﺸﺮوع‬ ‫‪3.3.6‬‬

‫ﻳﻌﻤﻞ ﻫﺬا اﳌﴩوع ﺑﺒﺴﺎﻃﺔ ﻋﲆ إﺿﺎءة ﻟﻴﺪ ﺿﻮيئ مبﺠ ﱠﺮد إﺻﺪار ﺻﻮت ﻣﺎ ﺑﺸ ﱠﺪ ٍة ُﻣﻌ ﱠﻴﻨ ٍﺔ ﺑﺠﺎﻧﺐ‬
‫اﻟﺪارة‪ ،‬ﺣﻴﺚ ﺗﺘﻢ ﻗﺮاءة ﻛﻤﻴﺔ اﻟﺼﻮت اﻟﺼﺎدر ﺑﺎﺳﺘﺨﺪام اﻟﺤﺴﺎس اﻟﺼﻮيت وﺗﺘﻢ إﺿﺎءة اﻟﻠﻴﺪ اﻟﻀﻮيئ‬
‫ﻟﺪى وﺻﻮل ﻛﻤﻴﺔ اﻟﺼﻮت اﻟﺼﺎدر إﱃ ﺷ ﱠﺪ ٍة ُﻣﻌ ﱠﻴﻨ ٍﺔ‪ .‬وﰲ ﺣﺎل ﺗﻮﻗﱡﻒ اﳌﺼﺪر اﻟﺼﻮيت ﻳﻌﻮد اﻟﻠﻴﺪ اﻟﻀﻮيئ‬
‫ﻟﻴﻨﻄﻔﺊ ﻣﺮ ًة أﺧﺮى‪ .‬ﻗﺒﻞ إﺿﺎﻓﺔ اﻟﻜﻮد اﻟﱪﻣﺠﻲ ﻧﺤﺎول ﺗﻮﺻﻴﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ‬
‫ﻛام ﰲ اﻟﺸﻜﻞ اﻟﺘﺎﱄ‪:‬‬

‫‪www.darshoaa.com‬‬
‫‪info@darshoaa.com‬‬
‫اﻟﻔﺼﻞ اﻟﺴﺎدس‪ :‬اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ‬ ‫‪126‬‬

‫ا )‪ :(6-6‬دارة  ‪@-. )*+ 0‬س >ت‬

‫ﻋﻨﺪ ﺗﻮﺻﻴﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﻣﻊ ﺑﻌﻀﻬﺎ اﻟﺒﻌﺾ ﻳﺠﺐ أن ﻧﺄﺧﺬ ﺑﻌني اﻻﻋﺘﺒﺎر اﻷﻣﻮر اﻟﺘﺎﻟﻴﺔ‪:‬‬
‫• ﺗﻢ ﺗﻮﺻﻴﻞ اﻟﻠﻴﺪ اﻟﻀﻮيئ إﱃ اﳌﺄﺧﺬ رﻗﻢ ‪ 13‬ﺿﻤﻦ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ‪.‬‬
‫• ﺗﻢ إﺳﺘﺨﺪام ﺣﺴﺎس ﺻﻮيت ﻣﻦ ﻧﻮع ‪ LM393‬اﻟﺬي ﻳﺤﻮي ‪ 3‬أرﺟﻞ ﻓﻘﻂ‪ .‬ﻛام أﴍﻧﺎ ﻣﺴﺒﻘﺎً ﻳﺠﺐ‬
‫اﻟﺤﺴﺎس اﻟﺼﻮيت إﱃ ﻣﺄﺧﺬ رﻗﻤﻲ‪ .‬ﰲ ﻣﺜﺎﻟﻨﺎ ﻫﻨﺎ ﺗﻢ وﺻﻞ ﻫﺬه اﻟﺮﺟﻞ ﻣﻊ‬ ‫وﺻﻞ اﻟﺮﺟﻞ )‪ (OUT‬ﰲ ﱠ‬
‫اﳌﺄﺧﺬ رﻗﻢ ‪ 7‬ﺿﻤﻦ ﻟﻮﺣﺔ اﻷردوﻳﻨﻮ‪ .‬ﺑﻌﺪ ذﻟﻚ ﻳﺘﻢ وﺻﻞ اﻟﺮﺟﻞ ‪ GND‬إﱃ ﻣﺄﺧﺬ اﻷرﴈ وﺗ ُﻮﺻﻞ‬
‫اﻟﺮﺟﻞ ‪ +5v‬إﱃ ﻣﺄﺧﺬ اﻟﺘﻐﺬﻳﺔ ﺿﻤﻦ ﻟﻮﺣﺔ أردوﻳﻨﻮ‪.‬‬
‫• ﺗﻢ ﺿﺒﻂ اﳌﻘﺎوﻣﺔ اﻟﺨﺎﺻﺔ ﺑﺎﻟﺸﺪة اﻟﺼﻮﺗﻴﺔ ﺑﺤﻴﺚ ﻳﺘﻢ اﻟﺘﺤﺴﺲ ﻟﻠﺼﻮت اﻟﺨﺎص ﺑﻄﻘﻄﻘﺔ أﺻﺎﺑﻊ‬
‫اﻟﺤﺴﺎس ﻟﻬﺬا اﻟﺼﻮت ﻋﻠﻴﻨﺎ ﺗﻐﻴري ﻗﻴﻤﺔ ﻫﺬه‬ ‫اﻟﻴﺪ‪ .‬ﰲ ﺣﺎل ﺗﻢ إﺻﺪار ﺻﻮت ُﻣﻌني ومل ﻳﺴﺘﺠﺐ ﱠ‬
‫اﳌﻘﺎوﻣﺔ زﻳﺎدة وﻧﻘﺼﺎﻧﺎً ﺣﺘﻰ ﻳﺘﻢ ﺿﺒﻄﻬﺎ ﺑﺎﻟﺸﻜﻞ اﳌﻄﻠﻮب‪.‬‬
‫ﺑﻌﺪ اﻟﺘﺤﻘﱡﻖ ﻣﻦ وﺻﻞ اﻟﻌﻨﺎﴏ اﻹﻟﻜﱰوﻧﻴﺔ ﺑﺎﻟﺸﻜﻞ اﳌﻄﻠﻮب ﻳﺘﻢ إدﺧﺎل اﻟﻜﻮد اﻟﱪﻣﺠﻲ اﻟﺘﺎﱄ ﺿﻤﻦ‬
‫ﺑﻴﺌﺔ ﺗﻄﻮﻳﺮ أردوﻳﻨﻮ‪:‬‬

‫;‪int ledPin=13‬‬
‫;‪int sensorPin=7‬‬

‫‪www.darshoaa.com‬‬
‫‪info@darshoaa.com‬‬
‫‪127‬‬ ‫اﻟﻔﺼﻞ اﻟﺴﺎدس‪ :‬اﻟﺘﺤﻜﻢ ﺑﺎﻷﺻﻮات ﰲ أردوﻳﻨﻮ‬

‫;‪boolean val =0‬‬

‫{)(‪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‬‬
‫}‬
‫}‬

‫ﺷﺮح اﻟﻜﻮد اﻟﺒﺮﻣﺠﻲ‬ ‫‪4.3.6‬‬

‫اﳌﺘﻐري ‪ 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‬‬

You might also like