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

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

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



[int in1 = 1;
int in2 = 2;
int in3 = 3;
int in4 = 4;
int op10 = 10;
char counter = 0;
void setup() {
//configure output pin as 0
pinMode(op10, OUTPUT);
digitalWrite(op10, 0);

//configure input pins to be inputs
pinMode(in1, INPUT);
pinMode(in2, INPUT);
pinMode(in3, INPUT);
pinMode(in4, INPUT);

}

void loop() {

if (digitalRead(in1) && !digitalRead(in2) && digitalRead(in3) && !digitalRead(in4) && (counter == 0)) // first code received is 0101
{
counter = 1;
}

if ( digitalRead(in1) && digitalRead(in2) && !digitalRead(in3) && !digitalRead(in4) && (counter == 1)) // second code received is 0011
{
counter = 2;
}

if (!digitalRead(in1) && !digitalRead(in2) && digitalRead(in3) && !digitalRead(in4) && (counter == 2)) // third code received is 0010
{
counter = 3;
}
if (!digitalRead(in1) && !digitalRead(in2) && !digitalRead(in3) && digitalRead(in4) && (counter == 3)) // third code received is 1000
{
counter = 4;

}
if (counter == 4) // turn on the output pin 10
{
digitalWrite(op10, 1);


}
if (!digitalRead(in1) && !digitalRead(in2) &&digitalRead(in3) && digitalRead(in4) && (counter == 4)) // turn off output pin 10, code received is 1100
{
digitalWrite(op10, 0);
counter = 0;


}

}

كيفية عمل reset عند تكرار الكود الاخير ثلاث مرات متتالية خلال 5 ثواني

if (!digitalRead(in1) && !digitalRead(in2) &&digitalRead(in3) && digitalRead(in4) && (counter == 4)) // turn off output pin 10, code received is 1100
{

اعلانات

eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:0
قديم 22-06-2017, 07:11 AM المشاركة 2   
افتراضي


السلام عليكم

اختي بالنسة للأردوينو ممكن تضيفي أمر ال millis() حتى تابعي الوقت


فتاخذي قرائة الوقت قبل الloop ومن ثم داخل اللوب وتابعي الفرق الي ان يصل الى 5000 ومن ثم تقومي بعمل ال reset


بالنسبة للانواع الأخرى لأجل متابعة الوقت يستخدم التايمر مع الإنتربت

اعلانات اضافية ( قم بتسجيل الدخول لاخفائها )
  

eabueida
:: مهندس متواجد ::
تاريخ التسجيل: Apr 2007
المشاركات: 171
نشاط [ eabueida ]
قوة السمعة:0
قديم 22-06-2017, 07:27 AM المشاركة 3   
افتراضي


السلام عليكم

اختي بالنسة للأردوينو ممكن تضيفي أمر ال millis() حتى تابعي الوقت


فتاخذي قرائة الوقت قبل الloop ومن ثم داخل اللوب وتابعي الفرق الي ان يصل الى 5000 ومن ثم تقومي بعمل ال reset


بالنسبة للانواع الأخرى لأجل متابعة الوقت يستخدم التايمر مع الإنتربت

مساله اخرى لما تقومي بعمل ال reset عيدي تعريف القرائة الاولي للوقت قبل للوب للحظة ال reset

إضافة رد

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

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

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


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

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