ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 10 از 10
  1. #1
    2016/06/26
    26
    4

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

    با سلام من سنسور ds1820 رو با pic و سون سگمنت راه اندازی کرد
    دما رو درست نشون می ده ولی هر ثانیه چشمک می زنه باید چی کار کنم که چشمکش درست بشه
    این پروژه دانشگاهمه گیر کردم توش بدجور
  2. #2
    2017/06/13
    845
    424

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

    نقل قول نوشته اصلی توسط Mojtababm66

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    با سلام من سنسور ds1820 رو با pic و سون سگمنت راه اندازی کرد
    دما رو درست نشون می ده ولی هر ثانیه چشمک می زنه باید چی کار کنم که چشمکش درست بشه
    این پروژه دانشگاهمه گیر کردم توش بدجور
    سلام
    سون سگمنت ها چشمک میزنن؟
  3. #3
    2016/06/26
    26
    4

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

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام
    سون سگمنت ها چشمک میزنن؟
    بله سون سگمنت ها چشمک می زنه با ccs برنامه رو نوشتم
    اعداد ثابت رو نشون می ده ولی مقدار دما رو به صورت چشمک زن نشون می ده
  4. #4
    2017/06/13
    845
    424

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

    نقل قول نوشته اصلی توسط Mojtababm66

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    بله سون سگمنت ها چشمک می زنه با ccs برنامه رو نوشتم
    اعداد ثابت رو نشون می ده ولی مقدار دما رو به صورت چشمک زن نشون می ده
    سون سگمنت مالتی پلکس و داخل حلقه while راه اندازی شده دیگه؟
    اگر کد برنامه رو قرار بدید خیلی خوبه. هرچند من PIC کار نکردم ولی خوب برنامه رو ببینم شاید مشکل رو بفهمم. ضمنا اگر خواستید کدی قرار بدید، از تگ CPP استفاده کنید که در نوار بالایی ویرایگشر متن انجمن میبینیدش.
  5. #5
    2016/06/26
    26
    4

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

    نقل قول نوشته اصلی توسط hossein.m98

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سون سگمنت مالتی پلکس و داخل حلقه while راه اندازی شده دیگه؟
    اگر کد برنامه رو قرار بدید خیلی خوبه. هرچند من PIC کار نکردم ولی خوب برنامه رو ببینم شاید مشکل رو بفهمم. ضمنا اگر خواستید کدی قرار بدید، از تگ CPP استفاده کنید که در نوار بالایی ویرایگشر متن انجمن میبینیدش.
    #include <ds18b20.h>
    #include<1wire.c>
    #include <lcd.c>
    #include<DS1820.c>

    void main()
    {
    set_tris_a(0xff);
    set_tris_c(0xff);
    long int a,b,c,d,m,n,o;
    float e;
    //lcd_init();
    while(TRUE)
    {
    //long int h[]={ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
    int h[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x83, 0xf8, 0x80, 0x98};
    output_high(pin_a2);
    m=ds1820_read();
    // m=126;
    a=m/100;
    b=m%100;
    c=b/10;
    d=b%10;
    //for(o=0;o<20;o++){
    for(n=0;n<10;n++)
    {
    output_low(pin_a0);
    output_high(pin_a2);
    output_high(pin_a1);
    //output_low(pin_a4);
    output_c(h[c]);
    delay_ms(1);
    }
    for(n=0;n<10;n++)
    {
    output_low(pin_a1);
    output_high(pin_a2);
    output_high(pin_a0);
    //output_low(pin_a4);
    output_c(h[a]);
    delay_ms(1);
    }
    for(n=0;n<10;n++)
    {
    output_low(pin_a2);
    output_high(pin_a1);
    output_high(pin_a0);
    //output_low(pin_a3);
    output_c(h[d]);
    delay_ms(1);
    }
    //}
    }



    }



    #ifndef ONE_WIRE_C
    #define ONE_WIRE_C

    /*
    * One wire (1-wire) driver for CCS C compiler. Suitable for use with devices
    * such as the DS18B20 1-wire digital temperature sensor.
    */

    #define ONE_WIRE_PIN PIN_A3

    /*
    * onewire_reset()
    * Description: Initiates the one wire bus.
    */
    // OK if just using a single permanently connected device
    void onewire_reset() {
    output_low(ONE_WIRE_PIN); // pull the bus low for reset
    delay_us(500);
    output_float(ONE_WIRE_PIN); // float the bus high
    delay_us(500); // wait-out remaining initialisation window
    output_float(ONE_WIRE_PIN);
    }


    /*
    * onewire_write(int8 data)
    * Arguments: a byte of data.
    * Description: writes a byte of data to the device.
    */
    void onewire_write(int8 data) {
    int8 count;

    for(count = 0; count < 8; ++count) {
    output_low(ONE_WIRE_PIN);
    delay_us(2); // pull 1-wire low to initiate write time-slot.
    output_bit(ONE_WIRE_PIN, shift_right(&data, 1, 0)); // set output bit on 1-wire
    delay_us(60); // wait until end of write slot.
    output_float(ONE_WIRE_PIN); // set 1-wire high again,
    delay_us(2); // for more than 1us minimum.
    }
    }

    /*
    * onewire_read()
    * Description: reads and returns a byte of data from the device.
    */
    int onewire_read() {
    int count, data;

    for(count = 0; count < 8; ++count) {
    output_low(ONE_WIRE_PIN);
    delay_us(2); // pull 1-wire low to initiate read time-slot.
    output_float(ONE_WIRE_PIN); // now let 1-wire float high,
    delay_us(8); // let device state stabilise,
    shift_right(&data, 1, input(ONE_WIRE_PIN)); // and load result.
    delay_us(120); // wait until end of read slot.
    }
    return data;
    }

    #endif /*ONE_WIRE_C*/


    #ifndef DS1820_C
    #define DS1820_C

    #include "1wire.c"

    float ds1820_read();
    void ds1820_configure(int8 TH, int8 TL, int8 config);

    /*
    * ds1820_read()
    * Description: reads the ds18x20 device on the 1-wire bus and returns
    * the temperature
    */

    float ds1820_read() {
    int8 busy=0, temp1, temp2;
    signed int16 temp3;
    float result;

    //ds1820_configure(0x00, 0x00, 0x00); //9 bit resolution

    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0x44); //Start temperature conversion

    while(busy == 0) //Wait while busy (bus is low)
    busy = onewire_read();

    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0xBE); //Read scratchpad
    temp1 = onewire_read();
    temp2 = onewire_read();
    temp3 = make16(temp2, temp1);

    //result = (float) temp3 / 2.0; //Calculation for DS18S20 with 0.5 deg C resolution
    result = (float) temp3 / 16.0; //Calculation for DS18B20

    delay_ms(200);
    return(result);
    }

    /*
    * ds1820_configure(int8 TH, int8 LH, int8 config)
    * Description: writes configuration data to the DS18x20 device
    * Arguments: alarm trigger high, alarm trigger low, configuration
    */

    void ds1820_configure(int8 TH, int8 TL, int8 config) {
    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0x4E); //Write to scratchpad
    onewire_write(TH);
    onewire_write(TL);
    onewire_write(config);
    }

    #endif /*DS1820_C*/

    اینم برنامه با دو تا کتابخونه همراهش
    من اینو با lcd راه انداختم و جواب داد ولی با سگمنت چشمک می زنه
  6. #6
    2017/06/13
    845
    424

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

    نقل قول نوشته اصلی توسط Mojtababm66

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    #include <ds18b20.h>
    #include<1wire.c>
    #include <lcd.c>
    #include<DS1820.c>

    void main()
    {
    set_tris_a(0xff);
    set_tris_c(0xff);
    long int a,b,c,d,m,n,o;
    float e;
    //lcd_init();
    while(TRUE)
    {
    //long int h[]={ 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
    int h[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x83, 0xf8, 0x80, 0x98};
    output_high(pin_a2);
    m=ds1820_read();
    // m=126;
    a=m/100;
    b=m%100;
    c=b/10;
    d=b%10;
    //for(o=0;o<20;o++){
    for(n=0;n<10;n++)
    {
    output_low(pin_a0);
    output_high(pin_a2);
    output_high(pin_a1);
    //output_low(pin_a4);
    output_c(h[c]);
    delay_ms(1);
    }
    for(n=0;n<10;n++)
    {
    output_low(pin_a1);
    output_high(pin_a2);
    output_high(pin_a0);
    //output_low(pin_a4);
    output_c(h[a]);
    delay_ms(1);
    }
    for(n=0;n<10;n++)
    {
    output_low(pin_a2);
    output_high(pin_a1);
    output_high(pin_a0);
    //output_low(pin_a3);
    output_c(h[d]);
    delay_ms(1);
    }
    //}
    }



    }



    #ifndef ONE_WIRE_C
    #define ONE_WIRE_C

    /*
    * One wire (1-wire) driver for CCS C compiler. Suitable for use with devices
    * such as the DS18B20 1-wire digital temperature sensor.
    */

    #define ONE_WIRE_PIN PIN_A3

    /*
    * onewire_reset()
    * Description: Initiates the one wire bus.
    */
    // OK if just using a single permanently connected device
    void onewire_reset() {
    output_low(ONE_WIRE_PIN); // pull the bus low for reset
    delay_us(500);
    output_float(ONE_WIRE_PIN); // float the bus high
    delay_us(500); // wait-out remaining initialisation window
    output_float(ONE_WIRE_PIN);
    }


    /*
    * onewire_write(int8 data)
    * Arguments: a byte of data.
    * Description: writes a byte of data to the device.
    */
    void onewire_write(int8 data) {
    int8 count;

    for(count = 0; count < 8; ++count) {
    output_low(ONE_WIRE_PIN);
    delay_us(2); // pull 1-wire low to initiate write time-slot.
    output_bit(ONE_WIRE_PIN, shift_right(&data, 1, 0)); // set output bit on 1-wire
    delay_us(60); // wait until end of write slot.
    output_float(ONE_WIRE_PIN); // set 1-wire high again,
    delay_us(2); // for more than 1us minimum.
    }
    }

    /*
    * onewire_read()
    * Description: reads and returns a byte of data from the device.
    */
    int onewire_read() {
    int count, data;

    for(count = 0; count < 8; ++count) {
    output_low(ONE_WIRE_PIN);
    delay_us(2); // pull 1-wire low to initiate read time-slot.
    output_float(ONE_WIRE_PIN); // now let 1-wire float high,
    delay_us(8); // let device state stabilise,
    shift_right(&data, 1, input(ONE_WIRE_PIN)); // and load result.
    delay_us(120); // wait until end of read slot.
    }
    return data;
    }

    #endif /*ONE_WIRE_C*/


    #ifndef DS1820_C
    #define DS1820_C

    #include "1wire.c"

    float ds1820_read();
    void ds1820_configure(int8 TH, int8 TL, int8 config);

    /*
    * ds1820_read()
    * Description: reads the ds18x20 device on the 1-wire bus and returns
    * the temperature
    */

    float ds1820_read() {
    int8 busy=0, temp1, temp2;
    signed int16 temp3;
    float result;

    //ds1820_configure(0x00, 0x00, 0x00); //9 bit resolution

    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0x44); //Start temperature conversion

    while(busy == 0) //Wait while busy (bus is low)
    busy = onewire_read();

    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0xBE); //Read scratchpad
    temp1 = onewire_read();
    temp2 = onewire_read();
    temp3 = make16(temp2, temp1);

    //result = (float) temp3 / 2.0; //Calculation for DS18S20 with 0.5 deg C resolution
    result = (float) temp3 / 16.0; //Calculation for DS18B20

    delay_ms(200);
    return(result);
    }

    /*
    * ds1820_configure(int8 TH, int8 LH, int8 config)
    * Description: writes configuration data to the DS18x20 device
    * Arguments: alarm trigger high, alarm trigger low, configuration
    */

    void ds1820_configure(int8 TH, int8 TL, int8 config) {
    onewire_reset();
    onewire_write(0xCC); //Skip ROM, address all devices
    onewire_write(0x4E); //Write to scratchpad
    onewire_write(TH);
    onewire_write(TL);
    onewire_write(config);
    }

    #endif /*DS1820_C*/

    اینم برنامه با دو تا کتابخونه همراهش
    من اینو با lcd راه انداختم و جواب داد ولی با سگمنت چشمک می زنه
    خوب یکمی تاخیر رقم ها رو زیاد انتخاب کردید. اون حلقه های for رو حذف کنید، احتمالا درست میشه. فکر کنم همون 1 میلی ثانیه کافی باشه.
  7. #7
    2009/08/01
    1
    0

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

    احتمالا موقع قرائت مقدار دما از سنسور تاخیر ایجاد میشه و سون سگمنت رفرش نمیشه. منم همچین مشکلی در بسکام داشتم و نتونستم تاخیر ۷۵۰ میلی ثانیه ای رو کم کنم.اگه کم کنیم مقدار خطا میخونه. اگه کسی راهکاری میدونه لطفا راهنمایی کنین.
  8. #8
    2017/06/13
    845
    424

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

    نقل قول نوشته اصلی توسط kamal kasebi

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    احتمالا موقع قرائت مقدار دما از سنسور تاخیر ایجاد میشه و سون سگمنت رفرش نمیشه. منم همچین مشکلی در بسکام داشتم و نتونستم تاخیر ۷۵۰ میلی ثانیه ای رو کم کنم.اگه کم کنیم مقدار خطا میخونه. اگه کسی راهکاری میدونه لطفا راهنمایی کنین.
    ببینید برای اطمینان از چشمک نزدن سون سگمنت ها، بهتره اسکن اون ها رو به عهده سرویس وقفه یک تایمر بذارید. به این صورت که برای هر سگمنت یک متغیر گلوبال در نظر میگیریم و داخل برنامه اصلی اون متغیر رو مقدار دهی میکنیم. توی سرویس وقفه تایمر، برنامه مقدار اون متغیر ها رو خونده و در زمان مناسب به سون سگمنت ها میده.
  9. #9
    2016/06/26
    26
    4

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

    سلام دوستان
    من مشکلم تا حدودی مرتفع شد ولی یه مشکل جدید دارم
    اینکه مثلا زمانی که سنسور رو با یخ سرد می کنم تا زمانی که دمای یخ رو نشون بده حدودا 1 دقیقه طول میکشه که مدت زیادیه اینو باید چی کار کنم که تو چند ثانیه دمای یخ رو نشون بده؟
    با lcd هم تست کردم زمانش حدودا 1 دقیقه بود فکر کنم کلا مشکل از سنسوره نه ؟
    به نظرتون با تغییر کریستال درست میشه یا نه؟
  10. #10
    2017/06/13
    845
    424

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

    نقل قول نوشته اصلی توسط Mojtababm66

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سلام دوستان
    من مشکلم تا حدودی مرتفع شد ولی یه مشکل جدید دارم
    اینکه مثلا زمانی که سنسور رو با یخ سرد می کنم تا زمانی که دمای یخ رو نشون بده حدودا 1 دقیقه طول میکشه که مدت زیادیه اینو باید چی کار کنم که تو چند ثانیه دمای یخ رو نشون بده؟
    با lcd هم تست کردم زمانش حدودا 1 دقیقه بود فکر کنم کلا مشکل از سنسوره نه ؟
    به نظرتون با تغییر کریستال درست میشه یا نه؟
    توی برنامه که سنسور مدام در حال چک شدنه، پس مشکل نمیتونه نرم افزاری باشه. احتمالا خود سنسوره که مشکل داره.
    تغییر کریستال (یا کلاک میکروکنترلر) هم تاثیری توی این مورد نخواهد داشت؛ چون سرعت ارتباط با سنسور وابسته به کلاک میکروکنترلر نیست.
نمایش نتایج: از 1 به 10 از 10

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

  1. مشکل با خواندن ds1820 و اینتراپت
    توسط sepehr63 در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 1
    آخرين نوشته: 2016/04/18, 22:44
  2. راه اندازی DS1820
    توسط smehdia در انجمن میکروکنترلرهای AVR
    پاسخ: 13
    آخرين نوشته: 2016/04/18, 20:14
  3. مشکل در راه اندازی ds18b20 با سون سگمنت
    توسط sidhadi2000 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2015/12/19, 18:26
  4. مشکل در برنامه راه اندازی سون سگمنت با میکرو
    توسط mohsen diod در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2011/08/16, 02:31
  5. راه اندازی DS1820
    توسط resh1359 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2009/03/09, 21:07

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

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

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

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