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

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

db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 09-09-2016, 03:33 PM المشاركة 1   
افتراضي مشكل في كود اردوينو Twitter FaceBook Google+



السلام عليكم يا اخوان الكود لبكني اي كتب او مرجع يمكن يوضح علي الامور مشكور جدا
كود:
int i = 50;
void setup() {
pinMode(9, OUTPUT);
Serial.begin(9600);
}

void loop() {
for( i =400; i <= 3000; i+= 2){
  speedo();
  delay(90);
}
void speedo(){
  i+= 3;
  digitalWrite(9, HIGH);
delayMicroseconds(i);
digitalWrite(9, LOW);
delayMicroseconds(700);
Serial.println(i);
}
}
لماذا امر التأخير لا يعمل كما ان المتغير iيقوم بالازدياد مرة واحدة فيصبح 402

اعلانات

مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 10-09-2016, 09:42 AM المشاركة 2   
x4


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

السلام عليم و رحمة الله و بركاته

اخى العزيز وفقك الله:
اولا : الخطأ فى البرنامج فى السطر التالى
كود:
 delayMicroseconds(i);
لان دالة التاخير تأخذ رقم صحيح ثاااابت ولا تقبل المتغيرات و هذا الخطأ يوقف عمل البرنامج عند اول نداء لدالة speedo و بالتالى لا يصل البرنامج لامر delay(90) مطلقا.

اما اذا اردت دالة تاخير متغير فتقوم بانشائها و تناديها كالتالى :
كود:
void variableDelay(unsigned int us){
    unsigned int i;
    for( i = us; i > 0; i-- ){
        delayMicroseconds(1);
    }
}

و تناديها كما تشاء
;variableDelay( var )

و الله اعلم , اما عن طريقة اتقانك للبرمجة او اى مجال اخر فتكون بثلاث اشياء معا :


1- التعلم و الدراسة و دورات مع الصبر و الاخلاص

2- دراسة و فهم برامج اخرين محترفين و متابعة مواقعهم او كتبهم
3- الانفاق من العلم لتعليم الناس و مساعدتهم لوجه الله
(
آمِنُوا بِاللَّهِ وَرَسُولِهِ وَأَنفِقُوا مِمَّا جَعَلَكُم مُّسْتَخْلَفِينَ فِيهِ ۖ فَالَّذِينَ آمَنُوا مِنكُمْ وَأَنفَقُوا لَهُمْ أَجْرٌ كَبِيرٌ (7) )

و الله ولى التوفيق

اللهم اجعلنا مؤمنين حقا




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

db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 10-09-2016, 08:36 PM المشاركة 3   
افتراضي


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


db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 10-09-2016, 08:49 PM المشاركة 4   
افتراضي


انا اريد تغير زمن التأخير في
delayMicroseconds


مشتاق الله
:: مهندس متميز ::
تاريخ التسجيل: Oct 2015
المشاركات: 620
نشاط [ مشتاق الله ]
قوة السمعة:0
قديم 10-09-2016, 09:07 PM المشاركة 5   
sun


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

السلام عليم و رحمة الله و بركاته
اخى العزيز وفقك الله:
انا اريد تغير زمن التأخير في
delayMicroseconds

استبدل امر delayMicroseconds(i);
بامر
;variableDelay( i )

مع كتابة الدالة :

كود:
 void variableDelay(unsigned int us){     unsigned int i;     for( i = us; i > 0; i-- ){         delayMicroseconds(1);     } }
و الله ولى التوفيق

اللهم اجعلنا مؤمنين حقا





db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 10-09-2016, 10:29 PM المشاركة 6   
افتراضي


جزاك الله كل خير اخ مشتاق جربت و لم ينجح الامر
فكرة الكود هي تغير الهرتز انا واصل led فعندما يزداد i في delayMicroseconds تزداد الاضاءة عند وضع مقاومة متغيرة ك
i = analogRead(A0) يحدث تغير
ولكن عندما جربت الطريقة على شكل for لم ينجح
وانت اشرت الي بأن الامر delayMicroseconds لايقبل المتغيرات

(--for(i =us; i>0; i
كما اني لم افهم هذا الكود واختلطت علي الامور


abu-thabit
:: مهندس متميز ::
تاريخ التسجيل: Oct 2010
المشاركات: 339
نشاط [ abu-thabit ]
قوة السمعة:0
قديم 11-09-2016, 12:51 AM المشاركة 7   
افتراضي


يمكنك استخام دالة analogwrite ااتحكم في شدة الاضاءة

www.genotronex.com/2012/11/pwm.html


db2006
:: مهندس متواجد ::
تاريخ التسجيل: Feb 2013
المشاركات: 71
نشاط [ db2006 ]
قوة السمعة:0
قديم 11-09-2016, 03:18 AM المشاركة 8   
افتراضي


يمكنك استخام دالة analogwrite ااتحكم في شدة الاضاءة

www.genotronex.com/2012/11/pwm.html
مشكور جدا اخ ابو ثابت ولكن الغاية هي تغير الهرتز من اجل التحكم في سرعة موتور
وانا اواجه مشاكل في عمل متغير لدالة التأخير

إضافة رد

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

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

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


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

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