قسم الميكروكنترولر والروبوت ودوائر الاتصال بالحاسب الالي قسم المتحكمات الـ microcontroller و المعالجات microprocessor و التحكم الرقمي بالكمبيوتر CNC والانظمة الآلية والروبوت Robots

أدوات الموضوع

رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 130
نشاط [ رانية1 ]
قوة السمعة:0
قديم 28-04-2017, 12:03 PM المشاركة 1   
ha ارجو المساعدة في اكمال المشروع Twitter FaceBook Google+



يرجى المساعدة في طريقة ادخال مؤقت زمني للبرنامج ففي حالة عدم ادخال الكود كاملا وبشكل صحيح خلال 10 ثواني يقوم البرنامج بمسح القيم المدخله وينتظر ادخالها من البداية بالترتيب خلال المدة المطلوبه




كود:
#include <Arduino.h> char counter = 0; void setup() { //configure output pin as 0 pinMode(10, OUTPUT); digitalWrite(10, 0); //configure input pins to be inputs pinMode(1, INPUT); pinMode(2, INPUT); pinMode(3, INPUT); pinMode(4, INPUT); } void loop() { if (digitalRead(1) && digitalRead(2) && !digitalRead(3) && !digitalRead(4) && (counter == 0)) // first code received is 1100 { counter = 1; } if ( !digitalRead(1) && digitalRead(2) && digitalRead(3) && !digitalRead(4) && (counter == 1)) // second code received is 0110 { counter = 2; } if (!digitalRead(1) && !digitalRead(2) && digitalRead(3) && digitalRead(4) && (counter == 2)) // third code received is 0011 { counter = 3; } if (counter == 3) // turn on the output pin 10 { digitalWrite(10, 1); } if (!digitalRead(1) && digitalRead(2) && digitalRead(3) && digitalRead(4) && (counter == 3)) // turn off output pin 10, code received is 0111 { digitalWrite(10, 0); counter = 0; } }


التعديل الأخير تم بواسطة : رانية1 بتاريخ 28-04-2017 الساعة 12:15 PM السبب: اضافة كود
اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 28-04-2017, 08:26 PM المشاركة 2   
x4


بسم الله الرحمن الرحيم

بفضل الله اليك محاولة الكود , اذا كان هناك تعديل مطلوب فيرجى الاسترسال فى الشرح للمطلوب ,
مع مراعاة ان مثلا الكود 1100 = pin4, pin3, pin2, pin1


كود:
#include <Arduino.h> 
char counter = 0;
char data = 0;
long start_time = 0;
 void setup() { 
 //configure output pin as 0
 pinMode(10, OUTPUT); digitalWrite(10, 0); 
 //configure input pins to be inputs 
 pinMode(1, INPUT_PULLUP); 
 pinMode(2, INPUT_PULLUP); 
 pinMode(3, INPUT_PULLUP); 
 pinMode(4, INPUT_PULLUP); 
 } 
 void loop()  { 
 data = 0;
 data = ((digitalRead(1) << 0) | (digitalRead(2) << 1) | (digitalRead(3) << 2) | (digitalRead(4) << 3));
 
 if ((data == 0b1100) && (counter == 0))       { counter = 1; start_time = millis(); }// first code received is 1100 
  
 else if ((data == 0b0110) && (counter == 1))  { counter = 2; } // second code received is 0110 
 
 else if ((data == 0b0011) && (counter == 2))  { counter = 3; digitalWrite(10, 1); }// third code received is 0011 // turn on the output pin 10 

 else if ((data == 0b0111) && (counter == 3))  { digitalWrite(10, 0); counter = 0; } // turn off output pin 10, code received is 0111 

 if ( ((millis() - start_time) > 10000) && (counter !=0) ) { counter = 0; }
}
و ما توفيقى الا بالله
الحمد لله الذى بنعمته تتم الصالحات



احصائية الشكر والاعجاب - 1 شكراً, 0 عدم اعجاب, 0 اعجاب
شكراً عريبى محمود ( شكر العضو على هذه المشاركة )
اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

رانية1
:: مهندس متواجد ::
تاريخ التسجيل: Jun 2006
الدولة: فلسطين
المشاركات: 130
نشاط [ رانية1 ]
قوة السمعة:0
قديم 29-04-2017, 10:03 AM المشاركة 3   
افتراضي


شكرا جزيلا لك فقد ادخلت امر التايمر الى البرنامج وعمل بشكل ممتاز

إضافة رد

العلامات المرجعية

«     الموضوع السابق       الموضوع التالي    »
أدوات الموضوع

الانتقال السريع إلى


الساعة معتمدة بتوقيت جرينتش +3 الساعة الآن: 11:17 PM
موقع القرية الالكترونية غير مسؤول عن أي اتفاق تجاري أو تعاوني بين الأعضاء
فعلى كل شخص تحمل مسئولية نفسه إتجاه مايقوم به من بيع وشراء وإتفاق وأعطاء معلومات موقعه
التعليقات المنشورة لا تعبر عن رأي موقع القرية الالكترونية ولايتحمل الموقع أي مسؤولية قانونية حيال ذلك (ويتحمل كاتبها مسؤولية النشر)

Powered by vBulletin® Version 3.8.6, Copyright ©2000 - 2025