اطلاعیه

Collapse
No announcement yet.

سوالات در مورد ARDUINO

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

    #46
    پاسخ : سوالات در مورد ARDUINO

    سلام خوبین دوستان&nbsp; من می خوام بوت لودر اردینو رو رویatmega328 بریزم&nbsp;<br>وپروگرمرم هم هاتل میشه راهنمایم کنید

    دلیل: ادغام دو پست برای جلوگیری از اسپم

    سلام دوستان الان می خوام بوت لودر اردینو رو روی atmega328بریزم پروگرمرم هاتل میشه راهنمایم کنید

    دیدگاه


      #47
      پاسخ : سوالات در مورد ARDUINO

      سلام دوستان. وقت بخیر. من یه کد برای آردوینو میخوام که با اعمال ولتاژ به یکی از پایه های ورودی آردوینو با یک کلید یا با ماژول گیرنده رادیویی دو پایه خروجی آردوینو HIGH بشن و وقتی کلید رو رها کردم (دیگه به پایه ورودی ولتاژ نرسید) پایه های خروجی هم LOW بشن.

      دیدگاه


        #48
        پاسخ : سوالات در مورد ARDUINO پروژه کنترل رله با sim800l

        باسلام و خسته نباشید خدمت دوستان و اساتید بزرگوار
        یک پروژه ای میخاستم انجام بدم که با پیامک دوتا رله رو قطع و وصل کنه

        با استفاده از اردوینو یونو و سیم 800l و ماژول رله ، سیم800 را به حدودا 4.2 و 2آمپر متصل کردم به شبکه متصل میشه هنگام تماس بوق ازاد میزنه و پیامک تحویل میگیره
        اما برد اردوینو هیچ عکس العملی نسبت به پیامک نداره سورس کد های مختلفی استفاده کردم مثل:

        کد HTML:
        #include <EEPROM.h>
        
        #include <SoftwareSerial.h> //Create software serial object to communicate with SIM800L
        
        SoftwareSerial GSM(8, 9);   //SIM800L Tx & Rx is connected to Arduino #8 & #9
        
        
        String phone_no1 = "+983456789"; //change +98 with country code and 3456789 with phone number to sms
        
        String phone_no2 = "Enter Number2"; 
        
        
        String        RxString  = ""; // Will hold the incoming String  from the GSM shield
        
        char          RxChar    = ' ';
        
        int           Counter   = 0;
        
        String        GSM_Nr    = "";
        
        String        GSM_Msg   = "";
        
        
        #define Relay1 2 // Load1 Pin Out#define Relay2 3 // Load2 Pin Out#define Relay3 4 // Load3 Pin Out#define Relay4 5 // Load4 Pin Out
        int load1, load2, load3, load4;
        void setup(){ // put your setup code here, to run once
        pinMode(Relay1, OUTPUT); digitalWrite(Relay1, 1); pinMode(Relay2, OUTPUT); digitalWrite(Relay2, 1); pinMode(Relay3, OUTPUT); digitalWrite(Relay3, 1); pinMode(Relay4, OUTPUT); digitalWrite(Relay4, 1); 
        
        Serial.begin(9600);//Begin serial communication with Arduino and Arduino IDE (Serial Monitor)  
        
        GSM.begin(9600);   //Begin serial communication with Arduino and SIM800L
        
        Serial.println("Initializing....");
        
        initModule("AT","OK",1000);                //Scan for GSM Module
        
        initModule("AT+CPIN?","READY",1000);       //this command is used to check whether SIM card is inserted in GSM Module or not
        
        initModule("AT+CMGF=1","OK",1000);         //Set SMS mode to ASCII
        
        initModule("AT+CNMI=2,2,0,0,0","OK",1000); //Set device to read SMS if available and print to serial
        
        Serial.println("Initialized Successfully"); 
        
        
        load1 = EEPROM.read(1);load2 = EEPROM.read(2);load3 = EEPROM.read(3);load4 = EEPROM.read(4);
        relays();
        delay(100);}
        void loop(){
          // scan for data from software serial port  //-----------------------------------------------  RxString = "";  Counter = 0;  while(GSM.available()){    delay(1);  // short delay to give time for new data to be placed in buffer    // get new character    RxChar = char(GSM.read());    //add first 200 character to string    if (Counter < 200) {      RxString.concat(RxChar);      Counter = Counter + 1;    }  }
          // Is there a new SMS?  //-----------------------------------------------  if (Received(F("CMT:")) ) GetSMS();
        if(GSM_Nr==phone_no1 || GSM_Nr==phone_no2){
        if(GSM_Msg=="load1on") {load1=0; sendSMS(GSM_Nr,"Ok Load 1 is On");}if(GSM_Msg=="load1off"){load1=1; sendSMS(GSM_Nr,"Ok Load 1 is Off");}
        if(GSM_Msg=="load2on") {load2=0; sendSMS(GSM_Nr,"Ok Load 2 is On");}if(GSM_Msg=="load2off"){load2=1; sendSMS(GSM_Nr,"Ok Load 2 is Off");}
        if(GSM_Msg=="load3on") {load3=0; sendSMS(GSM_Nr,"Ok Load 3 is On");}if(GSM_Msg=="load3off"){load3=1; sendSMS(GSM_Nr,"Ok Load 3 is Off");}
        if(GSM_Msg=="load4on") {load4=0; sendSMS(GSM_Nr,"Ok Load 4 is On");}if(GSM_Msg=="load4off"){load4=1; sendSMS(GSM_Nr,"Ok Load 4 is Off");}
        if(GSM_Msg=="allon") {load1=0, load2=0, load3=0, load4=0; sendSMS(GSM_Nr,"Ok All Load is On");}if(GSM_Msg=="alloff"){load1=1, load2=1, load3=1, load4=1; sendSMS(GSM_Nr,"Ok All Load is Off");}
        if(GSM_Msg=="loadstatus"){String loadst = "";
        if(load1==0){loadst="Load1 On\r\n";}        else{loadst="Load1 Off\r\n";}
        if(load2==0){loadst=loadst + "Load2 On\r\n";}        else{loadst=loadst + "Load2 Off\r\n";}
        if(load3==0){loadst=loadst + "Load3 On\r\n";}        else{loadst=loadst + "Load3 Off\r\n";}
        if(load4==0){loadst=loadst + "Load4 On";}        else{loadst=loadst + "Load4 Off";}
        sendSMS(GSM_Nr,loadst);}
        eeprom_write();relays();}
        
        GSM_Nr="";GSM_Msg="";}
        void eeprom_write(){EEPROM.write(1,load1);EEPROM.write(2,load2);EEPROM.write(3,load3);EEPROM.write(4,load4);  }
        void relays(){  digitalWrite(Relay1, load1); digitalWrite(Relay2, load2); digitalWrite(Relay3, load3); digitalWrite(Relay4, load4); }
        // Send SMS void sendSMS(String number, String msg){GSM.print("AT+CMGS=\"");GSM.print(number);GSM.println("\"\r\n"); //AT+CMGS=”Mobile Number” <ENTER> - Assigning recipient’s mobile numberdelay(500);GSM.println(msg); // Message contentsdelay(500);GSM.write(byte(26)); //Ctrl+Z  send message command (26 in decimal).delay(5000);  }
        // Get SMS Contentvoid GetSMS() {  //Get SMS number  //================================================  GSM_Nr  = RxString;  //get number  int t1 = GSM_Nr.indexOf('"');  GSM_Nr.remove(0,t1 + 1);  t1 = GSM_Nr.indexOf('"');  GSM_Nr.remove(t1);
          // Get SMS message  //================================================  GSM_Msg = RxString;  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  t1 = GSM_Msg.indexOf('"');  GSM_Msg.remove(0,t1 + 1);  GSM_Msg.remove(0,1);  GSM_Msg.trim();
        Serial.print("Number:"); Serial.println(GSM_Nr);Serial.print("SMS:"); Serial.println(GSM_Msg);}
        // Search for specific characters inside RxString boolean Received(String S) {  if (RxString.indexOf(S) >= 0) return true; else return false;}
        
        // Init GSM Module void initModule(String cmd, char *res, int t){while(1){    Serial.println(cmd);    GSM.println(cmd);    delay(100);    while(GSM.available()>0){       if(GSM.find(res)){        Serial.println(res);        delay(t);        return;       }else{Serial.println("Error");}}    delay(t);  }}
        اما نتیجه ای نگرفتم ممنون میشم دوستان راهنمایی کنن
        جدیدترین ویرایش توسط aliyaram; ۰۰:۲۹ ۱۴۰۱/۰۴/۲۳.

        دیدگاه


          #49
          پاسخ : سوالات در مورد ARDUINO

          سلام دوستان در این عبارات منظور از cap چیست ؟
          Adafruit_MPR121 cap = Adafruit_MPR121();
          یا
          if (!cap.begin(0x5A)) {
          یا
          currtouched = cap.touched();

          اینها بخشی از کتابخانه mpr121 هستند :
          Adafruit_MPR121/MPR121test.ino at master · adafruit/Adafruit_MPR121 · GitHub
          جدیدترین ویرایش توسط siavash1633; ۰۸:۳۵ ۱۴۰۱/۰۴/۲۸.

          دیدگاه


            #50
            پاسخ : سوالات در مورد ARDUINO

            نوشته اصلی توسط siavash1633 نمایش پست ها
            سلام دوستان در این عبارات منظور از cap چیست ؟
            Adafruit_MPR121 cap = Adafruit_MPR121();
            یا
            if (!cap.begin(0x5A)) {
            یا
            currtouched = cap.touched();

            اینها بخشی از کتابخانه mpr121 هستند :
            Adafruit_MPR121/MPR121test.ino at master · adafruit/Adafruit_MPR121 · GitHub
            سلام
            دوست عزیز شما بهتره قبل از دست به کد شدن برای میکروکنترلر، حتما به زبان مورد استفاده تسلط نسبی داشته باشید. در مورد شما این مورد زبان C++ هستش. بهتره حتما روی مهارت زبانی اتون وقت بذارید.
            این cap هم اینجا اسم یک شیء از کلاس Adafruit_MPR121 هستش که توی همون خط اول تعریفشو نوشتید. توی کل کد میتونید cap رو به هر اسمی که دلتون بخواد عوض کنید و برنامه به مشکل نخوره.

            دیدگاه


              #51
              پاسخ : سوالات در مورد ARDUINO

              سلام من سه تا آردوینو pro mini deek robot خریدم. پروگرامر کردنش که به کار پوستم رو کند ولی الان نمی تونم باهاش LCD 16*2 رو روشن کنم. کدها مربوط به خانواده مختلف آردوینو رو تست کردم ولی این یکی دیتاشیت هم ازش نیست. ممنون میشم راهنمایی کنید. یک بار روشن میشد مربع سیاه می اومد و می*رفت الان هم که پایه عوض کردم فقط مربع سیاه میاد. مشکل با شنایی دورت ها دارم
              جدیدترین ویرایش توسط adernalin_77; ۱۹:۱۱ ۱۴۰۱/۰۶/۰۵.

              دیدگاه


                #52
                پاسخ : سوالات در مورد ARDUINO

                سلام
                یه برنامه روی آردوینو اجرا کردم که در حین اجرا برنامه دچار وقفه می شد،
                برای تست یک برنامه ساده نوشتم که هر ثانیه تعداد سیکل های اجرای برنامه را شمارش و در خروجی سریال پرینت کند
                هر چند ثانیه یک بار به صورت کاملاً نامنظم و تصادفی تعداد سیکل های اجرای برنامه دچار کاهش شدید می شود و سپس دوباره به تعداد نرمال برمی گردد. علت ایجاد این وقفه ها چیست

                نمونه برنامه برای شمارش سیکل و خروجی سریال:




                جدیدترین ویرایش توسط DL110; ۲۳:۵۰ ۱۴۰۱/۰۶/۰۵.

                دیدگاه


                  #53
                  پاسخ : سوالات در مورد ARDUINO

                  سلام.دوستان یه بردآردوینو WeMos D1 WiFi دارم که بعد اینکه برقش قطع و وصل میشه کلا عملکردش متوقف میشه.مثلا وقتی برقا برن، بعد اینکه برقا مجدد وصل بشن برد دیگه کار نمیکنه و حتما باید دکمه ریست زده بشه.راه حلی دارین براش؟

                  دیدگاه


                    #54
                    پاسخ : سوالات در مورد ARDUINO

                    سلام

                    یک پروژه دارم که علاوه بر ال سی دی کاراکتری، ماژول دما و رطوبت ، سه عدد رله و یک عدد میکروسوییچ به اردوینو متصل هست

                    مشکلی با ال سی دی و ماژول ندارم

                    اما برای فعال سازی رله ها به مشکل برخورد کردم

                    پروژه اینطوری هست که

                    1- با فشردن میکروسوییچ، رله اول فعال میشه (تا اینجا هم مشکلی ندارم)

                    2- اگر رله اول فعال باشه و مجددا میکروسوییچ را فشار دادیم رله دوم باید فعال بشه

                    3- اگر رله اول و دوم فعال بودن و مجددا میکروسوییچ را فشار دادیم و دکمه را نگه داشتیم تا زمانی که دکمه را پایین نگه داشتیم رله اول غیر فعال و رله سوم فعال بشه و به محض اینکه دست را از روی دکمه برداشتیم رله اول فعال و رله سوم غیر فعال بشه

                    4- اگر رله اول و دوم فعال بودن و میکروسوییچ را فشار دادیم تمام رله ها غیر فعال بشن



                    لطفا راهنمایی کنید

                    با ارادت ویژه و تشکر فراوان

                    دیدگاه


                      #55
                      پاسخ : سوالات در مورد ARDUINO

                      نوشته اصلی توسط foxking نمایش پست ها
                      سلام

                      یک پروژه دارم که علاوه بر ال سی دی کاراکتری، ماژول دما و رطوبت ، سه عدد رله و یک عدد میکروسوییچ به اردوینو متصل هست

                      مشکلی با ال سی دی و ماژول ندارم

                      اما برای فعال سازی رله ها به مشکل برخورد کردم

                      پروژه اینطوری هست که

                      1- با فشردن میکروسوییچ، رله اول فعال میشه (تا اینجا هم مشکلی ندارم)

                      2- اگر رله اول فعال باشه و مجددا میکروسوییچ را فشار دادیم رله دوم باید فعال بشه

                      3- اگر رله اول و دوم فعال بودن و مجددا میکروسوییچ را فشار دادیم و دکمه را نگه داشتیم تا زمانی که دکمه را پایین نگه داشتیم رله اول غیر فعال و رله سوم فعال بشه و به محض اینکه دست را از روی دکمه برداشتیم رله اول فعال و رله سوم غیر فعال بشه

                      4- اگر رله اول و دوم فعال بودن و میکروسوییچ را فشار دادیم تمام رله ها غیر فعال بشن



                      لطفا راهنمایی کنید

                      با ارادت ویژه و تشکر فراوان
                      با سلام و احترام
                      دوست عزیز با توجه به اینکه در شرط ۳ و ۴ ورودیهای شرط یکیه و فقط تفاوت در عملکرد میکرو سوییچه شمانمیتوانید لحظه فشرده شدن کلید را به تنهایی چک کنید و مجبورید لحظه رها کردن کلید را هم مد نظر قرار دهید به همین دلیل باید برای مفهوم نگه داشتن کلیدحتما یک زمان تعریف کنید. و حداقل زمانی که از نظرشما نگه داشتن است را مشخص کنید تا بتوانید اختلاف زمان بین لحظه فشرده شدن کلید تا لحظه رها شدن آن را بعنوان یکی از حالتهای ۳ و یا ۴ درنظر بگیرید.
                      موفق باشید.

                      دیدگاه

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