الجمعة، 2 أغسطس 2013

وضع الأسبات في الأردوينو Arduino Sleep Mode الجزء الأول



 وضع الإسبات Sleep Mode يوفر لنا أمكانية التحكم في كمية الطاقة التي يصرفها المتحكم الأصغري .




طرق الإسبات Sleep mode و الإيقاظ Wake up  متعددة منها المبرمج و منها الخارجي المعتمد على تغير حالة أحد المخارج .

سأتحدث في البداية عن طرق توفير الطاقة و أختلاف كل طريقة عن الأخرى .

في النشرة الفنية لل Atmega168/328 تتحدث بالتفصيل عن هذه الطرق و الجول التالي يوضحها كلها :



               

يظهر من الجدول 6 وضعيات للإسبات :


SLEEP_MODE_IDLE 
SLEEP_MODE_ADC
SLEEP_MODE_PWR_SAVE
SLEEP_MODE_STANDBY
SLEEP_MODE_PWR_DOWN 



الطريقة الأولى أقل طريقة توفيراً , و الأخيرة هي وضعية shutdown الأكثر اقتصادية في الإستهلاك .



اختيارك يجب أن يكون لإحدى هذه الوضعيات حسب طبيعة برنامجك "استخدام ADC او ال EEPROM او ال SRAM "خلال عمليه الإسبات  حيث انك اذا استخدمت  
SLEEP_MODE_STANDBY  لا يمكنك قراءة ال ADC خلاله , بعكس SLEEP_MODE_IDLE الذي يمكنك قراءة ال ADC خلال الإسبات, لكنه يستهلك طاقة أكبر .

في النشرة الفنية يوجد طريقة برمجة هذا النمط باستخدام لغة الألة Assembly 


المسجلات اللتي تتحكم في الاوضاع و طريقة تنصيبها موجودة في الجدول .

قد يكون صعباً للبعض التعامل مع لغة الآلة لذلك سنسهل الموضوع هنا و ذلك باستخدام مكتبة رئيسية من مكتبات AVR التي وضعتها شركة أتميل تسهيلاً للمستخدمين " ليست هذه المكتبة حكراً على الأردوينو , يمكن استخدامها لأي برنامج AVR " 
تتنوع طرق الخروج من وضع الإسبات بين الطرق المبرمجة مثل ال watchdog Timer او عن طريق تغيير حالة المداخل مثل ال interrupt & Serial  .

سأتحدث أولاً عن طريقة الإيقاظ عن طريق مقاطعة البرنامج خارجياً interrupt  .

في هذا البرنامج سنقوم بجعل البرنامج يقوم بقراءة حساس كللمدة 10 ثواني و عرض هذه القراءة على ال Serial Monitor  , 
 ثم ادخال المتحكم في وضع الإسبات حتى نضغط على زر الإيقاظ .

لن تحتاج لتنفيذ هذه التجربة  سوى :

1) بطاقة  أردوينو .
2) مفتاح كبسة push Button .
3)اسلاك توصيل Jumper .


التوصيل : 




برنامج آخر يعمل على تطبيق برنامج blink لمدة 5 ثواني ثم اسبات النظام و تفعيله مجدداً عند الضغط على الزر .


بنفس التوصيلة السابقة .



تقل الطاقة المصروفة بنسبة 25% في هذه الحالة كما هو مبين بالصورة لقراءة الأميتر Ammeter  .



0 التعليقات :

إرسال تعليق

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.