عرض درجة الحرارة علي السفن سجمنت وتشغيل الموتور اكتب تعليقُا

مقدمـــــــــــــــة عن المشروع

هذا المشروع يناقش فكرة التحكم في المنازل الذكية وكيفيت ترشيد الطاقة بها من خلال تشغيل الاجهزة الكهربائية عند الحاجة اليها فقط وأطفاءها عند الأستغناء عنها .

المراوح بمختلف أنوعها واحدة من مستهلكات الطاقة الكهربائية لأنها تحتوي علي عناصر حثية , وهذه العناصر الحثية معلوم عنها تقلل من معامل القدرة مما يعني أستهلاك كبير للطاقة .

للحد من أستهلاك الطاقة نستخدم حساس درجة الحرارة ليعمل علي مراقبة أجهزة التبريد والتكيف ويعمل علي تشغيلها على حسب حالة الجوي المحيط بها .

يتم أستخدام محرك DC صغير في المشروع  للدلالة على المروحة وكلما أرتفعت درجة الحرارة  أرتفعت سرعة المحرك والعكس بالعكس أي العلاقة ذات تناسب طردي .

يستخدم مع المشروع عارض الارقام المعروف بأسم 7segment Display  لعرض قيمة درجة الحرارة الفعلية .

متطلبات المشروع

  • Seven-segment display
  • Arduino Uno
  • Hook Up Wires
  • breadboard‬‬ Board‬
  • DC motor
  • LM35 Temperature Sensor

طريقة العمل والتوصيل

طريقة ربط حساس درجة الحرارة  مع الأردوينو تمت مناقشتها سبقا يمكنك الأطلاع عليها من هنـــــا .

الان نوضح طريقة ربط السفن سجمنت مع الاردوينو . يتم توصيل السفن سجمنت من النوع كمن أنود كما موضح بالمخطط حيث نحتاج الي توزيع قطع السفن سجمنت (4 قطع ) لتتوصل جميع اللدات بها  بالتوالي  ونوصل بقية الاطراف الي الاردوينو في المنافذ الرقمية من 2 الي 12 .

يتم ربط الموتور علي الطرف التماثلي 2 نسبة لأنتهاء الاطراف الرقمية .

FWW0HTCII3JBHK0.LARGE

الكود البرمجي

#include <dht.h>
dht DHT;
int dhtpin = A0;
int motor = A2;
int pin1 = 2;
int pin2 = 3;                                    //                            --6--
int pin3 = 4;                                    //                         5 |     | 7
int pin4 = 5;                                    //                           |--4--|
int pin5 = 6;                                    //                         1 |     | 3
int pin6 = 7;                                    //                            --2--
int pin7 = 8;
int gnd1 = 9;                                  // for temperature
int gnd2 = 11;                                 // for temperature 
int gnd3 = 10;                                 // for humidity
int gnd4 = 12;                                 // for humidity
const int pixellength = 100;                                

int pinstringA[11] = {                                     
  LOW,HIGH,LOW,LOW,HIGH,LOW,LOW,LOW,LOW,LOW};         
int pinstringB[11] = {                                      
  LOW,LOW,LOW,LOW,LOW,HIGH,HIGH,LOW,LOW,LOW};
int pinstringC[11] = {
  LOW,LOW,HIGH,LOW,LOW,LOW,LOW,LOW,LOW,LOW};
int pinstringD[11] = {
  LOW,HIGH,LOW,LOW,HIGH,LOW,LOW,HIGH,LOW,LOW};
int pinstringE[11] = {
  LOW,HIGH,LOW,HIGH,HIGH,HIGH,LOW,HIGH,LOW,HIGH};
int pinstringF[11] = {                                       
  LOW,HIGH,HIGH,HIGH,LOW,LOW,LOW,HIGH,LOW,LOW};            
int pinstringG[11] = {
  HIGH,HIGH,LOW,LOW,LOW,LOW,LOW,LOW,LOW,LOW};

void setup(){
  for(byte i=2; i<13; i++){                                  
    pinMode(i,OUTPUT);
  }
  pinMode(motor,OUTPUT);
}


void loop(){
  DHT.read11(dhtpin);
  int x=DHT.temperature;
  int y=DHT.humidity;
  
  byte tens;                                                 
  byte ones;                                                 
  tens = x / 10;                                         
  ones = x % 10;

  byte tensh;
  byte onesh;
  tensh = y / 10;
  onesh = y % 10;  

  if (tens<=20){
    digitalWrite(motor,LOW);
    }
   else if (tens>=35){
    digitalWrite(motor,HIGH);
    }
  for(int j = 0; j < pixellength; j++){                     
    digitalWrite(gnd1,HIGH);
    digitalWrite(gnd2,LOW); 
    digitalWrite(gnd3,LOW);
    digitalWrite(gnd4,LOW);
    digitalWrite(pin1, pinstringE[tens]);
    digitalWrite(pin2, pinstringD[tens]);    
    digitalWrite(pin3, pinstringC[tens]);
    digitalWrite(pin4, pinstringB[tens]);
    digitalWrite(pin5, pinstringA[tens]);
    digitalWrite(pin6, pinstringF[tens]);                    
    digitalWrite(pin7, pinstringG[tens]); 
    delay(10);                                         
     PORTD = PORTD & B00000011;                       
    digitalWrite(gnd1,LOW);
    digitalWrite(gnd2,HIGH);
    digitalWrite(gnd3,LOW);
    digitalWrite(gnd4,LOW);   
    digitalWrite(pin1, pinstringE[ones]);
    digitalWrite(pin2, pinstringD[ones]);    
    digitalWrite(pin3, pinstringC[ones]);
    digitalWrite(pin4, pinstringB[ones]);
    digitalWrite(pin5, pinstringA[ones]);
    digitalWrite(pin6, pinstringF[ones]);    
    digitalWrite(pin7, pinstringG[ones]);
    delay(10);                                
     PORTD = PORTD & B00000011;              
  }
  for(int j = 0; j < pixellength; j++)
  {
    digitalWrite(gnd1,LOW);
    digitalWrite(gnd2,LOW);
    digitalWrite(gnd3,HIGH);
    digitalWrite(gnd4,LOW);  
    digitalWrite(pin1, pinstringE[tensh]);
    digitalWrite(pin2, pinstringD[tensh]);    
    digitalWrite(pin3, pinstringC[tensh]);
    digitalWrite(pin4, pinstringB[tensh]);
    digitalWrite(pin5, pinstringA[tensh]);
    digitalWrite(pin6, pinstringF[tensh]);                    
    digitalWrite(pin7, pinstringG[tensh]); 
    delay(10);
    PORTD = PORTD & B00000011;
    digitalWrite(gnd1,LOW);
    digitalWrite(gnd2,LOW);
    digitalWrite(gnd3,LOW);
    digitalWrite(gnd4,HIGH);  
    digitalWrite(pin1, pinstringE[onesh]);
    digitalWrite(pin2, pinstringD[onesh]);    
    digitalWrite(pin3, pinstringC[onesh]);
    digitalWrite(pin4, pinstringB[onesh]);
    digitalWrite(pin5, pinstringA[onesh]);
    digitalWrite(pin6, pinstringF[onesh]);    
    digitalWrite(pin7, pinstringG[onesh]);
    delay(10);
    PORTD = PORTD & B00000011;
  }  
}

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *