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





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









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





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

صفحه 1 از 9 123456789 آخرین
نمایش نتایج: از 1 به 10 از 82
  1. #1
    2013/08/26
    486
    27

    [آموزش] راه اندازی سنسور دمای DS18B20 با کد ویژن

    با سلام
    به تازگی کار با ds18b20 تو محیط کد ویژن شروع کردم
    تاپیک های انجمنو خوندم ولی تاپیکی در این مورد نبود

    خب حالا ببینیم که سنسوره ds18b20 چه کارهای میتونه انجام بده :agree:

    رنج تشخیص دمایی از : +125 تا -55

    قابلیت نمونه برداری در رنج های 9و10و11و12 بیتی

    قابلیت ثبت محدوده دمای برای آلارم توسط خوده سنسور

    امکان راه اندازه با 2 سیم(data & gNd)

    حداکثر زمان پاسخ گوی در حالت 12 بیتی 750ms

    امکان ارسال دیتا بر روی سیم شیلد دار تا 30 متر

    دارای حافظه eeprom برای ذخیره محدوده دما و رنج نمونه برداری
    =-=-=-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=
    خب حالا که اشنا شدیم میریم سر وقت اشنا شدن با روش را اندازی سنسور
    توی اولین گام میریم سراغ نسبتا سخت کار راه اندازی دو سنسور بر روی 1 سیم دیتا!!!

    شاید سوالی که براتون پیش بیاد نحوه ارتباط این سنسور یا سنسور ها با میکرو باشه که در ادامه به اون بیشتر توجه میکنیم

    در صورت علاقه مندی عزیزان ای تاپیک ادامه خواهد یافت
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  2. #2
    2013/08/26
    486
    27

    پاسخ : آموزش راه اندازی سنسور ds18b20

    خب بحثو ادامه میدیم اما این عکسارو ببینین



    =-=-=-=-=-=-=-=-=-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-=




    =-=-=-=-=-=-=-=-=-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-==-=-=
    همین طور که در عکس ها مشخصه سنسور ها با استفاده از یک سیم data به هم متصل شدن بدون این که اختلالی در خواندن data در این نوع ارتباط
    معروف به ارتباط تک سیمه (1wire) اتفاق بیوفته. به این صورت که این ارتباط در زمانی برقراره که از طرفه میکرو برای سنسورها در خواستی ارسال بشه وبعد از ارسال درخواست میکرو منتظر دریافت جواببیه درخواست میمونه.
    در کامپیالر کد ویژن کتابخانه ای در رابطه با 1wire نوشته شده که در این بخش از اموزش به شرح تابعی از اون به نام w1_search خواهیم پرداخت. :agree:

    بدنه تابع:

    کد:
     unsigned char w1_search(unsigned char cmd,void *p

    با استفاده از این دستور میشه فهمید که چه تعداد سنسور چه از نوعds18b20 و هر نوع سنسور که این ارتباط رو حمایت کنه وجود داره
    خب اجرای تابع w1_search مستلزمه داشتن یک اریه 2 بعدیه که ما اینجا تعریفش میکینیم

    کد:
    #define MAX_DEVICE 2
    unsigned char rom_codes[MAX_DEVICE][9]

    خب یه ارایه تریف کردیم به این شکل دو سطر داره 9 ستون
    حالا قسمت جذابه مسئله کار با تابعه

    کد:
    1wire_search(0xf0,rom_code)

    خب حالا 0xf0 از کجا اومد و چه مقداری rom_code میگیره و اصلا چرا دو بعدی تعریف شد این عکسو ببینین





    طبقه گفته data sheet برای اینکه میکرو اطلاع حاصل کنه از وجود سنسورها باید دستوره 0xf0 ارسال کنه بعد از ارسال میکرو ها خودشونو معرفی میکنن
    به این صورت که هر ایسی از خانواده ds یک family code داره و یک مشخه شخصی مثه اثر انگشت انسان که برای هر کس مختص خوده اونه
    حالا دستوره 0xf0 فرستاده شد
    جوابیه ها میان رویه خط :wow:
    به این شکل hex:
    کد:
    28 6A 77 00 00
    28 6A 74 00 00
    [size=18pt]
    خب ارایه rom_code به درد خورد الان میرم سر وقت تحلیل ای کد بالای :read:
    این 28H که اول اومده famili code ds18b20 یعنی میکرو میگه اولین سنسوری که توی حاضر غایبی که کردم :mrgreen: گفت من ds18b20 هستم با شماره شناسه ای 28 6a 77 00 00
    حالا توجه کنین اگه به جای 10H, 28H میمود به این معنیه که سنسور از نوع ds1820 هست
    حاضر غایبه بعدی :mrgreen: سنسور دوم از نوع ds18b20 بود با serial number متفاوت


    -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    هلاک شدم !!!!
    هرجا کم کاستی بود بگین
    تا تاپیک بعدی یا حق :wink
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  3. #3
    2013/08/26
    486
    27

    پاسخ : آموزش راه اندازی سنسور ds18b20

    با سلامی دوباره ادامه تاپیکو میزارم:
    همونطور که در تاپیک قبل دیدیم نوع هر سنسور شناسی شد و سریال کد هم برای ما معلوم شد :agree:
    حالا این تابع w1_search یه مقدار بر میگردونه که تعداد سنسور ها مشخص میشه و یه متغیر لازم که این رخدادو ذخیره کنه:

    کد:
    unsigned char device
    device=1wire_search(0xf0,rom_code)
    که در اینجا مقدار device دو میشه چون 2 تا سنسور شناسایی شد :agree:
    حالا که فهمیدیم سریال و نوع سنسورها چیه میریم به مرحله تنظیمات سنسور برای عملکرد بهتر!!!
    در اینجا به کتاب خونه ds18b20 احتیاج داریم
    یک تابع در کتاب خانه ds18b20 هست که به ما این امکانو میده به هر dsb18b20 بگیم که چه دقتی میخوام و اگه دما از حدی که برات مشخص میکنم پایین یا بالا تر رفت بهم خبر بده :applause:
    بدنه تابع:

    کد:
    unsigned char ds18b20_init(unsigned char *addr,signed char temp_low,signed char temp_high,
    unsigned char resolution);
    خب این تابع دارای یه اشارهگر ادرس و یک مشخص کننده حد بالا و پایین دما و تعین دقت اندازه گیری هست!
    با یک مثال مشخص میکنم این موضوع رو
    فرض: دقت 10 بیت.حد بالا 80و پایین 0(کامل در باره کاربرد تعیین این 2 پارامتر توضیح میدم)

    کد:
    ds18b20_init(&rom_codes[0][0],0,80,1);

    این 1 اخر دستور مشخص کننده دقته بیتی هست:
    0= 9بیتی
    1= 10بیتی
    2= 11بیتی
    3= 12بیتی
    در اینجا برای سنسور اول تنظیمات رو فرستادیم لازمه بگم که اگه یک بار این تنظیمات فرستاده شه وسنسور تغذیش قطع شه این تنضیمات مجدداً لازم نیست!EEPROM

    =-=-=-=-=-=-=-=-=-=-=-=--=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=


    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    ادامه تاپیک بعد
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  4. #4
    2013/08/26
    486
    27

    پاسخ : آموزش راه اندازی سنسور ds18b20

    سلامه دوباره :mrgreen:
    خب تا اینجا جلو رفتیم که تابع ds18b20_init برای ما کار تنضیماتو انجام میداد .خوده تابع هم یه مقدار برگشتی داره که یک یا صفر میتونه باشه
    صفر:تنظیمات با موفقیت انجام نشد
    یک:تنظیمات با موفقیت انجام شد

    خب حالا سنسور ها امادن وقتشه از روی اونا دما خونده شه :agree:
    این عمل با تابع ds18b20_temperature انجام میشه:
    بدنه تابع:

    کد:
    float ds18b20_temperature(unsigned char *addr);

    در این تابع یک اشاره گر ادرس وجود داره که دمارو از کدوم اذرس بخونم و مقدار برگشتی تابع ار نوع float است
    فرض :
    مقدار دما خونده شه از سنسور شماره 2

    کد:
    ds18b20_temperature(&rom_codes[1][0])

    اگه بخوام از سنسور 1 بخونم

    کد:
    ds18b20_temperature(&rom_codes[0[0])

    و در اخر میرسیم به قسمت اخر بخش:
    در جای گفته شد که این سنسور توانایی تشخیص محدودیت دمارو داره با این مثال این موضوع رو روشن میکنم:
    میکرو این دستور 0xec رو با تابع w1_search میفرسته رو خط و میگه:
    کی محدوویت دما داره دستش بالا :mrgreen: و اونی که محدوده دمای که براش تنظیم کردیم خودشو معرفی میکنه به این صورت:
    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-



    =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
    کد:
    unsigned char alarm_code_rom [MAX_DEVICE] [9]
    unsigned char temp_hi_low
     temp_hi_low=w1_search(0xec,alarm_code_rom)
    سوالی بود بگین :agree:
    راستی قیمت این سنسور
    ds18b20=سه هزار 900
    به امید ایرانی سر افرازتر
    یا حق
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  5. #5
    2011/09/20
    بجنورد
    973
    51

    پاسخ : آموزش راه اندازی سنسور ds18b20

    آقای blue_pulse کاشکی عین همین توضیحاتو برای بسکام هم می زاشتی :cry:
    من تو کل اینترنت گشتم هیچ کسی مثل شما از پایه ( البته برای بسکام ) توضیحاتی در مورد این سنسور نذاشته :angry: :angry:
    آخه چراااااااااااااااااااا oo:

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

    عضویت

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

    عضویت

    خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
    [hr]
  6. #6
    2013/08/26
    486
    27

    پاسخ : آموزش راه اندازی سنسور ds18b20

    نقل قول نوشته اصلی توسط 4850
    آقای blue_pulse کاشکی عین همین توضیحاتو برای بسکام هم می زاشتی :cry:
    من تو کل اینترنت گشتم هیچ کسی مثل شما از پایه ( البته برای بسکام ) توضیحاتی در مورد این سنسور نذاشته :angry: :angry:
    آخه چراااااااااااااااااااا oo:
    به زودی تاپیکی در این رابطه ایجاد خواهد شد
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  7. #7
    2013/11/23
    ECA.ir
    25
    2

    پاسخ : آموزش راه اندازی سنسور ds18b20

    تو فکر این بودم حالا کی بشینه دیتاشیت این سنسو رو ترجمه کنه و راش بندازه!!!!!!!!!! :!!
    خدا رو شکر. این مشکلم حل شد. ^^
    آقا •.´™ مَسِِــــح`.• دستت درد نکنه. حال کردیم. =D> :wow: :applause:
    تو را دانش و دين نمايد درست در رستگاري ببايدت جست
    وگر دل نخواهي كه باشي نژند نخواهي كه دائم بوي مستمند
    به گفتار پيغمبرت راه جوي دل از تيرگي ها بدين آب شوي
  8. #8
    2012/06/13
    tehran
    24
    0

    پاسخ : آموزش راه اندازی سنسور ds18b20

    این قسمت آلارم کار نمیکنه اگه میشه یه راهنمایی بکنین :smile: :smile: :smile: :smile:
    زندگی با الکترونیک زیباست
  9. #9
    2013/08/26
    486
    27

    پاسخ : آموزش راه اندازی سنسور ds18b20

    نمونه کد موجود در help کد ویژن در رابطه با آلارم
    کد:
    #include <mega8515.h>
    
    
    /* the ATmega8515 port and bit used for the 1 Wire bus must be
      specified in the Project|Configure|C Compiler|Libraries 1 Wire
      menu */
    
    
    /* include the DS1820/DS18S20 functions prototypes */
    #include <ds1820.h>
    
    
    /* include the printf function prototype */
    #include <stdio.h>
    
    
    /* include the abs function prototype */
    #include <stdlib.h>
    
    
    /* quartz crystal frequency [Hz] */
    #define xtal 4000000L
    
    
    /* Baud rate */
    #define baud 9600
    
    
    /* maximum number of DS1820/DS18S20 connected to the bus */
    #define MAX_DEVICES 8
    
    
    /* DS1820/DS18S20 devices ROM code storage area,
      9 bytes are used for each device
      (see the w1_search function description),
      but only the first 8 bytes contain the ROM code and CRC */
    unsigned char rom_codes[MAX_DEVICES][9];
    
    
    /* allocate space for ROM codes of the devices
      which generate an alarm */
    unsigned char alarm_rom_codes[MAX_DEVICES][9];
    
    
    main()
    {
    unsigned char i,devices;
    int temp;
    
    
    /* initialize the USART control register
      TX enabled, no interrupts, 8 data bits */
    UCSRA=0x00;
    UCSRB=0x08;
    UCSRC=0x86;
    
    
    /* initialize the USART's baud rate */
    UBRRH=(xtal/16/baud-1) >> 8;
    UBRRL=(xtal/16/baud-1) & 0xFF;
    
    
    /* detect how many DS1820/DS18S20 devices
      are connected to the bus and
      store their ROM codes in the rom_codes array */
    devices=w1_search(0xf0,rom_codes);
    
    
    /* display the number */
    printf("%-u DEVICE(S) DETECTED\n\r",devices);
    
    
    /* if no devices were detected then halt */
    if (devices==0) while (1); /* loop forever */
    
    
    /* set the temperature alarms for all the devices
      temp_low=25°C temp_high=35°C */
    for (i=0;i<devices;i++)
      {
      printf("INITIALIZING DEVICE #%-u ", i+1);
      if (ds1820_set_alarm(&rom_codes[i][0],25,35))
        putsf("OK"); else putsf("ERROR");
      };
    
    
    while (1)
       {
       /* measure and display the temperature(s) */
       for (i=0;i<devices;)
         {
         temp=ds1820_temperature_10(&rom_codes[i][0]);
         printf("t%-u=%-i.%-u\xf8C\n\r",++i,temp/10,
         abs(temp%10));     
         };
    
    
       /* display the number of devices which
         generated an alarm */    
       printf("ALARM GENERATED BY %-u DEVICE(S)\n\r",
       w1_search(0xec,alarm_rom_codes));
       };
    }
    .The best question deserves a better answer
    =-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=
    «پناه»می برم «به خدا»
    از عـیبی که ، «امروز» در خود می بینم، و «دیروز» «دیگران را» به خاطر، «هـمان عیـب» ملامت کرده ام.
    محتاط باشیم، در «سرزنش» و «قضاوت کردن دیگران». وقتی نه از «دیروز او» خبر داریم و نه از "فردای خودمان" .
  10. #10
    2012/10/14
    86
    2

    پاسخ : آموزش راه اندازی سنسور ds18b20

    سلام کاش با بسکام هم توضیح بدید
صفحه 1 از 9 123456789 آخرین
نمایش نتایج: از 1 به 10 از 82

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

  1. راه اندازی سنسور ds18b20
    توسط javadkom در انجمن میکروکنترلرهای PIC
    پاسخ: 5
    آخرين نوشته: 2015/08/30, 20:32
  2. مشکل برفک زدن سنسور DS18b20 در دمای زیر صفر
    توسط edisone2005 در انجمن سنسورها
    پاسخ: 1
    آخرين نوشته: 2015/08/22, 19:52
  3. راه اندازی سنسور ds18b20 با سون سگمنت اند دربسکام
    توسط namvar141 در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2015/05/29, 12:42
  4. راه اندازی 2 سنسور smt160 و 2 سنسور ds18b20
    توسط 86332050 در انجمن میکروکنترلرهای AVR
    پاسخ: 17
    آخرين نوشته: 2015/05/06, 00:00
  5. راه اندازی سنسور دمای DS18B20 با بسکام
    توسط nilofar1036 در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2013/12/31, 21:25

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

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

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

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

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