اطلاعیه

Collapse
No announcement yet.

تفسیر برنامه c

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تفسیر برنامه c

    سلام خدمت اساتید محترم :nerd: :nerd:

    من تازه کارم و زبان c بلد نیستم و فقط بسکام کار کردم :angry: :angry:

    کسی میتونه برنامه زیر رو تفسیر کنه یا بتونه مشابه این کد بسکامش رو بنویسه :applause: :applause:

    int dirPin = 8;

    int stepperPin = 7;

    void setup() {

    pinMode(dirPin, OUTPUT);

    pinMode(stepperPin, OUTPUT);

    }

    void step(boolean dir,int steps){

    digitalWrite(dirPin,dir);

    delay(50);

    for(int i=0;i

    digitalWrite(stepperPin, HIGH);

    delayMicroseconds(800);

    digitalWrite(stepperPin, LOW);

    delayMicroseconds(800);

    }

    }

    void loop(){

    step(true,1600);

    delay(500);

    step(false,1600*5);

    delay(500);

    }

    #2
    پاسخ : تفسیر برنامه c

    سلام
    اول اینکه برنامه ناقصه.
    بعد اینکه 2 خط اول 2 تا متغیر تعریف میکنه که شماره پین مورد نظر رو باهاش مشخص میکنه.
    حلقه for کامل نیست. من نمیدونم توی میکروها و کامپایلرای دیگه میشه تابع main نداشت چون اینجا به نظر میرسه که تابع loop اصلیه.
    در تابع setup پین مورد نظر وجهتش تعیین میشه.
    در تابع step هم 2 تا آرگومان میگیره که فکر کنم یکیش دستور اجراست و دیگر مقدار انجام یه کاریه.
    اول تایید حرکت میده، و بعد از 50 ثانیه یه چیزی رو روشن میکنه و 800 میکروثانیه صبر میکنه و خاموشش میکنه و حالا دوباره 800 میکروثانیه صبر میکنه و دوباره تا رسیدن i به steps اینکارو انجام میده.
    در تابع loop هم میاد دائم 2 تا مقدار رو به تابع step میفرسته.
    فکر کنم برنامه برای یه موتور هست که مثلا اول میاد 1600 استپ ساعتگرد میچرخه که بین هر step یه مکث 800 میکرو ثانیه ای داره و بعد 8000 استپ پادساعتگرد که بین هر step یه مکث 800 میکرو ثانیه ای داره.
    البته کاملترش اینه:
    int dirPin = 8;
    int stepperPin = 7;

    void setup()
    {
    pinMode (dirPin, OUTPUT);
    pinMode (stepperPin, OUTPUT);
    }

    void step (boolean dir, int steps)
    {
    digitalWrite (dirPin, dir);
    delay (50);
    for(int i = 0; i < steps; i++)
    {
    digitalWrite (stepperPin, HIGH);
    delayMicroseconds (800);
    digitalWrite (stepperPin, LOW);
    delayMicroseconds (800);
    }
    }

    void loop()
    {
    step (true, 1600);
    delay (500);
    step (false, 1600 * 5);
    delay (500);
    }
    موفق باشید.
    شبنم از سعی به سرچشمه خورشید رسید صائب تبریزی

    دیدگاه


      #3
      پاسخ : تفسیر برنامه c

      توضیحات اصلی رو جناب طاهری گفتن .
      این برنامه برای Arduino هست . به همین دلیل هم تابع main نداره. بله تابع اصلی loop هست که اجرا میشه. تابع setup فقط در اولین بار اجرا میشه و کارش مقدار دهی اولیه یا همون initialize کردن متغیر هاست و در این برنامه میاد pin های شماره 8 و 7 رو به صورت خروجی تعریف میکنه. کاملن مشخصه که برنامه درایو کردن استپر موتوره . و این طور که از تابع step معلومه ، این موتور برای گردش مثلن 5 پله به راست باید 5 پالس با دیوتی سایکل 50% دریافت کنه که 800 میکرثانیه روشن و 800 میکر ثانیه خاموشه یعنی فرکاننسش باید 625 هرتز باشه. اون حلقه for که جناب طاهری زحمت کامل کردنش رو کشیدن دقیقن کارش تولید این پالس با خاموش روشن کردن متوالی پین شماره 7 هست . :rolleyes:
      در حد سوادم اینا به ذهنم رسید :read:

      دیدگاه

      لطفا صبر کنید...
      X