اطلاعیه

Collapse
No announcement yet.

خواندن صحیح عدد یا رشته از روی بلوتوث

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

    خواندن صحیح عدد یا رشته از روی بلوتوث

    سلام و درود.
    اساتید محترم شما که همتون اند الکترونیک هستید.لطفا این مشکلو هرکدومتون دلیلشو بلد بودید بگید.
    یه ماژول بلوتوث رو لحیم کردم پین ۰ و ۱ آردوینو.نه مستقیم.یه شیلد روی آردوینو هست که همه پینا اشغال کرده
    واسه همین مجبور شدم به شیلد tx و rx را لحیم کنم
    برم سر اصل مطلب...
    هرکاری میکنم نمیتونم عدد یاکلمه رو از طریق بلوتوث صحیح بگیرم.
    اگه از نوع رشته تعریف کنم تابع Serial.read() رو کامپایلر خطا میده
    اگه از نوع int بزارمش عددا صحیح نیستن.وقتی چیزی دریافت نمیشه ۱- میزنه.اگه چیزی بفرستم به اضافه ۴۸ میکنه بعد میزنه.مثلا ۱ بفرستم ۴۹ میده.
    تازه ایکاش فقط این بود فقط تا ۹ میتونم عدد بفرستم اگه مثلا ۱۰ بفرستم دونه دونه میخونش تو یه خط ۴۹ میده برا یک خط دیگه ۴۸ میده برا صفر.
    لطفا بگید چجوری درستش کنم.بخدا ۳ روز هست که درگیر اینم.
    پیشاپیش از کمکتون ممنون.
    لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
    گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
    لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
    گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

    #2
    پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

    چون معادل کد اسکی رو برمی گردونه که ۰ معادل ۴۸ هست
    شما serial read رو که داخل یک متغیر ریختید ، اون متغیر رو منهای صفر اسکی کنید ،
    m=serial.read();
    number=m-'0';

    دیدگاه


      #3
      پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

      نوشته اصلی توسط Masood Ashoori نمایش پست ها
      چون معادل کد اسکی رو برمی گردونه که ۰ معادل ۴۸ هست
      شما serial read رو که داخل یک متغیر ریختید ، اون متغیر رو منهای صفر اسکی کنید ،
      m=serial.read();
      number=m-'0';
      ببخشید
      یه مشکل دیگه هم داشتم
      اگه عدد ۲ رقم به بالا بفرستم تکی تفسیر میکنه
      مثلا اگه بزنم ۱۱ دو تا ۴۹ توی ۲ خط چاپ میکنه.
      چکار کنم کل عددو تفسیر کنه
      لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
      گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
      لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
      گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

      دیدگاه


        #4
        پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

        دستور زیر رو جایگزین کنید

        m=Serial.parseInt();

        دیدگاه


          #5
          پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

          نوشته اصلی توسط Masood Ashoori نمایش پست ها
          دستور زیر رو جایگزین کنید

          m=Serial.parseInt();
          سلام
          ببخشید میشه تو تگ کد بفرستید و توضیح هم بدید؟ممنون.
          لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
          گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
          لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
          گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

          دیدگاه


            #6
            پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

            استاد یه فکری به ذهنم رسید.
            اینکه بیام با استفاده از تابع زیر عدد رو به صورت رشته دریافت کنم
            کد:
            Serial.println(Serial.readString());
            لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
            گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
            لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
            گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

            دیدگاه


              #7
              پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

              نوشته اصلی توسط Mr.Skylake نمایش پست ها
              استاد یه فکری به ذهنم رسید.
              اینکه بیام با استفاده از تابع زیر عدد رو به صورت رشته دریافت کنم
              کد:
              Serial.println(Serial.readString());
              از صبح نمی*تونستم وصل بشم به فروم :|
              خود آردو دو روش پیشنهاد داده . یکی

              کد:
              voidloop()
              {
              while (Serial.available()>0){
              int inChar=Serial.read();
              if (isDigit(inChar)){
              inString+=(char)inChar;
              }
              if (inChar =='\n'){
              Serial.print("Value:");
              Serial.println(inString.toInt());
              Serial.print("String: ");
              Serial.println(inString);
              inString="";
              }
              }
              }
              و تابع parseInt ، از هر روش جواب میده میتونید استفاده کنید

              دیدگاه


                #8
                پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

                نوشته اصلی توسط Masood Ashoori نمایش پست ها
                از صبح نمی*تونستم وصل بشم به فروم :|
                خود آردو دو روش پیشنهاد داده . یکی

                کد:
                voidloop()
                {
                while (Serial.available()>0){
                int inChar=Serial.read();
                if (isDigit(inChar)){
                inString+=(char)inChar;
                }
                if (inChar =='\n'){
                Serial.print("Value:");
                Serial.println(inString.toInt());
                Serial.print("String: ");
                Serial.println(inString);
                inString="";
                }
                }
                }
                و تابع parseInt ، از هر روش جواب میده میتونید استفاده کنید
                ببخشید
                از تابع parseInt چجوری استفاده کنم؟برای خوندن سریال؟
                لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
                گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
                لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
                گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

                دیدگاه


                  #9
                  پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

                  پست چهارم نوشتم که .
                  m=Serial.parseInt();

                  دیدگاه


                    #10
                    پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

                    نوشته اصلی توسط Masood Ashoori نمایش پست ها
                    پست چهارم نوشتم که .
                    m=Serial.parseInt();
                    درود
                    خب اونو دیدم.یعنی باهاش میشه خوند ؟یعنی اینجوری بنویسم؟
                    کد:
                    Serial.println(Serial.parseInt())
                    لقمان را گفتند:<< بی خطا کد نوشتن را از که آموختی؟ >>
                    گفت:<< از کامپایلرها.هر خطایی که آنها گرفتند من نگرفتم. >>
                    لقمان را گفتند:<< پایتون را چگونه مثل آب روان ساختی؟>>
                    گفت:<< با تقلید از جاوا.هر چیزی که در جاوا بود من ۵%اش را برداشتم شد پایتون.>>

                    دیدگاه


                      #11
                      پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

                      دستورات سریال رو در دو دستور انجام بدید . یکبار در یک متغیر ذخیره کنید بعد اگر هدف نمایش در سریال هست پرینت کنید . این تابع عدد ابتدای رشته رو از سریال میخونه اگر کاراکتر اضافه باشه رد می*کنه . دست به کد باشید . با سوال جواب که تجربه کسب نمیشه . بنویسید ببینید چکار می*کنه !

                      دیدگاه


                        #12
                        پاسخ : خواندن صحیح عدد یا رشته از روی بلوتوث

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

                        دیدگاه

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