اطلاعیه

Collapse
No announcement yet.

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

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

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

    عرض سلام خدمت دوستان
    من برنامه های خیلی زیادی از سنسور ds18b20 دیدم که در همه ی برنامه ها کریستالش باید ثابت باشه و
    با تغییر کریستال اعداد دیگه ای نشون میده یا جوری که در برنامه طراحی میکنند ارور میده خوشحال میشم
    اگه کسی تخصوصی روی این سنسور داره توضیح بده
    مثلا این برنامه ای قرار دادم وقتی کریستالش روی 8mhz داخلی میزارم دیگه باید بیخیال برنامه بشه ی یه چیزی که میدونم
    یه رابطه ای در عدد داخل پرانتز وجود داره با کریستال 1wread(2) = T
    ممنون پیشا پیش از دوستان چون میدونم خیلی ها توی این زمینه مشکل دارند و مجبورن از کریستال مشخص شده استفاده کنند.


    http://s5.picofile.com/file/8165610276/Measure_temp_using_DS18B20.zip.html

    #2
    پاسخ : مشکل کریستال در سنسور ds18b20

    نوشته اصلی توسط alimomtad
    عرض سلام خدمت دوستان
    من برنامه های خیلی زیادی از سنسور ds18b20 دیدم که در همه ی برنامه ها کریستالش باید ثابت باشه و
    با تغییر کریستال اعداد دیگه ای نشون میده یا جوری که در برنامه طراحی میکنند ارور میده خوشحال میشم
    اگه کسی تخصوصی روی این سنسور داره توضیح بده
    مثلا این برنامه ای قرار دادم وقتی کریستالش روی 8mhz داخلی میزارم دیگه باید بیخیال برنامه بشه ی یه چیزی که میدونم
    یه رابطه ای در عدد داخل پرانتز وجود داره با کریستال 1wread(2) = T
    ممنون پیشا پیش از دوستان چون میدونم خیلی ها توی این زمینه مشکل دارند و مجبورن از کریستال مشخص شده استفاده کنند.


    http://s5.picofile.com/file/8165610276/Measure_temp_using_DS18B20.zip.html
    در عمل با فرکانس 4 و بالای 4 بدون مشکل راحت جواب میده
    البته با 1 مگ هم جواب میده ولی گاهی قاطی میکنه

    دیدگاه


      #3
      پاسخ : مشکل کریستال در سنسور ds18b20

      ممنون در کل فکر میکنم سنسور کارامدی ولی بدون ریست واچ داگ اصلا نمیشه باهاش کار کرد
      بازم متوجه نشدم یعنی توی پروتئوس شیش میزنه درست کار نمیکنه اخه من توی پروتئوس وقتی کریستال تغییر میدم چک میکنم چیزی نشون نمیده
      کسدیگه نظر نداره

      دیدگاه


        #4
        پاسخ : مشکل کریستال در سنسور ds18b20

        اگر از کدویژن استفاده می کنی و کتابخانه های آماده اش
        هر دفعه از نو پروژه بساز با کریستال مقدار جدید.
        دیگه گیج نمی زنه
        این گیج زدنی که می بینید خطای کتابخانه های کدویژن در تغییر کریستال اصلی هست.
        من تا کریستال 16 مگ هم سنسور DS18B20 رو هم خوندم
        برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
        http://hosseinwalkingday.com

        دیدگاه


          #5
          پاسخ : مشکل کریستال در سنسور ds18b20

          متاصفانه من از بسکام استفاده میکنم

          دیدگاه


            #6
            پاسخ : مشکل کریستال در سنسور ds18b20

            اموزش برنامه نویسی همون سنسور در کد ویژن رو قرار میدی؟ فقط ی برنامه که بخونه نمایشگر هم نمیخواد :nerd:
            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

            دیدگاه


              #7
              پاسخ : مشکل کریستال در سنسور ds18b20

              نوشته اصلی توسط MAHDI ZAMANI
              اموزش برنامه نویسی همون سنسور در کد ویژن رو قرار میدی؟ فقط ی برنامه که بخونه نمایشگر هم نمیخواد :nerd:
              این برنامه تست شده ام هست.
              کافیه تو کدویزاد، DS18B20 انتخاب کنی و به پورت مورد نظرت وصل کنی
              خروجی اش با 90usb162 وصل می شد به رایانه

              [code=c]/************************************************** *****
              This program was created by the
              CodeWizardAVR V3.12 Advanced
              Automatic Program Generator
              © Copyright 1998-2014 Pavel Haiduc, HP InfoTech s.r.l.
              http://www.hpinfotech.com

              Project :
              Version :
              Date : 1/12/2015
              Author :
              Company :
              Comments:


              Chip type : AT90USB162
              Program type : Application
              AVR Core Clock frequency: 16.000000 MHz
              Memory model : Small
              External RAM size : 0
              Data Stack size : 128
              ************************************************** *****/

              #include <90usb162.h>

              #include <delay.h>

              // 1 Wire Bus interface functions
              #include <1wire.h>

              // DS1820 Temperature Sensor functions
              #include <ds1820.h>

              // USB Device functions
              #include <usb_device.h>

              // USB CDC Virtual Serial Port functions
              #include <usb_cdc.h>

              // USB initialization
              #include "usb_init.h"

              // Declare your global variables here

              // SPI functions
              #include <spi.h>
              #include <stdio.h>
              #define _ALTERNATE_PUTCHAR_
              void putchar(char c)
              {
              usb_serial_putchar(c);
              }


              char lcd_buffer[33];

              /* maximum number of DS1820/DS18S20 connected to the 1 Wire bus */
              #define MAX_DEVICES 8

              /* DS1820/DS18S20 devices ROM code storage area */
              unsigned char rom_code[MAX_DEVICES][9];


              void main(void)
              {
              unsigned char i,j,devices;
              unsigned int temp;
              devices=w1_search(0xf0,rom_code);

              // Crystal Oscillator division factor: 1
              #pragma optsize-
              CLKPR=(1<<CLKPCE);
              CLKPR=(0<<CLKPCE) | (0<<CLKPS3) | (0<<CLKPS2) | (0<<CLKPS1) | (0<<CLKPS0);
              #ifdef _OPTIMIZE_SIZE_
              #pragma optsize+
              #endif

              // Input/Output Ports initialization
              // Port B initialization
              // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=Out Bit1=Out Bit0=Out
              DDRB=(0<<DDB7) | (0<<DDB6) | (0<<DDB5) | (0<<DDB4) | (0<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
              // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=0 Bit1=0 Bit0=0
              PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);

              // Port C initialization
              // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit2=In Bit1=In Bit0=In
              DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
              // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit2=T Bit1=T Bit0=T
              PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);

              // Port D initialization
              // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
              DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
              // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
              PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);

              // Timer/Counter 0 initialization
              // Clock source: System Clock
              // Clock value: Timer 0 Stopped
              // Mode: Normal top=0xFF
              // OC0A output: Disconnected
              // OC0B output: Disconnected
              TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
              TCCR0B=(0<<WGM02) | (0<<CS02) | (0<<CS01) | (0<<CS00);
              TCNT0=0x00;
              OCR0A=0x00;
              OCR0B=0x00;

              // Timer/Counter 1 initialization
              // Clock source: System Clock
              // Clock value: Timer1 Stopped
              // Mode: Normal top=0xFFFF
              // OC1A output: Disconnected
              // OC1B output: Disconnected
              // OC1C output: Disconnected
              // Noise Canceler: Off
              // Input Capture on Falling Edge
              // Timer1 Overflow Interrupt: Off
              // Input Capture Interrupt: Off
              // Compare A Match Interrupt: Off
              // Compare B Match Interrupt: Off
              // Compare C Match Interrupt: Off
              TCCR1A=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<COM1C1) | (0<<COM1C0) | (0<<WGM11) | (0<<WGM10);
              TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
              TCNT1H=0x00;
              TCNT1L=0x00;
              ICR1H=0x00;
              ICR1L=0x00;
              OCR1AH=0x00;
              OCR1AL=0x00;
              OCR1BH=0x00;
              OCR1BL=0x00;
              OCR1CH=0x00;
              OCR1CL=0x00;

              // Timer/Counter 0 Interrupt(s) initialization
              TIMSK0=(0<<OCIE0B) | (0<<OCIE0A) | (0<<TOIE0);

              // Timer/Counter 1 Interrupt(s) initialization
              TIMSK1=(0<<ICIE1) | (0<<OCIE1C) | (0<<OCIE1B) | (0<<OCIE1A) | (0<<TOIE1);

              // External Interrupt(s) initialization
              // INT0: Off
              // INT1: Off
              // INT2: Off
              // INT3: Off
              // INT4: Off
              // INT5: Off
              // INT6: Off
              // INT7: Off
              EICRA=(0<<ISC31) | (0<<ISC30) | (0<<ISC21) | (0<<ISC20) | (0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
              EICRB=(0<<ISC71) | (0<<ISC70) | (0<<ISC61) | (0<<ISC60) | (0<<ISC51) | (0<<ISC50) | (0<<ISC41) | (0<<ISC40);
              EIMSK=(0<<INT7) | (0<<INT6) | (0<<INT5) | (0<<INT4) | (0<<INT3) | (0<<INT2) | (0<<INT1) | (0<<INT0);
              // PCINT0 interrupt: Off
              // PCINT1 interrupt: Off
              // PCINT2 interrupt: Off
              // PCINT3 interrupt: Off
              // PCINT4 interrupt: Off
              // PCINT5 interrupt: Off
              // PCINT6 interrupt: Off
              // PCINT7 interrupt: Off
              PCMSK0=(0<<PCINT7) | (0<<PCINT6) | (0<<PCINT5) | (0<<PCINT4) | (0<<PCINT3) | (0<<PCINT2) | (0<<PCINT1) | (0<<PCINT0);
              // PCINT8 interrupt: Off
              // PCINT9 interrupt: Off
              // PCINT10 interrupt: Off
              // PCINT11 interrupt: Off
              // PCINT12 interrupt: Off
              PCMSK1=(0<<PCINT12) | (0<<PCINT11) | (0<<PCINT10) | (0<<PCINT9) | (0<<PCINT8);
              PCICR=(0<<PCIE1) | (0<<PCIE0);

              // USART1 initialization
              // USART1 disabled
              UCSR1B=(0<<RXCIE1) | (0<<TXCIE1) | (0<<UDRIE1) | (0<<RXEN1) | (0<<TXEN1) | (0<<UCSZ12) | (0<<RXB81) | (0<<TXB81);

              // Analog Comparator initialization
              // Analog Comparator: Off
              // The Analog Comparator's positive input is
              // connected to the AIN0 pin
              // The Analog Comparator's negative input is
              // connected to the AIN1 pin
              ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
              // Digital input buffer on AIN0: On
              // Digital input buffer on AIN1: On
              DIDR1=(0<<AIN0D) | (0<<AIN1D);

              // SPI initialization
              // SPI Type: Master
              // SPI Clock Rate: 250.000 kHz
              // SPI Clock Phase: Cycle Half
              // SPI Clock Polarity: High
              // SPI Data Order: MSB First
              SPCR=(0<<SPIE) | (1<<SPE) | (0<<DORD) | (1<<MSTR) | (1<<CPOL) | (1<<CPHA) | (1<<SPR1) | (0<<SPR0);
              SPSR=(0<<SPI2X);


              // 1 Wire Bus initialization
              // 1 Wire Data port: PORTD
              // 1 Wire Data bit: 2
              // Note: 1 Wire port settings are specified in the
              // Project|Configure|C Compiler|Libraries|1 Wire menu.
              w1_init();

              // USB Controller initialization in device mode
              // Note: This function also initializes the PLL
              usb_init_device(&usb_config);

              // Global enable interrupts
              #asm("sei&quot

              // Wait for the USB device to be enumerated by the host
              while (!usb_enumerated);

              // Wait 1.5 seconds for the operating system to
              // load any drivers needed by the USB device
              delay_ms(1500);

              // Wait for the USB host to be ready to receive serial data by
              // setting the CDC Virtual Serial Port's RS-232 DTR signal high
              while (usb_cdc_serial.control.dtr==0);

              while (1)
              {
              for (i=0;i<devices
              {
              temp=ds1820_temperature_10(&rom_code[i][0]);
              j='+';
              if (temp<0)
              {
              j='-';
              temp=-temp;
              };
              sprintf(lcd_buffer,"t%u=%c%i.%u\xdf" "C",++i,j,temp/100,temp%100);
              puts(lcd_buffer);
              delay_ms(800);
              };
              };
              }
              [/code]

              آموزش خاصی نداره. یادت باشه کدویژن ورژن 3.12 یا بالاتر استفاده کنی تا راحت باشی
              برای کاری در حوزه اربعین نیاز به نیروی داوطلب هستیم.
              http://hosseinwalkingday.com

              دیدگاه


                #8
                پاسخ : مشکل کریستال در سنسور ds18b20

                اقا پس من چیکار کنم

                دیدگاه


                  #9
                  پاسخ : مشکل کریستال در سنسور ds18b20

                  من با بسکام و فرکانس8 داخلی مشکلی ندارم فیوزبیتا رو هم تغیر باید بدی
                  الان من دماسنج ساختم فرکانسش8مگ داخلیه عالی کار میکنه :nerd:
                  http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                  دیدگاه


                    #10
                    پاسخ : مشکل کریستال در سنسور ds18b20

                    فیوز بیتا روباید روی چی بزارم

                    دیدگاه


                      #11
                      پاسخ : مشکل کریستال در سنسور ds18b20

                      نوشته اصلی توسط alimomtad
                      فیوز بیتا روباید روی چی بزارم
                      بیا:
                      معیار واقعی بودن تصمیم، آن است که دست به عمل بزنیم.

                      دیدگاه


                        #12
                        پاسخ : مشکل کریستال در سنسور ds18b20

                        ارتباط 1-wire به دلیل نبودن کلاک وابسته به زمانبدی هست. فرکانس میکرو که تغییر میکنه ممکنه رو این موضوع تاثیر بذاره
                        گفت که دیوانه نهی لایق این خانه نهی

                        دیدگاه


                          #13
                          پاسخ : مشکل کریستال در سنسور ds18b20

                          یعنی کلاپروتئوس با این سنسور مشکل داره
                          :mrgreen: :mrgreen:

                          دیدگاه


                            #14
                            پاسخ : مشکل کریستال در سنسور ds18b20

                            چیچیو مشکل داره من دارم باهاش کار میکنم میخوای فایل شبیه سازشو بزارم؟
                            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                            دیدگاه


                              #15
                              پاسخ : مشکل کریستال در سنسور ds18b20

                              نوشته اصلی توسط alimomtad
                              یعنی کلاپروتئوس با این سنسور مشکل داره
                              :mrgreen: :mrgreen:
                              اره
                              یک سری تنطیمات داره ک باید انجام بدی
                              ولی شما روی 1 مگا هرتز امتحان کنید ج میده
                              البته برای اینکه خیالتون راحت شه عملی ببنید
                              امیدوارم موفق باشید

                              دیدگاه

                              لطفا صبر کنید...
                              X