Questions? E-mail

Questions? Comments?
Send e-mail to: ahmadsaad2011@gmail.com

Thursday, November 15, 2018

اردوينو: البيت الذكي : متطلبات تمرين 12


اردوينو: البيت الذكي : تمرين 12 : فتح او قفل الباب داخل البيت بنغمة دقات محددة: تصميم حركة ماتور من خلال عدد دقات محدد


اردوينو: تمرين 12 تصميم حركة ماتور من خلال عدد دقات محدد

يمكن استخدام جرس البزر Piezo  كمجسّ لعدد دقات ومنها يمكن التحكم بحركة ماتور من نوع سيرفو.

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









اردوينو: البيت الذكي : متطلبات تمرين ١١



اردوينو: البيت الذكي : تمرين 11: استخدام شاشة عرض داخل البيت : لطباعة نصوص منتقاة على شاشة ال سي دي

 يمكن استخدام شاشة ال سي دي لعرض حروف وارقام.  التي بحوزتك  يوجد فيها 16 عمود وصفوف عدد 2 بحيث يمكنها طباعة حتى 32 حرف .  في هذه التجربة يلزمنا استخدام  المداخل للشاشة من 1 - 16 انظر الرسم:





المكونات المطلوبة:









الرسم التفصيلي للدائرة:







الرسم الهندسي للدائرة:



code

اردوينو: البيت الذكي : تمرين 10 دائرة للتحكم بتشغيل المحرك داخل البيت ، التحكم بسرعة دورانه ، والتحكم باتجاه دوران المحرك

كما في الدائرة السابقة في تمرين 9 سنقوم بالتحكم بتشغيل محرك دي سي (dc motor)  من خلال:
1- التحكم بتشغيله on/off
2- التحكم بسرعة دورانه
3- التحكم باتجاه دورانه (مع عقارب الساعة او عكس عقارب الساعة)

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

1- للتحكم بتشغيل وايقاف تشغيل  المحرك  سنستخدم زر ضغط على المدخل 5 رقمي
2- للتحكم بسرعة دورانه سنستخدم مقاومة متغيرة potentiometer
3- للتحكم باتجاه دورانه سنستخدم دارة متكاملة IC تدعى H-BRIDGE رقمها L293D. سنستخدم زر ضغط على المدخل 4 رقمي لهذا الخصوص


القطع اللازمة:

  Parts required:

  - two 10 kilohm resistors

  - two momentary pushbuttons
  - one 10 kilohm potentiometer
  - motor
  - 9V battery
  - H-Bridge

مبنى الدائرة عملي:


رسم الدائرة هندسي:

الكود: blogard10





اردوينو: البيت الذكي : تمرين 10: القطع المطلوبة لتحضيرها


  Parts required:
  - two 10 kilohm resistors
  - two momentary pushbuttons
  - one 10 kilohm potentiometer
  - motor
  - 9V battery
  - H-Bridge


















اردوينو: البيت الذكي : تمرين 9 : عمل دولاب متحرك مثل مروحة في البيت نتحكم فيه

استخدام الاردوينو للتحكم بمحرك هو ليس بسهولة التحكم بثنائي ليد  لان المحرك بحاجة لتيار كهربائي اكبر مما يمكن تزويده له من خلال لوحة الاردوينو (اكثر حد   40  mA ) والسبب الاخر ان المحركات تولد تيارها الكهربائي من خلال Induction الذي قد يتلف دائرتك الكهربائية ويحدث هذا عند اعطاء امر التوقف للمحرك ولكن المحرك يستمر بالدوران بفعل الطاقة الداخلية ولهذا يلزم استخدام ثنائي ديود لوضعه بالتوازي مع المحرك حتى يمر التيار الكهربائي باتجاه واحد فقط.
الترانزستور (موسفيت) 
n-channel

يتيح لك التحكم بتيار كهربائي  عالي او فولطية عالية باستخدام تيار الكهرباء الاردوينو القليل.


المطلوب اليوم:
(1) بناء الدائرة وفحص عملها على برنامج تينكر كاد (5 علامات)
(2) بناء الدائرة فعليا وفحص عملها (10 علامات)


القطع المطلوبة:


الدائرة:


 الرسم الهندسي:




الكود: هو كود بسيط: حاول فهم الكود وهو مكون من ثلاثة اقسام: ما هما؟

اردوينو: تمرين 8: البيت الذكي :عمل ساعة ضوئية داخل البيت باستخدام حساس الميل


تمرين 8: عمل ساعة ضوئية في اردوينو
Digital Hour Glass

يضيء اول ليد بعد 10 دقائق وكل 10 دقائق يضيء التالي حتي يضيئوا جميعا بعد مرور ساعة وهكذا

