اطلاعیه

Collapse
No announcement yet.

آموزش Arduino + برنامه چهاردهم (HC- 05)

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

    آموزش Arduino + برنامه چهاردهم (HC- 05)

    با سلام خدمت همه دوستان
    به خاطر اینکه خیلی از بچه ها (البته شما مردان بزرگی هستید ) با بردهای Arduino آشنایی ندارند و با طرز کار و برنامه نویسی اون مشکل دارند سعی کردم تا از مباحث مقدماتی شروع به آموزش کنم و با ساده ترین مثال برنامه نویسی که بچه های کامپیوتر بهش میگن Hello World اما برقی ها فکر کنم به ساده ترین برنامشون LED ON /OFF بگن شروع میکنیم تا اگه دوستان راغب به ادامه بودند تا سطوح بالا پیش بریم . پس خواهشی که از دوستان و مهندسین و اساتید عزیز دارم اینه که مباحثی رو که توی آموزش هنوز عنوان نشده رو نپرسن (جلوتر از آموزش سوالی نپرسن ) چون قراره قدم به قدم پیش بریم تا دچار سردرگمی دیگران نشه و سعی کنند سوالات متفرقه توی پست های دیگه عنوان بشن . و مطلب بعدی اینکه سعی می کنم دستورات رو با نوشتن برنامه توضیح بدم و دوستان هم با توجه به دستورات گفته شده برنامه هایی که نوشتن رو برای سایرین قرار بدن :read:

    اضافه شده در تاریخ :
    چون قراره که برنامه ها رو توی پروتئوس هم شبیه سازی کنیم بهتره دوستان کتابخانه Arduino رو از لینک زیر دانلود و نصب کنند .
    http://freeupload.ir/gucbfjgty08s/Pr...brary.rar.html
    چشم ها را باید شست ، جور دیگر باید دید . . .

    #2
    پاسخ : آموزش قدم به قدم ARDUINO

    بردی که من استفاده می کنم Uno هست . البته ماهیت کار برای همه بردها به یک شکل است قبل از هر چیز باید برنام آردینو رو دانلود کنیم . از لینک زیر میتونید آخرین ورژن برنامه رو دانلود کنید . درایور رو هم باید نصب کنید .
    http://arduino.cc/en/main/software
    بعد از نصب و اجرای برنامه شکل زیر را داریم . برنامه ای با محیط ساده و کاربر پسند

    دو تا تنظیم اصلی رو شما باید انجام بدید :
    1 - برد آردینویی که استفاده می کنید رو از منوی Tools>Board انتخاب کنید .
    2 - پورتی که آردینو به آن وصل هست رو از منوی Tools>Port انتخاب کنید .
    قسمتی اصلی که ما با آن سر و کار داریم کادر سفید رنگ وسط صفحه هست(Sketch )، این کادر از دو تابع تشکیل شده که همیشه باید در برنامه ها باشند . این دو تابع به قرار زیرند :
    () void setup : تابعی که فقط یک بار اجرا میشه و وظیفه پیکربندی پین های ورودی و خروجی رو به عهده داره . کلا کار پیکربندی برد رو انجام میده .
    () void loop : فرامین و دستورات مورد نظر توی این تابع قرار میگیرن و تا موقعی که برد به تغذیه متصل هست اجرا میشه ( حلقه بی نهایت ) .
    قسمت کادر سیاه رنگ پائین برنامه هم گزارش وقایع رو بر عهده داره ( پلود شدن برنامه بر روی برد ، نمنایش خطای رخ داده )
    چشم ها را باید شست ، جور دیگر باید دید . . .

    دیدگاه


      #3
      پاسخ : آموزش قدم به قدم ARDUINO

      برنامه اول LED چشمک زن :
      [code=c]void setup() {
      // put your setup code here, to run once:
      pinMode(13,OUTPUT);
      }

      void loop() {
      // put your main code here, to run repeatedly:
      digitalWrite(13,HIGH);
      delay(250);
      digitalWrite(13,LOW);
      delay(250);
      }[/code]
      توضیحات :
      نکته : برنامه به حروف بزرگ و کوچک حساس می باشد . حتما در آخر تمامی دستورات از سمیکولن ";" استفاده شود .
      اولین دستور که با اون آشنا میشیم
      [code=c]pinMode(pin,INPUT/OUTPUT);[/code]
      این دستور برای پیکربندی پین به عنوان ورودی و خروجی بکار می رود . pin ، شماره پین مورد نظر می باشد .
      دومین دستور که با اون آشنا میشیم
      [code=c]digitalWrite(pin,HIGH/LOW);[/code]
      از این دستور برای نوشتن بر روی پین استفاده می شود . پین مورد نظر حتما باید به عنوان خروجی تعریف شود . عبارت HIGH و LOW معدل دستور set و reset می باشد .(HIGH = 5 v , LOW = 0 v)
      و اما آخرین دستور که همه با اون آشنا هستیم ، دستور ایجاد تاخیر
      [code=c]delay(X);[/code]
      می باشد. این تاخیر بر حسب میلی ثانیه می باشد .

      چشم ها را باید شست ، جور دیگر باید دید . . .

      دیدگاه


        #4
        پاسخ : آموزش قدم به قدم ARDUINO

        شبیه سازی برنامه LEDچشمک زن در محیط پروتئوس . برای این کار قبل از هر چیز تنظیم زیر را مطابق تصویر انجام دهید



        حالا برنامه رو پلود می کنیم . بعد از تمام شده پلود در داخل کادر سیاه رنگ پائین برنامه دنبال ادرسی مطابق شکل بگردید



        این آدرس مسیر فایل هگز برنامه رو برای ما نشون میده آدرس رو کپی کنید تا در قسمت Program file در قسمت پروتئوس وارد کنید . بعد از این کار کار تمام است . برنامه رو اجرا کنید و از صحت اون مطمئن شوید .
        شبیه سازی در پروتئوس

        چشم ها را باید شست ، جور دیگر باید دید . . .

        دیدگاه


          #5
          پاسخ : آموزش قدم به قدم ARDUINO

          قصد داریم در این برنامه با یک push Button یک LED رو خاموش و روشن کنیم به صورت لحظه ای ابتذا مدار زیر را ببندید .



          برنامه رو به صورت زیر بنویسید :
          [code=c]const int pinButton=2;
          const int pinLed=3;
          void setup() {
          pinMode(pinButton,INPUT);
          digitalWrite(pinButton,HIGH);
          pinMode(pinLed,OUTPUT);
          }

          void loop() {
          if (digitalRead(pinButton)==LOW){
          digitalWrite(pinLed,HIGH);
          }
          else{
          digitalWrite(pinLed,LOW);
          }
          }[/code]

          توضیحات :
          در خط اول و دوم دو متغیر ثابت (constant) تعرف کردیم . کار با متغیرها و انواع اون رو که خدا رو شکر به خاطر دارید ؟!
          یادآوری :


          متغیرها به دو صورت سراسری (Global) و محلی (Local) در برنامه تعرف می شوند .
          Global Variable : این نوع متغیر در ابتدای برنامه و قبل از تابع void setup قرار میگیرد . از این متغیر در تمامی مراحل برنامه نویسی می توان استفاده کرد . (خیلی توی برنامه نویسی به داد آدم میرسه) .
          Local Variable : این نوع متغیر در داخل توابع و در طول برنامه نویسی تعریف می شود و فقط در محدوده تعریف شده خودش کاربرد دارد .
          پس ما دو تا متغیر تعریف کردیم به صورت سراسری تا توی برنامه هرجا خواستیم ازشون استفاده کنیم . با pinMode که آشنا شدیم ، در اینجا قصد داریم تا پین مربوط به Push Button رو به عنوان ورودی تعریف کنیم پس در خط چهارم پین 2 به عنوان ورودی تعریف شده است . در خط پنجم ما با دستور [code=c]digitalWrite(pinButton,HIGH);[/code]
          مقاومت Pullup داخلی را برای پین ورودی فعال می کنیم . ( با Pull up که آشنایی دارید ؟ ) در خط بعد هم پین 3 به عنوان خروجی معرفی می شود .
          دستور بعدی که باهاش کار میکنیم دستور آشنای IF هست شکل دستوریش به این صورت است
          [code=c]if (Conditions){
          Statements;
          }
          else if{
          Statements;
          }
          else{
          Statements ;
          }
          [/code]
          دستوری که در بلوک IF از اون استفاده کردیم [code=c]digitalRead(pin)[/code]
          عمل خواند از پین رو برای ما انجام میده
          پس با استفاده از این بلوک گفتیم که اگر پین شماره 2 برابر صفر (LOW) شد LED روشن بشه درغیر اینصورت خاموش شود .
          سوال :
          به نظرتون چطوری میشه LED به صورت دائمی روشن یا خاموش بشه ؟؟؟
          چشم ها را باید شست ، جور دیگر باید دید . . .

          دیدگاه


            #6
            پاسخ : آموزش ARDUINO

            برنامه سوم :
            اول مداری به شکل زیر روی برد برد ببندید



            توی این برنامه قصد داریم تا با PWM آشنا بشیم و نور یک LED رو با دو Push Btton به صورت دیمر کنترل کنیم . پس بیاید دست به کار بشیم . این برنامه رو بنویسید و روی برد آردوینو پلود کنید . بعد در عمل تغییرات رو مشاهده کنید .
            [code=c]const int pinDown=2;
            const int pinUp=4;
            const int pinLed=3;
            void setup() {
            pinMode(pinDown,INPUT);
            pinMode(pinUp,INPUT);
            digitalWrite(pinDown,HIGH);
            digitalWrite(pinUp,HIGH);
            pinMode(pinLed,OUTPUT);
            }
            int ledBrightness=255;
            void loop() {
            if (digitalRead(pinDown)==LOW ){
            ledBrightness--;
            if (ledBrightness<0){
            ledBrightness=0;
            }
            }
            else if (digitalRead(pinUp)==LOW){
            ledBrightness++;
            if (ledBrightness>255){
            ledBrightness=255;
            }
            }
            analogWrite(pinLed,ledBrightness);
            delay(20);
            }[/code]
            توضیحات :
            اول اینکه برای استفاده از پین آردوینو به عنوان PWM شما فقط قادرید از پین هایی که در کنار اون علامت "~" قرارداره استفاده کنید ( پایه های 3,5,6,9,10,11) به این پایه ها مقادیر 0 تا 255 رو میتوان داد . برای این کار شما باید از دستور[code=c]analogWrite(pin,Value);[/code] استفاده کنید . در برنامه از IF های تودرتو استفاده کردیم . پس پین ها رو پیکر بندی کردیم بعد متغیری برای تعیین مقدار اولیه PWM قرار دادیم . و توسط IF های تودرتو مقدار PWM رو بین 0 و 255 نگه داشتیم . البته برنامه واضح و گویا هست . من زیاد حرف نمیزنم .
            سوال :
            چطور میتوان افکت Fade (کم نور و پر نور شدن) به صورت خودکار و بدون نیاز به Push Btton انجام داد ؟
            چشم ها را باید شست ، جور دیگر باید دید . . .

            دیدگاه


              #7
              پاسخ : آموزش ARDUINO

              برنامه قبلی رو که کار کردید دیگه !!!؟ حالا همون برنامه قبل رو می خوایم به یک روش دیگه بنویسیم و با یک دستور جدید آشنا بشیم . مدار برنامه همون مدار قبل هست . خب برنامه رو به صورت زیر تغییر میدیم :
              [code=c]const int pinDown=2;
              const int pinUp=4;
              const int pinLed=3;
              void setup() {
              pinMode(pinDown,INPUT);
              pinMode(pinUp,INPUT);
              digitalWrite(pinDown,HIGH);
              digitalWrite(pinUp,HIGH);
              pinMode(pinLed,OUTPUT);
              }
              int ledBrightness=255;
              void loop() {
              if (digitalRead(pinDown)==LOW ){
              ledBrightness--;
              }
              else if (digitalRead(pinUp)==LOW){
              ledBrightness++;
              }
              ledBrightness=constrain(ledBrightness,0,255);
              analogWrite(pinLed,ledBrightness);
              delay(20);
              }[/code]
              توضیحات :
              در برنامه قبل ار IF های تودرتو استفاده کردیم ، هم از زیبایی برنامه کم کرده بود هم پیچیده تر شده بود و خوانا نبود ولی توی این برنامه ما با استفاده از دستور زیر دو تا از IF ها رو حذف کردیم
              [code=c]Var=constrain(Var,min,max);[/code]
              کار این دستور اینه که مقدار متغییر مورد نظر ما رو بین دو مقدار min و max قرار بده . همونطور که توی برنامه می بینید متغییر ledBrightness ما که همون مقدار PWM برنامه است باید بین 0 و 255 تغییر کند ، حالا اگر مقدار متغییر بیشتر از 255 شود دستور constrain مقدار متغییر را برابر 255 (max) قرار میدهد و اگر از مقدار 0 کمتر شود مقدار متغییر را برابر 0 (min) قرار میدهد به همین راحتی
              چشم ها را باید شست ، جور دیگر باید دید . . .

              دیدگاه


                #8
                پاسخ : آموزش ARDUINO

                برنامه چهارم :
                حالا ما فرض می کنیم شما برنامه های قبلی رو کار کردید و تقریبا با اصول کار آشنا شدید ( :applause برنامه های قبلی کلا از طریق پین ها دیجیتال انجام شد اما آردوینو پین های آنالوگ هم داره امروز قراره با پین آنالوگ آشنا بشیم . بریم سراغ برنامه اول مدار زیر رو ببندید . توی این مدار من به جای LED موتور گذاشتم تا وقتی توی پروتئوس مدار رو بستید بتونید جواب بگیرید



                تصویر خروجی موج در پروتئوس



                این برنامه رو هم بنویسید و پلود کنید
                [code=c]const int pinPot=A0;
                const int pinLed=9;
                void setup() {
                pinMode(pinPot,INPUT);
                pinMode(pinLed,OUTPUT);

                }

                void loop() {
                int ledBrightness;
                int potValue;
                potValue=analogRead(pinPot);
                ledBrightness=potValue/4;
                analogWrite(pinLed,ledBrightness);
                }[/code]
                توضیحات :
                با تعریف متغییر که آشنا شدیم طرز کار pinMode رو هم فهمیدیم ، یاد گرفتیم که با analogRead میتونیم مقدار آنالوگ رو از پین بخونیم با analogWrite میتونیم روی پین بنویسیم (PWM) . توی این برنامه ما به جای استفاده از پین دیجیتال به عنوان ورودی پین A0 رو به عنوان پین ورودی تعرف کردیم و توسط یک عدد پتانسیو متر (در عمل سعی کنید از ولوم استفاده کنید ) عمل کنترل سرعت یا نور رو انجام میدیم در ضمن 6 عدد پین A0-A5 به عنوان پین های آنالوگ کاربرد دارند .
                نکته : پین های آنالوگ 10 بیتی هستند پس مقادیر 0 تا 1023 را بر میگردانند پس نپرسید اون تقسیم بر 4 از کجا اومده ( :eek
                نکته : پین های آنالوگ به صورت پیش فرض ورودی هستند (INPUT) پس نیازی نیست که در برنامه تعریف بشن

                چشم ها را باید شست ، جور دیگر باید دید . . .

                دیدگاه


                  #9
                  پاسخ : آموزش ARDUINO

                  برنامه پنجم :
                  قصد داریم با یک تغییر در برنامه قیل سرعت چشمک زدن یک LED رو کنترل کنیم . مدار همون مدار قبلی هستش . برنامه رو به صورت زیر تغییر بدید
                  [code=c]const int pinPot=A0;
                  const int pinLed=9;
                  void setup() {
                  pinMode(pinLed,OUTPUT);

                  }

                  void loop() {
                  int potValue;
                  potValue=analogRead(pinPot);
                  digitalWrite(pinLed,HIGH);
                  delay(potValue);
                  digitalWrite(pinLed,LOW);
                  delay(potValue);
                  }[/code]
                  توضیحات :
                  برنامه کاملا گویا هست و نیازی به توضیح و تفسیر نداره مقدار خوانده شده از پین آنالوگ به عنوان متغییر delay مورد استفاده قرار میگیره
                  چشم ها را باید شست ، جور دیگر باید دید . . .

                  دیدگاه


                    #10
                    پاسخ : آموزش ARDUINO

                    برنامه ششم :
                    تا حالا دیگه باید Base برنامه نویسی با آردوینو رو یاد گرفته باشید . دربرنامه قبل روش کار با ورودی آنالوگ رو یاد گرفتید . تو این برنامه قراره با ارتباط سریال آشنا بشیم پس اول این برنامه رو توی محیط Arduino بنویسید
                    [code=c]void setup() {
                    Serial.begin(9600);
                    }
                    int Time=0;
                    void loop() {
                    Time ++;
                    delay(1000);
                    Serial.print("Time= "
                    Serial.println(Time);
                    }[/code]
                    توضیحات :
                    اولین دستور جدید رو توی خط دوم داریم که به فرم زیر است
                    [code=c] Serial.begin(Baud Rate);[/code]
                    با این دستور ارتباط سریال با Baud Rate که براش تعرف می کنید برقرار میشه . دستور بعدی
                    [code=c]Serial.print("String "
                    Serial.println(Value);[/code]
                    همتون دیگه با این دستور آشنا هستید . اطلاعات رو به پورت سریال ارسال میکنه و شما میتونید از طریق Terminal های کامپیوتر برنامه رو ببینید . (Serial.println به خط بعد میره )
                    در ضمن خود برنامه Arduino هم گزینه ای به نام Serial Monitor داره که میتونید از طریق اجرای اون داده های ارسالی رو ببینید .
                    نکته : اگر از برنامه های دیگه برای نمایش استفاده می کنید . پورت Com رو باید همونی پورتی که برد از طریق تون به کامپیوتر وصل هست رو انتخاب کنید . در شبیه ساز پروتئوس هم که روال کار معلوم هست .
                    چشم ها را باید شست ، جور دیگر باید دید . . .

                    دیدگاه


                      #11
                      پاسخ : آموزش ARDUINO

                      برنامه هفتم :
                      ارتباط سریال رو توی برنامه قبل یاد گرفتیم حتما کار کردید ؟؟؟!!! الان میخوایم سنسور دمای LM35 رو با آردوینو و با استفاده از برنامه قبل راه اندازی کنیم . پس با ما باشید :rolleyes:
                      مدار رو به صورت زیر ببندید



                      حالا این برنامه رو هم توی محیط Arduino IDE بنویسید
                      [code=c]const int pinTemp=A0;
                      void setup() {
                      Serial.begin(9600);

                      }

                      void loop() {
                      float temperatureC=getTemperatureC();
                      Serial.print(temperatureC);
                      Serial.println(" Degree C"
                      delay(500);
                      }
                      float getTemperatureC(){
                      int reading=analogRead(pinTemp);
                      float voltage=reading/2.04;
                      return voltage;
                      }
                      [/code]
                      توضیحات :
                      توی خط هشتم یک متغییر از نوع float معرفی کردیم (اعشاری) به این صورت
                      [code=c] float temperatureC=getTemperatureC();[/code]
                      گفتیم مقدار این متغییر برابر بشه با مقدار برگشتی تابع () getTemperatureC . اونایی که برنامه نویسی کار کرده اند روش ساخت تابع رو حتما میدونن ( :nerd اونایی هم که کار نکردن باید :read: . در کل چون پایه برنامه نویسی در این نرم افزار ++C , C هست اونایی که با این قبیل زبان ها کار کرده باشند خیلی سریع کار با آردوینو رو یاد میگیرن ( چقدر حرف میزنم من :icon_razz بقیه چیزا رو میدونید تا برسیم به خط سیزدهم این همون تابعی هست که ما تعریف کردیم . نگاه کنید همه چی دستگیرتون میشه
                      [code=c]float getTemperatureC(){
                      int reading=analogRead(pinTemp);
                      float voltage=reading/2.04;
                      return voltage;
                      }[/code]
                      شکل کلی دستور به این صورته
                      [code=c]VariableType FuynctionName(){
                      statements;
                      return Value;
                      }[/code]
                      حوصله ندارم توضیح بدم هر کی نفهمید بگه تا بهش بگم چی به چی شده :wow:
                      سوال :
                      چرا مقدار خوانده شده از پین A0 را بر 2.04 تقسیم کردیم ؟؟؟
                      چشم ها را باید شست ، جور دیگر باید دید . . .

                      دیدگاه


                        #12
                        پاسخ : آموزش ARDUINO

                        برنامه هشتم :
                        خب تا اینجا راضی بودید ؟؟؟ توی برنامه امروز یاد میگیریم چجوری با برآردوینو یک LCD کاراکتری رو راه اندازی کنیم . مدار برنامه رو به صورت زیر ببندید .



                        برنامه زیر رو هم بنویسید
                        [code=c]#include <LiquidCrystal.h>
                        LiquidCrystal lcd(12,11,10,5,4,3,2);

                        void setup() {
                        lcd.begin(16,2);
                        lcd.clear();
                        lcd.setCursor(0,0);
                        lcd.print("Hello Arduino"
                        lcd.setCursor(0,1);
                        lcd.print("ECA.IR"

                        }

                        void loop() {

                        }[/code]

                        توضیحات :
                        اولین خط حاوی یک دستور جدیده . اونایی که با کدویژن کار میکنن میدونن کارش چیه ؟ این دستور یک تابع رو از کتابخانه برنامه فراخونی میکنه لیست توابع کتابخانه Arduino IDE رو میتونید از منوی Sketch\ Import Library ببینید و به برنامه اضافه کنید . بعد از اون باید LCD رو پیکر بندی کنیم همونطور که در خط دوم مشاهده می کنید متغییری با نام lcd تعریف و پایه های به کار رفته رو معرفی کردیم . در خطوط بعدی نوع LCD رو مشخص کردیم و از مابقی دستورات هم برای نوشتن استفاده می کنیم که از نام دستورات کاملا نحوه کارشون معلومه
                        چشم ها را باید شست ، جور دیگر باید دید . . .

                        دیدگاه


                          #13
                          پاسخ : آموزش ARDUINO

                          برنامه نهم :
                          اصلا ترس به خودتون راه ندید . برنامه قبل LCD بود قبلیشم LM35 بود حالا این دو تا رو قراره با هم کار کنیم . پس مدار و برنامه به قرار زیر می باشد .


                          [code=c]#include <LiquidCrystal.h>
                          LiquidCrystal lcd(12,11,10,5,4,3,2);
                          const int pinTemp=A0;
                          void setup() {
                          lcd.begin(16,2);
                          lcd.clear();
                          lcd.setCursor(7,0);
                          lcd.print("Degree C"
                          }

                          void loop() {
                          float temperatureC=getTemperatureC();
                          lcd.setCursor(0,0);
                          lcd.print(temperatureC);
                          delay(500);
                          }
                          float getTemperatureC(){
                          int reading=analogRead(pinTemp);
                          float voltage=reading/2.04;
                          return voltage;
                          }
                          [/code]
                          توضیحات :
                          چه خبره قرار نیست که همیشه من توضیح بدم ( ) خودتون زحمت بکشید برنامه رو آنالیز کنید
                          چشم ها را باید شست ، جور دیگر باید دید . . .

                          دیدگاه


                            #14
                            پاسخ : آموزش ARDUINO

                            سلام
                            مهندس جان یه سوال
                            برنامه شمارش بوسیله پوش باتون رو من اینجور نوشتم ولی انگار تو حلقه while آخری گیر میکنه و بیرون نمیاد
                            هدف اینه که با هر بار زدن پوش باتون یک واحد اضافه کنه به متغیر.میشه یه نگاهی بندازی و اشکالشوبگی؟
                            کد:
                            const int buttonPin = 2;
                            int counter = 0;
                            void setup() { 
                             pinMode(buttonPin, INPUT);
                             Serial.begin(9600);
                            }
                            void loop() {
                            int reading = digitalRead(buttonPin);
                            if(reading==HIGH){
                             counter++;  
                             Serial.print("Button pressed ");
                              Serial.print(counter);
                              Serial.println(" times");
                            while(reading==HIGH){};
                            } 
                            }
                            telgram:09396888049

                            دیدگاه


                              #15
                              پاسخ : آموزش ARDUINO

                              سلام
                              اگر فقط قصد دارید که با هر بار فشار دادن Button یک واحد به متغییر اضافه کنید اصلا نیازی به دستور While نیست ، پس While رو حذف کنید و یک تاخیر هم در برنامه ایجاد کنید حله . حالا چرا While استفاده کردید ؟؟؟؟ :eek: (حلقه بی نهایت)

                              [code=c]const int buttonPin = 2;
                              int counter = 0;
                              void setup() {
                              pinMode(buttonPin, INPUT);
                              Serial.begin(9600);
                              }
                              void loop() {
                              int reading = digitalRead(buttonPin);
                              if(reading==HIGH){
                              counter++;
                              Serial.print("Button pressed "
                              Serial.print(counter);
                              Serial.println(" times"
                              delay(200);
                              }
                              }[/code]
                              چشم ها را باید شست ، جور دیگر باید دید . . .

                              دیدگاه

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