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





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









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









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





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

صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12
  1. #1
    2015/06/11
    تبریز
    20
    0

    کار با ماژول max6675

    سلام من میخوام با ماژول همین سایت eca کار کنم ارتباط باهاش spi هست هرکار میکنم نمیتونم دیتارو بخونم میشه کمکم کنین ؟؟؟؟؟؟؟
    o_O
  2. #2
    2007/08/02
    1,450
    919

    پاسخ : کار با ماژول max6675

    بيسيك كار كردي يا سي
    من با كد ويژن درايو كردم
    اگه کسی کتاب قدیمی الکترونیک عملی برای جوانان بخت آور داره لطفا پیام بده Hidden Content
  3. #3
    2015/06/11
    تبریز
    20
    0

    پاسخ : کار با ماژول max6675

    نقل قول نوشته اصلی توسط S S
    بيسيك كار كردي يا سي
    من با كد ويژن درايو كردم
    با کدویژن کارمیکنم هرکاری کردم نتونستم دیتارو بخونم تو lcd فقط عدد 255 رو نشون میده تغییر نمیکنه اگه میشه یه نمونه برنامه بدین خیلی ممنون میشم :rolleyes:
    o_O
  4. #4
    2007/08/02
    1,450
    919

    پاسخ : کار با ماژول max6675


    [code=c]
    #define SCK 5 //SCK (serial clock) pin number
    #define CS 2 //CS (chip select) pin number
    #define SO 4 //SO (serial out, also MISO) pin number

    #define SCK_Port PORTB //SCK port name
    #define CS_Port PORTB //CS port name
    #define SO_Pin PINB //SO pin name
    #define SO_Port PORTB //so pin name

    #define SCK_DDR DDRB //SCK DDR name
    #define CS_DDR DDRB //CS DDR name
    #define SO_DDR DDRB //SO DDR name



    int gettemp(void);
    void init_6675(void);
    //char getTC(void);

    int gettemp(void){ //Temperatur holen.
    char bite = 0, bitnr = 12; //Variablen
    char foo1 = 0;
    int so_data = 0;

    CS_Port &= ~(1 << CS);
    for(foo1 = 0 ; foo1 < 16 ; foo1++){
    bite = 15 - foo1;
    SCK_Port |= (1 << SCK);
    if((bite <= 14) && (bite >= 3)){
    if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data |= (1 << bitnr); // und schieben eine 1 an bit x
    }else{ //WENN dem NICHT so ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data &= ~(1 << bitnr); //und schieben eine 0 an bit x
    }
    }else{ //weis au nimmer, was das soll.
    bitnr = 12;
    }
    SCK_Port &= ~(1 << SCK); //SCK LO
    }
    CS_Port |= (1 << CS);
    return so_data*0.25; //Das ist doch mal was ;D
    }


    // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected
    // (to enable this feature T- must be connected to GND)
    //char getTC(void){ //Temperatur holen. //Variablen
    // char TC = 0;
    // char foo1 = 0;
    // CS_Port &= ~(1 << CS); //Chip select anlegen
    // for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen.
    // SCK_Port |= (1 << SCK); //SCK hi
    // if(foo1 == 2){ //das 3. bit ist für uns relevant.
    // if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    // TC = 0;
    // }else{ //WENN dem NICHT so ist, dann...
    // TC = 255;
    // }
    // }
    // SCK_Port &= ~(1 << SCK); //SCK LO
    // }
    // CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    // return TC; //Das ist doch mal was ;D
    //}
    //

    //Initiates the MAX6675 and IO-pins
    void init_6675(void){ //AVR initialisieren

    SO_DDR &= ~(1 << SO);
    CS_DDR |= (1 << CS);
    SCK_DDR |= (1 << SCK); //IOs setzen

    SO_Port |= (1<<SO); //Pullups an. (Wichtig für MAX6675, der kann nicht anders, hab ich festgestellt...

    CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    SCK_Port &= ~(1 << SCK); //SCK LO
    }



    [/code]



    اگه کسی کتاب قدیمی الکترونیک عملی برای جوانان بخت آور داره لطفا پیام بده Hidden Content
  5. #5
    2015/06/11
    تبریز
    20
    0

    پاسخ : کار با ماژول max6675

    نقل قول نوشته اصلی توسط S S
    [code=c]
    #define SCK 5 //SCK (serial clock) pin number
    #define CS 2 //CS (chip select) pin number
    #define SO 4 //SO (serial out, also MISO) pin number

    #define SCK_Port PORTB //SCK port name
    #define CS_Port PORTB //CS port name
    #define SO_Pin PINB //SO pin name
    #define SO_Port PORTB //so pin name

    #define SCK_DDR DDRB //SCK DDR name
    #define CS_DDR DDRB //CS DDR name
    #define SO_DDR DDRB //SO DDR name



    int gettemp(void);
    void init_6675(void);
    //char getTC(void);

    int gettemp(void){ //Temperatur holen.
    char bite = 0, bitnr = 12; //Variablen
    char foo1 = 0;
    int so_data = 0;

    CS_Port &= ~(1 << CS);
    for(foo1 = 0 ; foo1 < 16 ; foo1++){
    bite = 15 - foo1;
    SCK_Port |= (1 << SCK);
    if((bite <= 14) && (bite >= 3)){
    if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data |= (1 << bitnr); // und schieben eine 1 an bit x
    }else{ //WENN dem NICHT so ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data &= ~(1 << bitnr); //und schieben eine 0 an bit x
    }
    }else{ //weis au nimmer, was das soll.
    bitnr = 12;
    }
    SCK_Port &= ~(1 << SCK); //SCK LO
    }
    CS_Port |= (1 << CS);
    return so_data*0.25; //Das ist doch mal was ;D
    }


    // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected
    // (to enable this feature T- must be connected to GND)
    //char getTC(void){ //Temperatur holen. //Variablen
    // char TC = 0;
    // char foo1 = 0;
    // CS_Port &= ~(1 << CS); //Chip select anlegen
    // for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen.
    // SCK_Port |= (1 << SCK); //SCK hi
    // if(foo1 == 2){ //das 3. bit ist für uns relevant.
    // if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    // TC = 0;
    // }else{ //WENN dem NICHT so ist, dann...
    // TC = 255;
    // }
    // }
    // SCK_Port &= ~(1 << SCK); //SCK LO
    // }
    // CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    // return TC; //Das ist doch mal was ;D
    //}
    //

    //Initiates the MAX6675 and IO-pins
    void init_6675(void){ //AVR initialisieren

    SO_DDR &= ~(1 << SO);
    CS_DDR |= (1 << CS);
    SCK_DDR |= (1 << SCK); //IOs setzen

    SO_Port |= (1<<SO); //Pullups an. (Wichtig für MAX6675, der kann nicht anders, hab ich festgestellt...

    CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    SCK_Port &= ~(1 << SCK); //SCK LO
    }



    [/code]
    خیلی معذرت میخوام نمیتونم دمارو بیارم رو lcd بخش تابع اصلیم هم اینطوری نوشتم بنظرتون درسته یا مشکلش چیه ?
    void main (){
    char lcd_buffer[16];
    DDRB=0xB4;
    lcd_init (16);
    lcd_clear();
    while (1){
    SO_DDR=spi(0);
    sprintf (lcd_buffer,"data is=%u ",SO_DDR);
    lcd_clear();
    lcd_puts(lcd_buffer);
    delay_ms(250);
    }
    }
    o_O
  6. #6
    2007/08/02
    1,450
    919

    پاسخ : کار با ماژول max6675

    شما برای خواندن دما از دستور
    gettemp
    دستفاده کن مثلا
    [code=c]
    int temp;
    temp=gettemp();
    [/code]

    قبل از while اصلی هم از دستور
    [code=c]
    init_6675();
    [/code]

    باید استفاده کنی
    توی برنامه هم باید شماره های پایه های آی سی مشخص کنی که به کدام پین میکرو متصل شده
    این کد ببین باید تغییر کنه طبق اتصال شما
    [code=c]
    #define SCK 5 //SCK (serial clock) pin number
    #define CS 2 //CS (chip select) pin number
    #define SO 4 //SO (serial out, also MISO) pin number
    [/code]
    اگه کسی کتاب قدیمی الکترونیک عملی برای جوانان بخت آور داره لطفا پیام بده Hidden Content
  7. #7
    2015/06/11
    تبریز
    20
    0

    پاسخ : کار با ماژول max6675

    نقل قول نوشته اصلی توسط S S
    شما برای خواندن دما از دستور
    gettemp
    دستفاده کن مثلا
    [code=c]
    int temp;
    temp=gettemp();
    [/code]

    قبل از while اصلی هم از دستور
    [code=c]

    init_6675();
    [/code]

    باید استفاده کنی
    توی برنامه هم باید شماره های پایه های آی سی مشخص کنی که به کدام پین میکرو متصل شده
    این کد ببین باید تغییر کنه طبق اتصال شما
    [code=c]
    #define SCK 5 //SCK (serial clock) pin number
    #define CS 2 //CS (chip select) pin number
    #define SO 4 //SO (serial out, also MISO) pin number
    [/code]
    داداش من با spi مستر و اسلیو انجام دادم ولی با این ماژول نمیدونم چرا دیتا اصلا نمیاد مگه spi چهارتا پایه نداره که ماهم باید پایه های ماژول رو به ترتیب ss=cs
    miso=so
    sck=sck
    وصل کنیم درسته ؟
    تو پروتیوس هم با اسیلوسکوپ نگاه میکنم کلاک میده لحظه ی اول هم so وss یه کلاک میده که کامل نیست بعد صفر میشه

    o_O
  8. #8
    2007/08/02
    1,450
    919

    پاسخ : کار با ماژول max6675

    این برنامه از spi سخت افزاری استفاده نمیکنه و نرم افزاری درایو میکنه.
    فاصله زمان هر اسکن هم باید حد اقل 500 میلی ثانیه باشه
    به پروتوس هم اعتماد نکن
    اگه کسی کتاب قدیمی الکترونیک عملی برای جوانان بخت آور داره لطفا پیام بده Hidden Content
  9. #9
    2016/10/21
    4
    0

    پاسخ : کار با ماژول max6675

    میشه واسه زبان بیسیک هم یه نمونه بذارین؟؟؟
  10. #10
    2012/12/12
    14
    1

    پاسخ : کار با ماژول max6675

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

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

    عضویت

    [code=c]
    #define SCK 5 //SCK (serial clock) pin number
    #define CS 2 //CS (chip select) pin number
    #define SO 4 //SO (serial out, also MISO) pin number

    #define SCK_Port PORTB //SCK port name
    #define CS_Port PORTB //CS port name
    #define SO_Pin PINB //SO pin name
    #define SO_Port PORTB //so pin name

    #define SCK_DDR DDRB //SCK DDR name
    #define CS_DDR DDRB //CS DDR name
    #define SO_DDR DDRB //SO DDR name



    int gettemp(void);
    void init_6675(void);
    //char getTC(void);

    int gettemp(void){ //Temperatur holen.
    char bite = 0, bitnr = 12; //Variablen
    char foo1 = 0;
    int so_data = 0;

    CS_Port &= ~(1 << CS);
    for(foo1 = 0 ; foo1 < 16 ; foo1++){
    bite = 15 - foo1;
    SCK_Port |= (1 << SCK);
    if((bite <= 14) && (bite >= 3)){
    if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data |= (1 << bitnr); // und schieben eine 1 an bit x
    }else{ //WENN dem NICHT so ist, dann...
    bitnr--; //zنhlen wir runter...
    so_data &= ~(1 << bitnr); //und schieben eine 0 an bit x
    }
    }else{ //weis au nimmer, was das soll.
    bitnr = 12;
    }
    SCK_Port &= ~(1 << SCK); //SCK LO
    }
    CS_Port |= (1 << CS);
    return so_data*0.25; //Das ist doch mal was ;D
    }


    // getTC() returns 0 if Thermocouple is not connected, 255 if thermocuple is connected
    // (to enable this feature T- must be connected to GND)
    //char getTC(void){ //Temperatur holen. //Variablen
    // char TC = 0;
    // char foo1 = 0;
    // CS_Port &= ~(1 << CS); //Chip select anlegen
    // for(foo1 = 0 ; foo1 < 16 ; foo1++){ //16 Bits einlesen //Die Aktuelle Bitnr berechnen.
    // SCK_Port |= (1 << SCK); //SCK hi
    // if(foo1 == 2){ //das 3. bit ist f�r uns relevant.
    // if((SO_Pin & (1 << SO))){ //WENN SO 1 ist, dann...
    // TC = 0;
    // }else{ //WENN dem NICHT so ist, dann...
    // TC = 255;
    // }
    // }
    // SCK_Port &= ~(1 << SCK); //SCK LO
    // }
    // CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    // return TC; //Das ist doch mal was ;D
    //}
    //

    //Initiates the MAX6675 and IO-pins
    void init_6675(void){ //AVR initialisieren

    SO_DDR &= ~(1 << SO);
    CS_DDR |= (1 << CS);
    SCK_DDR |= (1 << SCK); //IOs setzen

    SO_Port |= (1<<SO); //Pullups an. (Wichtig f�r MAX6675, der kann nicht anders, hab ich festgestellt...

    CS_Port |= (1 << CS); //CS HI //Alles auf Standardkonfig.
    SCK_Port &= ~(1 << SCK); //SCK LO
    }



    [/code]
    شرمنده میشه یکم بیشتر توضیح بدید من نفهمیدم از این کدا کجا استفاده کنم.اگه امکانش هست یه نمونه کد بزارید
صفحه 1 از 2 12 آخرین
نمایش نتایج: از 1 به 10 از 12

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

  1. راه اندازی max6675
    توسط mjs1990s در انجمن سایر مطالب مرتبط با ميکرو ها و پروسسورها
    پاسخ: 13
    آخرين نوشته: 2020/11/23, 16:34
  2. راهنمایی در مورد راه اندازی ماژول max6675(ترموکوپل)
    توسط الفا11 در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2018/08/31, 17:53
  3. راه اندازی max6675 + ترموکوپل
    توسط par3eh در انجمن میکروکنترلرهای AVR
    پاسخ: 1
    آخرين نوشته: 2017/08/06, 23:52
  4. راه اندازی MAX6675 با LPC1768
    توسط nex2004 در انجمن NXP
    پاسخ: 2
    آخرين نوشته: 2016/08/17, 14:48
  5. مشکل در رسم شماتیک و PCB برای MAX6675
    توسط jojohacko در انجمن نرم افزار Protel
    پاسخ: 9
    آخرين نوشته: 2014/12/17, 13:35

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

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

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

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

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