NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 3925 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 14 از 14

موضوع: راه اندازی ماژول آلتراسونیک مدل srf08

  1. #1
    عضو جدید
    تاریخ عضویت
    Dec 2009
    نوشته ها
    5
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض راه اندازی ماژول آلتراسونیک مدل srf08

    با سلام

    من در درایو کردن این ماژول نیاز به کمک دارم
    برنامه ای که نوشتم به شکل زیر هست اما چیزی که به من نمایش میده فقط عدد 255 است
    حالا سوال من اینه که چه جوری و چه تغییراتی نیاز است که تو برنامه بدم تا فاصله صحیح رو به من بده .

    #include<p18f452.h>
    #include<delays.h>
    #include<i2c.h>
    #include<stdio.h>
    #include<xlcd.h>
    #include<stdlib.h>

    #pragma config OSC=XT,WDT=OFF,LVP=OFF

    void main()
    {
    int range[17];
    char string[30];
    int i,result=0;
    unsigned char datah=0,datal=0;

    OpenXLCD(FOUR_BIT & LINES_5X7);
    OpenI2C(MASTER, SLEW_ON);
    SSPADD = 9;

    while(1)
    {
    StartI2C();
    WriteI2C(0xE0);
    WriteI2C(0x00);
    WriteI2C(0x51);
    StopI2C();

    //wait for returning ping
    Delay1KTCYx(105); // delay_ms(105);

    StartI2C();
    WriteI2C(0xE0);
    WriteI2C(0x02);
    StartI2C();
    WriteI2C(0xE1);
    datah = ReadI2C();
    datal = ReadI2C();

    StopI2C(); // i2c_stop();

    result= (( datah << 8 ) | datal);
    itoa(result,string);

    Delay10KTCYx(100); // delay_ms(1000);
    while(BusyXLCD());
    SetDDRamAddr(0);
    putsXLCD(string); //display the result
    while( BusyXLCD() );

    Delay10KTCYx(70);
    }
    }


  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  4. #2
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    سلام
    راه اندازی این ماژول تقریبا کار ساده ای هست ، توی ادرس پروژه راه اندازی این ماژول + کتاب خونه ی اون وجود داره :
    http://www.arduino.cc/playground/Main/SonarSrf08
    مشکل اصلی باس I2C هست که به شدت به فرکانس وابسه هست . شما احتمالا مقدار کریستال رو به درستی تعیین نکردید که در خروجی عدد 255 رو میگیرید .
    بهتره مداری رو که بستید بزارید تا بیشتر بررسی بشه

  5. کاربران : 2 تشکر کرده اند از شما 1nafar برای ارسال این پست سودمند:


  6. #3
    عضو جدید
    تاریخ عضویت
    Dec 2009
    نوشته ها
    5
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    اگر بشه روی همین برنامه ای که نوشتم بریم جلو چون برنامه ای که در سایت بود متوجه نشدم
    شماتیک مدارم هم مثل همان نقشه ای بود که در سایت قرار داشت

  7. #4
    کاربر ارشد 1nafar آواتار ها
    تاریخ عضویت
    Jul 2007
    نوشته ها
    2,745
    تشکر
    1,266
    تشکر شده 4,874 بار در 1,377 پست

    پیش فرض

    این کد رو با میکرو c نوشتید ؟
    کریستال رو چک کردید ؟

  8. #5
    عضو جدید
    تاریخ عضویت
    Dec 2009
    نوشته ها
    5
    تشکر
    0
    تشکر شده 1 بار در 1 پست

    پیش فرض

    من با mplab C18 این برنامه رو نوشتم . از لحاظ کریستال هم مشکل نداره هر چی هست مشکل از برنامه است چون همان طور که قبلا گفتم با دادن آدرس صحیح به این ماژول چراغ قرمز آن روشن می شود که این اتفاق در مدار من می افتد و به صورت چشمک زن عمل می کند

  9. #6
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2010
    نام
    مصطفی
    نوشته ها
    23
    تشکر
    126
    تشکر شده 23 بار در 10 پست

    پیش فرض

    سلام

    من ماژول srf08 رو وصل کردم و برنامه ش رو هم با c نوشتم .بعد از آدرس 2 و 3 خوندم (بر حسب سانتی متر) اما فقط برای 0 تا 60 سانت جواب داد و از اون بیشتر رو کلا اعداد عجیب غریبی می نویسه رو ال سی دی. لطفا هر کسی می تونه کمک کنه ، دیگه کاملا گیج شدم!!!!

  10. #7
    کاربر علاقه مند
    تاریخ عضویت
    Nov 2010
    نام
    مصطفی
    نوشته ها
    23
    تشکر
    126
    تشکر شده 23 بار در 10 پست

    پیش فرض

    کسی تا الان به این مشکل بر نخورده؟؟

  11. #8
    تازه وارد
    تاریخ عضویت
    Aug 2011
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    Salam
    in linki ke doste azizemon dade ro negah kardi?

  12. #9
    تازه وارد
    تاریخ عضویت
    Aug 2011
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    اگر داره 255 می نویسه یا کلاکت درست نیست
    یا احتمالن sda یا sdl قطع هستند که داره مرتبا 1 منطقی رو در نظر می گیره
    اتصالات رو چک کن!

  13. #10
    مدیر انجمن cmuiran آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    پیمان غلامی
    نوشته ها
    1,071
    تشکر
    407
    تشکر شده 966 بار در 553 پست

    پیش فرض

    میتونین به بیسیک هم بزارین

  14. #11
    مدیر انجمن cmuiran آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    پیمان غلامی
    نوشته ها
    1,071
    تشکر
    407
    تشکر شده 966 بار در 553 پست

    پیش فرض

    دست شما درد نکنه کمک کردین

  15. #12
    تازه وارد
    تاریخ عضویت
    Aug 2011
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض برنامه راحت برای آلتراسونیک با ccs

    / Programa para un medidor de distancias hasta un objeto utilizando sensor por
    // ultrasonido SRF08 para bus I2C.
    //
    /////////////////////////////////////////////////////////////////////////////////////////

    #include <16F84A.h> // Librería predefinida para CCS.
    #fuses XT, PUT, NOWDT, NOPROTECT
    #use delay(clock=4000000)
    #use fast_IO(A)
    #use fast_IO(B)
    #use i2c(Master,sda=PIN_A4,scl=PIN_A3)
    int16 dist_alarma = 10;

    main()
    {

    iint16 distancia;
    char distancia_L, distancia_H, luz;


    set_tris_A(0b00000000);
    output_float(PIN_A3);
    output_float(PIN_A4);
    while(1)
    {
    i2c_start(); // Bit de Start.

    i2c_write(0xE0); // Direccio'n del SRF08 en escritura.

    i2c_write(0x00);// El registro de comando esta' en la ubicacio'n 0.

    i2c_write(0x51);// 0x51 es el comando de ca'lculo de distancia en cm.

    i2c_stop(); // Bit de Stop.

    delay_ms(100); // Espera ma's de 65 ms hasta la lectura.

    i2c_start(); // Bit de Start.

    i2c_write(0xE0); // Direccio'n del SRF08 en escritura.

    i2c_write(0x01);// Apunta a la ubicacio'n 0x01 que es a partir donde se

    i2c_stop();// encuentran los registros para leer luz y distancia.

    i2c_start();

    i2c_write(0xE1); // Direccio'n del SRF08 en lectura.

    luz = i2c_read(1); // Lee la luminosidad.

    distancia_H = i2c_read(1);// Lee el byte alto de la distancia.

    distancia_L = i2c_read(0);// Lee el byte bajo de la distancia.

    i2c_stop();

    distancia = make16(distancia_H,distancia_L);// Valor de la distancia.

    printf("\r\nLuz: %u Lux\nDist.: %lu cm", luz, distancia);
    delay_ms(5000);
    }
    }


  16. #13
    تازه وارد
    تاریخ عضویت
    Aug 2011
    نوشته ها
    2
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    اینکه میگن مثلا آلتراسونیک srf02 رنج بین 16سانتی متر تا 6 متر داره یعنی در فاصله کمتر از 16 سانتی متر قرار بگیره قاطی میکنه؟ یا به ما عدد 16cm رو میده؟

  17. #14
    تازه وارد
    تاریخ عضویت
    Jun 2013
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    دوستان یک سوال چطور باید ادرس 2و3 از این ماژول خواند........
    لطفا بگید

موضوعات مشابه

  1. پاسخ: 12
    آخرين نوشته: 03-04-2014, 20:35
  2. راه اندازی سنسور آلتراسونیک
    توسط wantedboy در انجمن stm32
    پاسخ: 4
    آخرين نوشته: 04-01-2014, 23:11
  3. کنسول بازی Agape
    توسط agape در انجمن AVR
    پاسخ: 11
    آخرين نوشته: 30-11-2013, 22:20
  4. راه اندازی ماژول التراسونیک srf05
    توسط se2010 در انجمن سنسور و ماژول های اندازه گیری
    پاسخ: 3
    آخرين نوشته: 01-04-2013, 21:48
  5. برنامه SRF08
    توسط Erni در انجمن طراحی و ساخت و آزمایش مدارت الکترونیک
    پاسخ: 2
    آخرين نوشته: 13-03-2009, 17:59

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

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