You are on page 1of 8

‫اردوﻳﻨﻮ – اﻟﺪرس اﻟﺜﺎﻟﺚ ﻋﺸﺮ – ﻋﺮض درﺟﺔ اﻟﺤﺮارة واﻻﺿﺎءة‬

‫ﻋﻠ‪ ‬اﻟﺸﺎﺷﺔ )اﻟﺠﺰء اﻟﺜﺎﻧ‪(‬‬

‫ﻣﻘﺪﻣﺔ‬
‫ﻓ‪ ‬ﻫﺬا اﻟﺪرس ﺳﺘﺘﻌﻠﻢ ﻛﻴﻔﻴﺔ ﻋﺮض درﺟﺔ اﻟﺤﺮارة واﻻﺿﺎءة ﻓ‪ ‬اﻟﻐﺮﻓﺔ ﻋﻠ‪ ‬اﻟﺸﺎﺷﺔ اﻟ‪‬ﺮﺳﺘﺎﻟﻴﺔ ‪.LCD‬‬

‫ﺳﺘﻘﻮم ﺑﻘﻴﺎس درﺟﺔ ﺳﻄﻮع اﺿﺎءة اﻟﻐﺮﻓﺔ ﻋﺒﺮ ﻣﺴﺘﺸﻌﺮ اﻻﺿﺎءة ‘‪ ’photocell‬اﻟﺬي ﻗﻤﺖ ﺑﺈﺳﺘﺨﺪاﻣﻪ ﻓ‪ ‬اﻟﺪرس اﻟﻌﺎﺷﺮ‪.‬‬

‫ﻟﻘﻴﺎس درﺟﺔ اﻟﺤﺮارة ﺳﺘﺴﺘﺨﺪم ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة ‪ .‬ﻫﺬه اﻻداة ﺗﻤﺘﻠﻚ ﺛﻼث رؤوس‪ ،‬واﺣﺪة ﻟﻠﺤﺼﻮل ﻋﻠ‪ ‬ﻃﺎﻗﺔ ‪ 5V‬وواﺣﺪة ﻟﻠﻤﺨﺮج‬
‫اﻷرﺿ‪ GND ‬وواﺣﺪة ﻷﺟﻞ اﻟﺘﻮﺻﻴﻞ إﻟ‪ ‬ﻣﺪﺧﻞ ﺗﻨﺎﻇﺮي ‪ analog input‬ﺑﺎﻻردوﻳﻨﻮ‪.‬‬

‫اﻟﻤﻮاد واﻷدوات‬

‫‪1/8‬‬
(LCD Display (16×2 characters ×1

(10kΩ variable resistor (pot ‫× ﻣﻘﺎوم ﻣﺘﻐﻴﺮ‬1

(kΩ Resistor 1) ×1

2/8
(Photocell) ‫× اﻟﻤﺴﺘﺸﻌﺮ اﻟﻀﻮﺋ‬1

(TMP36 temperature sensor) ‫× ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة‬1

3/8
‫‪ ×1‬ﻟﻮﺣﺔ اﻟﺘﺠﺎرب )‪(Half-size Breadboard‬‬

‫‪ ×1‬اردوﻳﻨﻮ اوﻧﻮ‬

‫‪4/8‬‬
‫ﺣﺰﻣﺔ أﺳﻼك ﺗﻮﺻﻴﻞ )ذﻛﺮ‐ذﻛﺮ(‬

‫‪ ×1‬ﺳﻠﻚ اردوﻳﻨﻮ‬

‫ﺗﻮﺻﻴﻞ اﻟﺪاﺋﺮة‬
‫ﺣﺘ‪ ‬ﺗﺘﻤ‪‬ﻦ ﻣﻦ ﻋﺮض درﺟﺔ اﻟﺤﺮارة واﻻﺿﺎءة ﻋﻠﻴﻚ اﻟﺮﺟﻮع ﻟﺘﺼﻤﻴﻢ اﻟﺪاﺋﺮة ﻓ‪ ‬اﻟﺪرس اﻟﺜﺎﻧ‪ ‬ﻋﺸﺮ‪:‬‬

‫‪5/8‬‬
‫ﻗﻤﻨﺎ ﺑﺘﻐﻴﻴﺮ ﺑﻌﺾ اﻟﺘﻮﺻﻴﻼت ﻓ‪ ‬اﻟﺘﺼﻤﻴﻢ ﻛﻤﺎ ﺗﻼﺣﻆ‪ ،‬ﺗﺤﺪﻳﺪاً اﻟﺘﻮﺻﻴﻼت اﻟﺘ‪ ‬ﺣﻮل اﻟﻤﻘﺎوم اﻟﻤﺘﻐﻴﺮ ‘‪. ’pot‬‬

‫ﻣﺴﺘﺸﻌﺮ اﻟﻀﻮء ‘‪ ’photocell‬واﻟﻤﻘﺎوﻣﻪ ‪ 1kΩ‬و ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة ‪ TMP36‬ﻫ‪ ‬اﻻﺿﺎﻓﺎت اﻟﺘ‪ ‬ﻗﻤﻨﺎ ﺑﺎﺿﺎﻓﺘﻬﺎ ﻟﻠﻮح اﻟﺘﺠﺎرب‪ .‬اﻟﺠﺰء‬
‫اﻟﻤﻘﻮس ﻟﻤﺴﺘﺸﻌﺮ اﻟﺤﺮارة ‪ TMP36‬ﻳ‪‬ﻮن ﺑﺈﺗﺠﺎه اﻟﺸﺎﺷﺔ‪.‬‬

‫اﻟ‪‬ﻮد اﻟﺒﺮﻣﺠ‪‬‬
‫اﻟ‪‬ﻮد اﻟﺒﺮﻣﺠ‪ ‬ﻟﻬﺬا اﻟﺪرس ﻳﻌﺘﻤﺪ ﻋﻠ‪ ‬اﻟ‪‬ﻮد اﻟﺒﺮﻣﺠ‪ ‬ﻟﻠﺪرس اﻟﺜﺎﻧ‪ ‬ﻋﺸﺮ‪ ،‬وﻗﻤﻨﺎ ﺑﺎﺿﺎﻓﺔ ﺑﻌﺾ اﻻﺳﻄﺮ ﻟﻨﺘﻤ‪‬ﻦ ﻣﻦ ﻋﺮض درﺟﺔ اﻟﺤﺮارة‬
‫واﻻﺿﺎءة ﻋﻠ‪ ‬ﺷﺎﺷﺔ ‪LCD‬‬

‫>‪#include <LiquidCrystal.h‬‬

‫;‪int tempPin = 0‬‬


‫;‪int lightPin = 1‬‬

‫‪//‬‬ ‫‪BS E D4 D5 D6 D7‬‬


‫;)‪LiquidCrystal lcd(7, 8, 9, 10, 11, 12‬‬

‫)(‪void setup‬‬
‫{‬
‫;)‪lcd.begin(16, 2‬‬
‫}‬

‫)(‪void loop‬‬
‫{‬

‫‪6/8‬‬
‫‪// Display Temperature in C‬‬
‫;)‪int tempReading = analogRead(tempPin‬‬
‫;‪float tempVolts = tempReading * 5.0 / 1024.0‬‬
‫;‪float tempC = (tempVolts - 0.5) * 100.0‬‬
‫;‪float tempF = tempC * 9.0 / 5.0 + 32.0‬‬
‫‪//‬‬ ‫‪----------------‬‬
‫‪lcd.print("Temp‬‬ ‫;)" ‪F‬‬
‫;)‪lcd.setCursor(6, 0‬‬
‫;)‪lcd.print(tempF‬‬

‫‪// Display Light on second row‬‬


‫;)‪int lightReading = analogRead(lightPin‬‬
‫;)‪lcd.setCursor(0, 1‬‬
‫‪//‬‬ ‫‪----------------‬‬
‫‪lcd.print("Light‬‬ ‫;)"‬
‫;)‪lcd.setCursor(6, 1‬‬
‫;)‪lcd.print(lightReading‬‬
‫;)‪delay(500‬‬
‫}‬

‫ﻓ‪ ‬اﻟﺴﻄﺮ اﻟﺘﺎﻟ‪ ‬ﻗﻤﻨﺎ ﺑﻮﺿﻊ ﺗﻌﻠﻴﻖ ‘‪ ’comment‬ﻟﻤﻌﺮﻓﺔ اﻟﺘﻮﺻﻴﻼت ﻣﺎ ﺑﻴﻦ ﻣﻨﺎﻓﺬ اﻻردوﻳﻨﻮ ورؤوس ﺷﺎﺷﺔ الـ‪LCD‬‬

‫‪//‬‬ ‫‪BS E D4 D5 D6 D7‬‬


‫;)‪LiquidCrystal lcd(7, 8, 9, 10, 11, 12‬‬

‫ﻫﺬا ﻳﺴﻬﻞ ﻋﻤﻠﻴﺔ اﻟﺘﻌﺪﻳﻞ واﺳﺘﺨﺪام ﻣﻨﺎﻓﺬ اﺧﺮى ﻣﻦ اﺧﺘﻴﺎرك اذا رﻏﺒﺖ ﻻﺣﻘﺎً‪.‬‬

‫ﻓ‪ ‬داﻟﺔ ‪ setup‬ﻫﻨﺎﻟﻚ اﻣﺮﻳﻦ ﻋﻠﻴﻨﺎ اﻟﻘﻴﺎم ﺑﻬﺎ ‪ ،‬اﻷول ﻋﻠﻴﻨﺎ ﺗﺤﻮﻳﻞ اﻟﻘﻴﻤﺔ اﻟﺘﻨﺎﻇﺮﻳﺔ ‪ analog‬ﻟﻤﺴﺘﺸﻌﺮ اﻟﺤﺮارة إﻟ‪ ‬ﻣﻘﻴﺎس ﺣﺮارة ﺻﺤﻴﺢ‬
‫‪ ،‬واﻟﺜﺎﻧ‪ ‬ﻫﻮ اﻇﻬﺎرﻫﺎ ﻋﻠ‪ ‬ﺷﺎﺷﺔ الـ‪LCD‬‬

‫أوﻻ ﻟﻨﻠﻘ‪ ‬ﻧﻈﺮة ﻋﻠ‪ ‬ﻃﺮﻳﻘﺔ ﺗﺤﻮﻳﻞ واﺣﺘﺴﺎب درﺟﺔ اﻟﺤﺮارة‪:‬‬

‫;)‪int tempReading = analogRead(tempPin‬‬


‫;‪float tempVolts = tempReading * 5.0 / 1024.0‬‬
‫;‪float tempC = (tempVolts - 0.5) * 100.0‬‬
‫;‪float tempF = tempC * 9.0 / 5.0 + 32.0‬‬

‫ﻗﻤﻨﺎ ﺑﺎﻟﺴﻄﺮ اﻷول ﺑﻘﺮاءة اﻟﻘﻴﻤﺔ اﻟﺘﻨﺎﻇﺮﻳﺔ ﻣﻦ ﻣﺴﺘﺸﻌﺮ اﻟﺤﺮارة وﺗﺨﺰﻳﻦ اﻟﻘﻴﻤﺔ ﻓ‪tempReading ‬‬
‫اﻟﺴﻄﺮ اﻟﺜﺎﻧ‪ ‬ﻗﻤﻨﺎ ﺑﻀﺮب ﻗﻴﻤﺔ ‪ tempReading‬ﻓ‪ 5 ‬ﺛﻢ اﻟﻘﺴﻤﺔ ﻋﻠ‪ 1024 ‬وﺗﺨﺰﻳﻦ اﻟﻨﺎﺗﺞ ﻓ‪ tempVolts ‬وﻫ‪ ‬ﻗﻴﻤﺔ اﻟﺠﻬﺪ ) ﻣﺎﺑﻴﻦ ‪0‬‬
‫و‪(5‬‬
‫اﻟﺴﻄﺮ اﻟﺜﺎﻟﺚ ﻗﻤﻨﺎ ﺑﻄﺮح ‪ 0.5‬ﻣﻦ ﻗﻴﻤﺔ ‪) tempVolts‬اﻟﺠﻬﺪ( ﺛﻢ ﺿﺮﺑﻬﺎ ﻓ‪ 100 ‬وﺗﺨﺰﻳﻦ اﻟﻘﻴﻤﺔ ﻓ‪ tempC ‬وذﻟﻚ ﻟﺘﺤﻮﻳﻞ اﻟﺠﻬﺪ إﻟ‪‬‬
‫درﺟﺔ اﻟﺤﺮارة ‪C‬‬
‫اﻟﺴﻄﺮ اﻟﺮاﺑﻊ ﻗﻤﻨﺎ ﺑﻀﺮب ﻗﻴﻤﺔ ‪) tempC‬درﺟﺔ ﺣﺮارة ‪ (C‬ﻓ‪ 9 ‬ﺛﻢ ﻗﺴﻤﺘﻬﺎ ﻋﻠ‪ 5 ‬ﺛﻢ ﺟﻤﻌﻬﺎ‪ 32+‬وﺗﺨﺰﻳﻦ اﻟﻘﻴﻤﺔ ﻓ‪ tempF ‬وذﻟﻚ‬
‫ﻟﺘﺤﻮﻳﻞ درﺟﺔ اﻟﺤﺮارة ‪ C‬إﻟ‪ ‬درﺟﺔ ﺣﺮارة ‪F‬‬

‫ﻋﺮض اﻟﻘﺮاءات ﻋﻠ‪ ‬ﺷﺎﺷﺔ ‪ LCD‬ﻗﺪ ﺗ‪‬ﻮن ﺻﻌﺒﺔ وذﻟﻚ ﻻﺳﺘﻤﺮار ﺗﻐﻴﺮ ﻗﻴﻢ اﻟﻘﺮاءات وﻋﺪد ﺧﺎﻧﺎت اﻟﻘﺮاءة ﻣﻤﺎ ﻳﺠﻌﻞ ﺧﺎﻧﺎت اﻟﻘﺮاءة‬
‫اﻟﻘﺪﻳﻤﺔ ﺗﺬﻫﺐ ﻳﺴﺎر اﻟﺸﺎﺷﺔ‪.‬‬

‫ﻟﺤﻞ ﻫﺬه اﻟﻤﺸ‪‬ﻠﺔ ‪ ،‬ﻛﻞ ﻣﺎﻋﻠﻴﻚ ﻓﻌﻠﻪ ﻫﻮ ﻃﺒﺎﻋﺔ اﻟﺴﻄﺮ ﻛﺎﻣﻼ‪ ‬ﻓ‪ ‬ﻛﻞ ﻣﺮه ‪ ،‬داﺧﻞ داﻟﺔ ‪.loop‬‬

‫‪7/8‬‬
‫‪//‬‬ ‫‪----------------‬‬
‫‪lcd.print("Temp‬‬ ‫;)" ‪F‬‬
‫;)‪lcd.setCursor(6, 0‬‬
‫;)‪lcd.print(tempF‬‬

‫ﺳﻄﺮ اﻟﺘﻌﻠﻴﻖ ‘‪ ’comment‬وﺿﻊ ﻻﺟﻠﻚ ﺣﺘ‪ ‬ﺗﻌﺮف ﻋﺪد اﻟﺨﺎﻧﺎت ‪ 16‬اﻟﺘ‪ ‬ﻳﻤ‪‬ﻦ اﻇﻬﺎرﻫﺎ ﻓ‪ ‬ﺷﺎﺷﺔ ‪ LCD‬ﻓ‪ ‬ﺣﺎل رﻏﺒﺖ ﻓ‪ ‬ﺑﺘﻐﻴﻴﺮ‬
‫اﻟﺠﻤﻞ اﻟﺘ‪ ‬ﺗﺮﻏﺐ وﺿﻌﻬﺎ اﺳﻔﻠﻬﺎ‪.‬‬

‫ﻟﻤﻞء اﻟﻔﺮاﻏﺎت ‪ ،‬ﻗﻢ ﺑﺘﺤﺪﻳﺪ ﻣﻮﺿﻊ اﻟﻤﺆﺷﺮ ﺣﻴﺚ ﺑﺪاﻳﺔ اﻟﺨﺎﻧﺔ اﻟﺘ‪ ‬ﺗﺮﻏﺐ ﺑﺈﻇﻬﺎرﻫﺎ ﻋﻠ‪ ‬اﻟﺸﺎﺷﺔ‪.‬‬

‫ﻗﻤﻨﺎ ﺑﻌﻤﻞ ﻧﻔﺲ اﻟﻄﺮﻳﻘﺔ ﻣﻊ ﻣﺴﺘﺸﻌﺮ اﻻﺿﺎءة ‘‪ ، ’photocell‬ﻻﻳﻮﺟﺪ ﻣﻘﻴﺎس ﻟﺪرﺟﺔ ﺳﻄﻮع اﻟﻀﻮء ﻟﺬﻟﻚ ﻗﻤﻨﺎ ﺑﺈﻇﻬﺎر اﻟﻘﺮاءة اﻟﺘﻨﺎﻇﺮﻳﺔ‬
‫‪ analogRead‬اﻟﺘ‪ ‬ﺣﺼﻠﻨﺎ ﻋﻠﻴﻬﺎ ﻣﻦ اﻟﻤﺴﺘﺸﻌﺮ ﻣﺒﺎﺷﺮة ﻋﻠ‪ ‬اﻟﺸﺎﺷﺔ‪.‬‬

‫ﺑﻌﺪ رﻓﻊ اﻟ‪‬ﻮد ﻋﻠ‪ ‬اﻻردوﻳﻨﻮ ﺳﺘﺘﻤ‪‬ﻦ ﻣﻦ ﻋﺮض ﻋﺮض درﺟﺔ اﻟﺤﺮارة واﻻﺿﺎءة‪.‬‬

‫أﻧﺸﻄﺔ أﺧﺮى‬
‫ﺣﺎول ان ﺗﻈﻬﺮ درﺟﺔ اﻟﺤﺮارة اﻟﻤﺌﻮﻳﺔ ‪ C‬ﺑﺪﻻ‪ ‬ﻣﻦ اﻟﻔﻬﺮﻧﻬﺎﻳﺖ ‪F‬‬

‫‪8/8‬‬

You might also like