قم بتغيير الكود ليضيئ كل ليد بعد 10 ثواني  وهكذا...


القطع المطلوبة:
  tilt switch
led
10k ohm resistor
220 ohm resistor


tilt switch: حساس استشعار الميل
حساس أستشعار الميل يستخدم للكشف عن الميلان او عن الاتجاه, يتميز حساس استشعار الميل  بأنه سهل الاستخدام والبرمجة و لا يستهلك الكثير من الطاقة ، لهذا الحساس استخدامات مختلفة في حياتنا إلىومية فهي تستخدم غالبا في الالعاب او الأجهزة الحركية للكشف عن مقدار ميلان الجهاز ويمكن استخدامه بعدة تطبيقات في البيت الذكي.

غالبا ما يكون هذا الحساس مصنوع من اسطوانة مجوفة من الداخل ويوجد بداخلها جسم موصل للكهرباء ( غالبا ما يكون فقافة من الزئبق او كرة متدحرجة), وفي نهاية التجويف يوجد قطبان موصلان للكهرباء وعندما يتم تحريك الحساس بحيث تكون القاعدة الموصول بها الاسلاك إلى الاعلى فإن الكرة تتجه إلى الاسفل وتوصل بين القطبين الموصلان للطاقة ، وبذلك فانه يعطي اشارة إلكترونية إلى المتحكم الأصغر او إلى الاردوينو وبذلك تستطيع ان تستفيد من هذه إشارة كا إشارة إدخل.


شكل التوصيل:









الكود جاهز هنا:


// named constant for the switch pin
const int switchPin = 8;

unsigned long previousTime = 0; // store the last time an LED was updated
int switchState = 0; // the current switch state
int prevSwitchState = 0; // the previous switch state
int led = 2; // a variable to refer to the LEDs

// 600000 = 10 minutes in milliseconds
long interval = 600000; // interval at which to light the next LED

void setup() {
  // set the LED pins as outputs
  for (int x = 2; x < 8; x++) {
    pinMode(x, OUTPUT);
  }
  // set the tilt switch pin as input
  pinMode(switchPin, INPUT);
}

void loop() {
  // store the time since the Arduino started running in a variable
  unsigned long currentTime = millis();

  // compare the current time to the previous time an LED turned on
  // if it is greater than your interval, run the if statement
  if (currentTime - previousTime > interval) {
    // save the current time as the last time you changed an LED
    previousTime = currentTime;
    // Turn the LED on
    digitalWrite(led, HIGH);
    // increment the led variable
    // in 10 minutes the next LED will light up
    led++;

    if (led == 7) {
      // the hour is up
    }
  }

  // read the switch value
  switchState = digitalRead(switchPin);

  // if the switch has changed
  if (switchState != prevSwitchState) {
    // turn all the LEDs low
    for (int x = 2; x < 8; x++) {
      digitalWrite(x, LOW);
    }

    // reset the LED variable to the first one
    led = 2;

    //reset the timer
    previousTime = currentTime;
  }
  // set the previous switch state to the current state
  prevSwitchState = switchState;
}




اردوينو: البيت الذكي : تمرين 6: القسم الثاني: تصميم بيانو باستخدام ازرار الضغط للتحكم بنغمة الصوت

احضار حساس PIR Sensor


اردوينو: البيت الذكي : تمرين 7 : حساس الحركة داخل البيت motion detector خارجي 1

حساس الحركة
معلومات عنه - هنا

سنقوم باستخدام مقاومة صغيرة 220 اوم 
يلزم ملاحظة مداخل حساس الحركة حيث لديه 3 مداخل: كهرباء 5 فولت - ارضي - ومدخل الاشارة







int led = 13;                // the pin that the LED is atteched to
int sensor = 2;              // the pin that the sensor is atteched to
int state = LOW;             // by default, no motion detected
int val = 0;                 // variable to store the sensor status (value)
void setup() {
  pinMode
(led, OUTPUT);      // initalize LED as an output
  pinMode
(sensor, INPUT);    // initialize sensor as an input
 
Serial.begin(9600);        // initialize serial
}
void loop(){
  val
= digitalRead(sensor);   // read sensor value
 
if (val == HIGH) {           // check if the sensor is HIGH
    digitalWrite
(led, HIGH);   // turn LED ON
    delay
(100);                // delay 100 milliseconds
   
   
if (state == LOW) {
     
Serial.println("Motion detected!");
      state
= HIGH;       // update variable state to HIGH
   
}
 
}
 
else {
      digitalWrite
(led, LOW); // turn LED OFF
      delay
(200);             // delay 200 milliseconds
     
     
if (state == HIGH){
       
Serial.println("Motion stopped!");
        state
= LOW;       // update variable state to LOW
   
}
 
}
}