نمایش نتایج: از 1 به 4 از 4

موضوع: i2c

  1. #1
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94

    i2c

    برای این که مستر ( master) اطلاعات gps را به برد اسلیو ( slave ) ارسال کند در کد زیر چه تغییری باید انجام داد ؟

    کد:



    #include <SoftwareSerial.h>

    SoftwareSerial gpsSerial(10, 11); // RX, TX (TX not used)
    const int sentenceSize = 80;

    char sentence[sentenceSize];
    #include <Wire.h>
    void setup()
    {
    Serial.begin(9600);
    Wire.begin();
    gpsSerial.begin(9600);
    }
    byte x = 0;
    void loop()
    {
    static int i = 0;
    if (gpsSerial.available())
    {
    char ch = gpsSerial.read();
    if (ch != '\n' && i < sentenceSize)
    {
    sentence[i] = ch;
    i++;
    }
    else
    {
    sentence[i] = '\0';
    i = 0;
    displayGPS();
    }
    }
    }

    void displayGPS()
    {
    char field[20];
    getField(field, 0);
    if (strcmp(field, "$GPRMC") == 0)
    {
    Serial.print("Lat: ");
    getField(field, 3); // number
    Serial.print(field);
    getField(field, 4); // N/S
    Serial.print(field);

    Serial.print(" Long: ");
    getField(field, 5); // number
    Serial.print(field);
    getField(field, 6); // E/W
    Serial.println(field);
    }
    }

    void getField(char* buffer, int index)
    {
    int sentencePos = 0;
    int fieldPos = 0;
    int commaCount = 0;
    while (sentencePos < sentenceSize)
    {
    if (sentence[sentencePos] == ',')
    {
    commaCount ++;
    sentencePos ++;
    }
    if (commaCount == index)
    {
    buffer[fieldPos] = sentence[sentencePos];
    fieldPos ++;
    }
    sentencePos ++;
    }
    buffer[fieldPos] = '\0';

    Wire.beginTransmission(4); // transmit to device #4
    Wire.write("x is "); // sends five bytes
    Wire.write(x); // sends one byte
    Wire.endTransmission(); // stop transmitting

    x++;
    delay(500);
    }



    لطفا کمک کنید .
    ممنون می شم .

  2. #2
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,027
    ببین
    روشی که داری پیش میری غلطه
    اول سعی کن به صورت ستده بین دوتا اردوینوت با این کد بتونی ارتباط رو برقرار کنی :
    I2C between Arduinos

    اول این قسمت رو انجام بده بیا

  3. #3
    Member
    تاریخ عضویت
    May 2016
    نوشته ها
    94
    نقل قول نوشته اصلی توسط magmagmary نمایش پست ها
    ببین
    روشی که داری پیش میری غلطه
    اول سعی کن به صورت ستده بین دوتا اردوینوت با این کد بتونی ارتباط رو برقرار کنی :
    I2C between Arduinos

    اول این قسمت رو انجام بده بیا

    خب انجام دادم بعد چی کار کنم

  4. #4
    مدیر گروه
    تاریخ عضویت
    Nov 2013
    محل سکونت
    ایران
    نوشته ها
    4,027
    نقل قول نوشته اصلی توسط peyman180 نمایش پست ها
    خب انجام دادم بعد چی کار کنم
    خب حالا تو کامپیوتر سمتر یه تابع بنویس که اطلاعات gps رو بهت بده

    اون اطلاعات رو با همین کد فرستنده مستر ترکیب کن

    قدم اول در واقع یه اسکچ جداگونه بنویس که فقط بهت اطلاعات gps رو بده
    دقت کن کدت رو به صورت تابع در بیار

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

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

SEO by vBSEO