اطلاعیه

Collapse
No announcement yet.

چند برنامه با یک برد

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

    چند برنامه با یک برد

    با سلام من در آردوینو تازه کار هستم و این پروژه اولم هست لطفا راهنمایی بفرمایید :
    برا یک پروژه دو قسمتی که یکیش ماشین کنترلی یه پروژه آماده تو نت پیدا کردم و برا قسمت دوم هم که یه سنسوره محیطیه هم نمونه ی خوب بود
    ولی مشکل استفاده همزمان اوناست که چون باید همزمان کار کنن نمی شه به یکی وقفه داد و دومی رو راه اندازی کرد چون دوتاشون باید پیوسته و باهم کارکنن از طرفی محدودیت شدید اندازه و هزینه نمی گذاره از دوتا برد استفاده کنم و کم بود پایه برا اتصال ندارن نظرتون چیه؟

    #2
    پاسخ : چند برنامه با یک برد

    به این قابلیت مالتی ترد گفته میشه ، برد due به صورت سخت افزاری این قابلیت را دارد اما در سایر برد ها باید با کد نویسی شبیه سازی شود . بدون نقص نیست اما باید محدودیت هارو در نظر بگیرید . در این لینک یک مثال آموزش داده شده

    دیدگاه


      #3
      پاسخ : چند برنامه با یک برد

      نوشته اصلی توسط Masood Ashoori نمایش پست ها
      به این قابلیت مالتی ترد گفته میشه ، برد due به صورت سخت افزاری این قابلیت را دارد اما در سایر برد ها باید با کد نویسی شبیه سازی شود . بدون نقص نیست اما باید محدودیت هارو در نظر بگیرید . در این لینک یک مثال آموزش داده شده

      https://create.arduino.cc/projecthub...utorial-dd2c37
      با سپاس از شما
      این قابلیت که بیان کردید آیا وقفه ای در هر برنامه بوجود می آره ؟ اگه هست مثلاٌ چه مقداره اگه بخوایم صفر بشه می تونیم از برد due استفاده کنیم؟

      دیدگاه


        #4
        پاسخ : چند برنامه با یک برد

        کمی تاخیر که هست ، اما آیا واقعا نیازه صفر بشه ؟ سنسور شما با چه سرعتی می*تونه نمونه گیری کنه ؟ ماشین کنترلی به فرکانس ۱۶ مگ نیاز داره ؟ با جواب به این سوالات ، این کار جوابگوی نیاز شما هست ، فرکانس میکرو خیلی زیاده

        دیدگاه


          #5
          پاسخ : چند برنامه با یک برد

          نوشته اصلی توسط Masood Ashoori نمایش پست ها
          کمی تاخیر که هست ، اما آیا واقعا نیازه صفر بشه ؟ سنسور شما با چه سرعتی می*تونه نمونه گیری کنه ؟ ماشین کنترلی به فرکانس ۱۶ مگ نیاز داره ؟ با جواب به این سوالات ، این کار جوابگوی نیاز شما هست ، فرکانس میکرو خیلی زیاده
          حقیقتش یه سنسور pi هست که اجسام فلزی رو سرچ می کنه و قصد من هم استفاده از برد uno بود حالا می خواستم که وقفه تو هدایت از راه دور ایجاد نشه همون طور که خودتون در این زمینه استادین وقفه ها حرکت روون ماشین رو مختل می کنن نظرتون چیه؟

          دیدگاه


            #6
            پاسخ : چند برنامه با یک برد

            به نظرم قبل از خرید due همین تست کنید این برنامه رو در عمل ببینید چطور عمل می*کنه ، اگر جوابگو بود ...

            این هم منبع مالتی ترد برای due
            The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.

            دیدگاه


              #7
              پاسخ : چند برنامه با یک برد

              نوشته اصلی توسط Masood Ashoori نمایش پست ها
              به نظرم قبل از خرید due همین تست کنید این برنامه رو در عمل ببینید چطور عمل می*کنه ، اگر جوابگو بود ...

              این هم منبع مالتی ترد برای due
              https://www.arduino.cc/en/Reference/Scheduler
              استاد آشوری ببخشید ما تو این زمینه ضعیفیم اگه ممکنه یکم ساده تر بگید چون بیان کردید که due برنامه نویسی کمتری می خواد همونو تهیه می کنم اگه برد due گرفتم دو برنامه رو که دارم چطوریه برا اجرا همزمان ادغام کنم
              با همون برنامه ها که برا uno بوده تو محیط برنامه نویسی ide آردوینو برا due هم می تونم خروجی بگیرم ؟
              سپاس

              دیدگاه


                #8
                پاسخ : چند برنامه با یک برد

                پردازنده due این قابلیت رو در پردازنده خودش پشتیبانی می*کنه ، اما یک سری کد نویس اومدند با برنامه نویسی ، چنین قابلیتی رو در سایر برد ها شبیه سازی کردند ،
                اینکه میگم با uno تست کنید برای اینه قبل از هزینه از ضعیف بودنش مطمئن بشید ، ممکنه جواب بده
                اما در مورد due این مثال رو که نگاه کنید ، سه حلقه blink با delay متفاوت به صورت همزمان کار میکنند و تداخلی روی حلقه دیگه نداره

                دیدگاه


                  #9
                  پاسخ : چند برنامه با یک برد

                  نوشته اصلی توسط Masood Ashoori نمایش پست ها
                  پردازنده due این قابلیت رو در پردازنده خودش پشتیبانی می*کنه ، اما یک سری کد نویس اومدند با برنامه نویسی ، چنین قابلیتی رو در سایر برد ها شبیه سازی کردند ،
                  اینکه میگم با uno تست کنید برای اینه قبل از هزینه از ضعیف بودنش مطمئن بشید ، ممکنه جواب بده
                  اما در مورد due این مثال رو که نگاه کنید ، سه حلقه blink با delay متفاوت به صورت همزمان کار میکنند و تداخلی روی حلقه دیگه نداره

                  https://www.arduino.cc/en/Tutorial/MultipleBlinks
                  سپاس مثال ساده و رونی بود بیان کردید برا due پس برا uno برنامه نویسی بیشتری می خواد ؟
                  و سنسور pi ورودی adc میکرو درگیر می کنه از اونطرف هم کنترل آرمیچر خروجی pwm میکرو این دوتا برا دو برنامه جدا که یکسره مشغولن مشکلی پیش نمی آره؟

                  دیدگاه


                    #10
                    پاسخ : چند برنامه با یک برد

                    نوشته اصلی توسط mohsen74 نمایش پست ها
                    با سلام من در آردوینو تازه کار هستم و این پروژه اولم هست لطفا راهنمایی بفرمایید :
                    برا یک پروژه دو قسمتی که یکیش ماشین کنترلی یه پروژه آماده تو نت پیدا کردم و برا قسمت دوم هم که یه سنسوره محیطیه هم نمونه ی خوب بود
                    ولی مشکل استفاده همزمان اوناست که چون باید همزمان کار کنن نمی شه به یکی وقفه داد و دومی رو راه اندازی کرد چون دوتاشون باید پیوسته و باهم کارکنن از طرفی محدودیت شدید اندازه و هزینه نمی گذاره از دوتا برد استفاده کنم و کم بود پایه برا اتصال ندارن نظرتون چیه؟
                    درود
                    خب چرا ۲ تا برنامه بریزید؟
                    کد های ۲ برنامه رو در ۱ برنامه بریزید فرقی نمیکنه
                    اگه مشکل داره کد هارو بفرستید(لطفا کدها رو در تگ code ارسال کنید که حروف بهم نریزن)
                    لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
                    گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
                    لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
                    گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

                    دیدگاه


                      #11
                      پاسخ : چند برنامه با یک برد

                      کد:
                      Servo myservo; //Create an object for servo
                      int val; // Variable for storing servo angle
                      void setup()
                      {
                      myservo.attach(11); // Set the digital pin 11 as the command pin for determining the servo angle
                      pinMode(10, OUTPUT);
                      pinMode(9, OUTPUT);
                      }
                      void loop()
                      {
                      digitalWrite(10, HIGH);
                      digitalWrite(9, LOW);
                      val = 0;
                      myservo.write(val);
                      delay(1500);
                      digitalWrite(9, HIGH);
                      digitalWrite(10, LOW);
                      val = 45;
                      myservo.write(val);
                      delay(1500);
                      }
                      و نمونه مشابه دومی:
                      کد:
                      [COLOR=#565353][FONT=Roboto]#define capPin A5
                      #define buz 9
                      #define pulsePin A4[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]#define led 10[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]long sumExpect=0; //running sum of 64 sums 
                      long ignor=0;   //number of ignored sums
                      long diff=0;        //difference between sum and avgsum
                      long pTime=0;
                      long buzPeriod=0; [/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]void setup() 
                      {
                        Serial.begin(9600);
                        pinMode(pulsePin, OUTPUT); 
                        digitalWrite(pulsePin, LOW);
                        pinMode(capPin, INPUT);  
                        pinMode(buz, OUTPUT);
                        digitalWrite(buz, LOW);
                        pinMode(led, OUTPUT);
                      }[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]void loop() 
                      {
                        int minval=1023;
                        int maxval=0;
                        long unsigned int sum=0;
                        for (int i=0; i<256; i++)
                        {
                          //reset the capacitor
                          pinMode(capPin,OUTPUT);
                          digitalWrite(capPin,LOW);
                          delayMicroseconds(20);
                          pinMode(capPin,INPUT);
                          applyPulses();
                          
                          //read the charge of capacitor
                          int val = analogRead(capPin); //takes 13x8=104 microseconds
                          minval = min(val,minval);
                          maxval = max(val,maxval);
                          sum+=val;
                          
                          long unsigned int cTime=millis();
                          char buzState=0;
                          if (cTime<pTime+10)
                          {
                            if (diff>0)
                              buzState=1;
                            else if(diff<0)
                              buzState=2;
                          }
                          if (cTime>pTime+buzPeriod)
                          {
                            if (diff>0)
                            buzState=1;
                            else if (diff<0)
                            buzState=2;
                            pTime=cTime;   
                          }
                          if (buzPeriod>300)
                          buzState=0;[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]    if (buzState==0)
                          {
                            digitalWrite(led, LOW);
                            noTone(buz);
                          }  
                          else if (buzState==1)
                          {
                            tone(buz,2000);
                            digitalWrite(led, HIGH);
                          }
                          
                          else if (buzState==2)
                          {
                            tone(buz,500);
                            digitalWrite(led, HIGH);
                          }
                        }[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]  //subtract minimum and maximum value to remove spikes
                        sum-=minval; 
                        sum-=maxval;
                        
                        if (sumExpect==0) 
                        sumExpect=sum<<6; //set sumExpect to expected value
                        long int avgsum=(sumExpect+32)>>6; 
                        diff=sum-avgsum;
                        if (abs(diff)<avgsum>>10)
                        {
                          sumExpect=sumExpect+sum-avgsum;
                          ignor=0;
                        } 
                        else 
                          ignor++;
                        if (ignor>64)
                        { 
                          sumExpect=sum<<6;
                          ignor=0;
                        }
                        if (diff==0) 
                          buzPeriod=1000000;
                        else 
                        buzPeriod=avgsum/(2*abs(diff));    
                      }[/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]void applyPulses()
                      {
                          for (int i=0;i<3;i++) 
                          {
                            digitalWrite(pulsePin,HIGH); //take 3.5 uS
                            delayMicroseconds(3);
                            digitalWrite(pulsePin,LOW);  //take 3.5 uS
                            delayMicroseconds(3);
                          }
                      [/FONT][/COLOR]
                      [COLOR=#565353][FONT=Roboto]}[/FONT][/COLOR]
                      که البته روی nano هست دومی چون روی uno آن تو فایل ino بود
                      جدیدترین ویرایش توسط mohsen74; ۲۰:۳۵ ۱۳۹۷/۰۴/۰۴.

                      دیدگاه


                        #12
                        پاسخ : چند برنامه با یک برد

                        نوشته اصلی توسط mohsen74 نمایش پست ها
                        کد:
                        [COLOR=#AD8258 !important][FONT=inherit]Servo [/FONT][/COLOR][COLOR=#879AB2 !important][FONT=inherit]myservo[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#7F7B80 !important][FONT=inherit]//Create an object for servo[/FONT][/COLOR][COLOR=#FFFFFF][FONT=Monaco][COLOR=#D8B584 !important][FONT=inherit]int[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]val[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#7F7B80 !important][FONT=inherit]// Variable for storing servo angle[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#D8B584 !important][FONT=inherit]void[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][/COLOR][COLOR=#AD8258 !important][FONT=inherit]setup[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]{[/FONT][/FONT][/COLOR][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#879AB2 !important][FONT=inherit]myservo[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit].[/FONT][/COLOR][COLOR=#AD8258 !important][FONT=inherit]attach[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]11[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#7F7B80 !important][FONT=inherit]// Set the digital pin 11 as the command pin for determining the servo angle[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]pinMode[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]10[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]OUTPUT[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]pinMode[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]9[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]OUTPUT[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]}[/FONT][/FONT][/COLOR][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#D8B584 !important][FONT=inherit]void[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][/COLOR][COLOR=#AD8258 !important][FONT=inherit]loop[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]{[/FONT][/FONT][/COLOR][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]digitalWrite[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]10[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]HIGH[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]digitalWrite[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]9[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]LOW[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#879AB2 !important][FONT=inherit]val[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][/COLOR][COLOR=#AC99AB !important][FONT=inherit]=[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]0[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#879AB2 !important][FONT=inherit]myservo[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit].[/FONT][/COLOR][COLOR=#AD8258 !important][FONT=inherit]write[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#879AB2 !important][FONT=inherit]val[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]delay[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]1500[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]digitalWrite[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]9[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]HIGH[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]digitalWrite[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]10[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit],[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#879AB2 !important][FONT=inherit]LOW[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#879AB2 !important][FONT=inherit]val[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][/COLOR][COLOR=#AC99AB !important][FONT=inherit]=[/FONT][/COLOR][COLOR=#AC99AB !important][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]45[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#879AB2 !important][FONT=inherit]myservo[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit].[/FONT][/COLOR][COLOR=#AD8258 !important][FONT=inherit]write[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#879AB2 !important][FONT=inherit]val[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#FFFFFF][FONT=Monaco][COLOR=#AD8258 !important][FONT=inherit]delay[/FONT][/FONT][/COLOR][FONT=Monaco][COLOR=#AC99AB !important][FONT=inherit]([/FONT][/COLOR][COLOR=#DB7E64 !important][FONT=inherit]1500[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit])[/FONT][/COLOR][COLOR=#AC99AB !important][FONT=inherit];[/FONT][/COLOR][/FONT][/COLOR]
                        [COLOR=#AC99AB][FONT=inherit]}[/FONT][/COLOR]
                        دومی توی یه فایل ino هست که نمی دونم چطوری بازگذاری کنم
                        سلام
                        داداش این یا اصلا کد نیست یا زبانش c نیست.
                        اینکه انسان هم درکش نمیکنه چه برسه به میکرو
                        لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
                        گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
                        لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
                        گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

                        دیدگاه


                          #13
                          پاسخ : چند برنامه با یک برد

                          نوشته اصلی توسط Mr.Skylake نمایش پست ها
                          سلام
                          داداش این یا اصلا کد نیست یا زبانش c نیست.
                          اینکه انسان هم درکش نمیکنه چه برسه به میکرو
                          فکر کنم درست شد

                          دیدگاه


                            #14
                            پاسخ : چند برنامه با یک برد

                            نوشته اصلی توسط mohsen74 نمایش پست ها
                            فکر کنم درست شد
                            سلام
                            اونی که گفتید ino هست همون مخصوص آردینوعه.همونو بفرستید
                            برای فرستادنش آردوینو رو نصب کنید بعد روی کده کلیک کنید باز میشه بعد کدهاشو کپی کنید
                            لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
                            گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
                            لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
                            گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

                            دیدگاه


                              #15
                              پاسخ : چند برنامه با یک برد

                              نوشته اصلی توسط Mr.Skylake نمایش پست ها
                              سلام
                              اونی که گفتید ino هست همون مخصوص آردینوعه.همونو بفرستید
                              برای فرستادنش آردوینو رو نصب کنید بعد روی کده کلیک کنید باز میشه بعد کدهاشو کپی کنید
                              سپاس از شما
                              کد:
                              #define vinPin A5
                              #define buz 9
                              #define pulsePin A4
                              
                              
                              #define led 10
                              
                              
                              long sumExpect=0; //running sum of 64 sums 
                              long ignor=0;   //number of ignored sums
                              long diff=0;        //difference between sum and avgsum
                              long pTime=0;
                              long buzPeriod=0; 
                              
                              
                              void setup() 
                              {
                                Serial.begin(9600);
                                pinMode(pulsePin, OUTPUT); 
                                digitalWrite(pulsePin, LOW);
                                pinMode(vinPin, INPUT);  
                                pinMode(buz, OUTPUT);
                                digitalWrite(buz, LOW);
                                pinMode(led, OUTPUT);
                              }
                              
                              
                              void loop() 
                              {
                                int minval=1023;
                                int maxval=0;
                                long unsigned int sum=0;
                                for (int i=0; i<256; i++)
                                {
                                  //reset the capacitor
                                  pinMode(vinPin,OUTPUT);
                                  digitalWrite(vinPin,LOW);
                                  delayMicroseconds(20);
                                  pinMode(vinPin,INPUT);
                                  applyPulses();
                                  
                                  //read the charge of capacitor
                                  int val = analogRead(vinPin); //takes 13x8=104 microseconds
                                  minval = min(val,minval);
                                  maxval = max(val,maxval);
                                  sum+=val;
                                  
                                  long unsigned int cTime=millis();
                                  char buzState=0;
                                  if (cTime<pTime+10)
                                  {
                                    if (diff>0)
                                      buzState=1;
                                    else if(diff<0)
                                      buzState=2;
                                  }
                                  if (cTime>pTime+buzPeriod)
                                  {
                                    if (diff>0)
                                    buzState=1;
                                    else if (diff<0)
                                    buzState=2;
                                    pTime=cTime;   
                                  }
                                  if (buzPeriod>300)
                                  buzState=0;
                              
                              
                                  if (buzState==0)
                                  {
                                    digitalWrite(led, LOW);
                                    noTone(buz);
                                  }  
                                  else if (buzState==1)
                                  {
                                    tone(buz,2000);
                                    digitalWrite(led, HIGH);
                                  }
                                  
                                  else if (buzState==2)
                                  {
                                    tone(buz,500);
                                    digitalWrite(led, HIGH);
                                  }
                                }
                              
                              
                                //subtract minimum and maximum value to remove spikes
                                sum-=minval; 
                                sum-=maxval;
                                
                                if (sumExpect==0) 
                                sumExpect=sum<<6; //set sumExpect to expected value
                                long int avgsum=(sumExpect+32)>>6; 
                                diff=sum-avgsum;
                                if (abs(diff)<avgsum>>10)
                                {
                                  sumExpect=sumExpect+sum-avgsum;
                                  ignor=0;
                                } 
                                else 
                                  ignor++;
                                if (ignor>64)
                                { 
                                  sumExpect=sum<<6;
                                  ignor=0;
                                }
                                if (diff==0) 
                                  buzPeriod=1000000;
                                else 
                                buzPeriod=avgsum/(2*abs(diff));    
                              }
                              
                              
                              void applyPulses()
                              {
                                  for (int i=0;i<3;i++) 
                                  {
                                    digitalWrite(pulsePin,HIGH); //take 3.5 uS
                                    delayMicroseconds(3);
                                    digitalWrite(pulsePin,LOW);  //take 3.5 uS
                                    delayMicroseconds(3);
                                  }
                              [FONT=Yekan]}[/FONT]

                              دیدگاه

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