نمایش نتایج: از 1 به 2 از 2
Like Tree2 لایک
  • 2 Post By Tiranoid

موضوع: ارسال باینری از vb2010 و فعال کردن ینهای دیجیتال با همان مقادیر ارسالی

  1. #1
    Junior Member
    تاریخ عضویت
    Oct 2016
    نوشته ها
    4

    Question ارسال باینری از vb2010 و فعال کردن ینهای دیجیتال با همان مقادیر ارسالی

    با سلام
    بنده از آردوینو uno دارم استفاده می کنم، می خوام ی کد binary که 6 رقمی هست را مثلا 100110 از طریق vb2010 به آردوینو ارسال کنم و به کمک اون پورت 2 تا 7 را کنترل کنم.
    توی vbبعد از اینکه اومدم پورتمرا تعریف کردم از دستور زیر استفاده می کنم
    SerialPort1.open()
    serialport1.write("100110")
    serialport1.clsoe()

    در سمت آردوینو هم از کد زیر استفاده می کنم

    void setup() {
    // put your setup code here, to run once:
    DDRD = B11111111; // set PORTD (digital 7~0) to outputs
    }

    void loop() {
    // put your main code here, to run repeatedly:
    while (Serial.available() == 0); // do nothing if nothing sent
    int val = Serial.read() - '0'; // deduct ascii value of '0' to find numeric value of sent number
    PORTD=val

    }


    لطفا راهنمایی کنید چجوری کدی ک می خونم را در آردوینودر portd قرار بدم
    portd ورودی رشته میگیره؟
    دستور کلی این هست اما نمی دونم چجوری عددم را با B ترکیب کنم
    PORTD=B10011000
    لطفا راهنمایی نمایید

  2. #2
    Member
    تاریخ عضویت
    Apr 2015
    محل سکونت
    ایران :|
    نوشته ها
    76
    چیزی که شما نوشتید درسته .
    نیازی نیست با متغییرتون کاری بکنید که به شکل Bxxxxxxx نوشته بشه. خودش همین شکلی نوشته میشه.

    این علامت های B , 0x و ... اینا قالب عدد نیستن، اینا شکل نمایش عدد هستن. شما میتونید متغییر val رو به شکلای زیر مقدار دهی کنید تو هر زبان برنامه نویسی ای :

    val = 0x04
    val = 0b00000100
    val = 4

    برای رایانه همه اینا دقیقا یه معنی دارن اما چون ما با آخری راحت تریم از آخری استفاده میکنیم. این ها ارتباطی به آردویینو و میکروکنترلر و اینا هم ندارن تو همه برنامه های رایانه میشه اینطوری نوشتش.
    اگه قبل از عدد حرف b بذاریم یعنی داریم به رایانه میگیم عدد بعد از این یه عدد باینریه و x بذاریم یعنی مبنای 16 (هگز) هست و اگه هیچی هم نذاریم یعنی مبنای ده نوشته شده.
    شما وقتی بنویسی PORTD= val یا اینکه بنویسی PORTD=4 یا PORTD=0x04 در هر سه حالت فقط پایه سوم پورت D روشن میشه.

    پس کد شما درسته نیازی نیست قالبشو عوض کنید
    ویرایش توسط Tiranoid : 11-04-2016 در ساعت 11:07 AM

کلمات کلیدی این موضوع

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •  

SEO by vBSEO