- fchao-Sinus-Wechselrichter AliExpress         
Ergebnis 1 bis 10 von 26

Thema: MAX31855 via SPI ansprechen

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Zitat Zitat von dj_cyborg Beitrag anzeigen
    Bei 100°C - ca. -5°C Abweichung (Ermittelt im Backofen mit einsteckbarem Thermometer und die automatische Abschaltung des Backofens bei erreichen der Zieltemperatur (interne Messfühler oder Bimetall))
    Bei 250°C- ca. -10°C Abweichung (Ermittelt im Backofen mit einsteckbarem Thermometer und die automatische Abschaltung des Backofens bei erreichen der Zieltemperatur (interne Messfühler oder Bimetall))
    o.K., dann ist das erklärbar.................
    Besorge dir für die Keramikanwendung ein paar verschiedene Segerkegel (so um 1000°C) und kalibriere damit.
    Das ist Zielführender.
    mfG
    Willi

  2. #2
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Ok, mir ist grad eingefallen das mein Messgerät Temperaturen bis 1000°C messen kann. (Obs der mitgelieferte Sensor kann, muss ich erstmal sehen.)

    https://www.amazon.de/Profitec-MY-64.../dp/B00GL37U1W

    Ich denke das sollte reichen um bis 1000°C zu kalibrieren und die restlichen 200°C werde ich liniear erweitern. (Sofern ich solche Temperaturen erreichen sollte...)

    Segerkegel musste ich erstmal googeln... wieder was gelernt.

    Danke

    mfG
    Mario
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  3. #3
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo,

    ich muss das Thema noch mal aufwärmen da ich noch Probleme mit der Temperaturmessung habe.
    Ich benutze als Basis den hier geposteten Code von WL (Danke nochmal...)
    Am Anfang waren die gemessenen Werte noch relativ Plausibel (wenn auch mit ein paar Grad Abweichung), aber seit einiger Zeit fangen die Messwerte an, stark zu springen. Teilweise mehrere 100°C.
    Ich dachte erst das ich ein Zeitproblem mit der Messung und meinen Interuppts bekommen habe, daher habe ich das reine Temperaturmessprogramm auf dem MC gespielt. Funktioniert auch nicht besser.
    Dann hatte ich eine unsaubere Spannungsversorgung unter Verdacht. Habe verschiedene Netzteile, USB-Versorgung, Eigenbaulösung, Kondensatoren und Batterien versucht. Funktionierte auch nicht besser.
    Ich habe ein neues MAX31855 Modul und MAX6675 bestellt. Funktionierte auch nicht.

    Hat jemand eine Idee / Erfahrungen woran das liegen kann?

    -Pullup Widerstände am Spi?
    -könnte die Spi am MC kaputt sein?
    -Die Module/Spi können doch mit 5v betrieben werden, oder? (lt. schlecht übersetzter Beschreibung habe ich was vom integrierten Level Shifter 3,3-5V gelesen)

    Vielen Dank für eure Hilfe

    mfG
    Mario
    Geändert von dj_cyborg (09.09.2020 um 12:29 Uhr)
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  4. #4
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Hallo Mario,

    die Temperaturerfassung ist doch nicht im ms-Takt notwendig.
    Wenn du die Ausreisser herausfilterst und gleichzeitig die Werte mittelst wird das für den Regler ausreichen.
    Selbst 10 Sekunden Zykluszeit würde reichen.
    mfG
    Willi

  5. #5
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Hallo Willi,

    danke für deine Antwort.

    Da gebe ich dir Recht, aber die Zeit ist auch nicht das Problem (das war nur meine erste Vermutung). Betreibst du deine Module an 5V?
    Ich lese im Hauptprogramm die Temperatur alle 500ms aus und in deinem Programm jede Sekunde und trotzdem bekomme ich so wilde Werte das da auch mit Filtern nichts zu machen ist. (Im Hauptprogramm ist ein Filter drin)
    Selbst die Referenztemperatur passt überhaupt nicht mehr...

    Hier mal dein angepasster TestCode und ein paar Werte (bei Raumtemperatur ca. 22°C):Atmega328P_MAX31855.TXT

    Code:
    '*******************************************************************************.
    '*******************************************************************************
    '******************************** MAX31855 *************************************
    '*******************************************************************************
    '************************** 25.08.2020 by CYBORG *******************************
    '*******************************************************************************
    '*******************************************************************************
    
    $regfile = "m328pdef.dat"
    
    $crystal = 8000000
    $hwstack = 40
    $swstack = 40
    $framesize = 40
    
    Baud = 9600
    
    '*************************** UART - Interrupt **********************************
    
    Dim Iuart As Integer
    On Urxc Onrxd                     'Interrupt-Routine setzen
    Enable Urxc                      'Interrupt URXC einschalten
    Enable Interrupts               'Interrupts global zulassen
    
    '************************* I2C - DISPLAY 1602 **********************************
    
    $lib "YwRobot_Lcd_i2c.lib"       'My I2C driver for the LCD
    
    Const Pcf8574_lcd = &H4E         'Defines the address of the I/O expander for LCD
    Dim Lcd_backlight As Byte
    Lcd_backlight = 1                 'Hintergrundbeleuchtung einschalten (1/0)
    
    Config Scl = Portc.5             'Configure I2C SCL
    Config Sda = Portc.4             'Configure I2C SDA
    Config Lcd = 16 * 2              'nicht unbedingt nötig
    Config I2cdelay = 1
    
    Waitms 300                        'warte bis Kondensator bei Ta0 geladen, auch für LCD-Init!
    
    
    '**************************** SPI - MAX31855 ************************************
    
    Config Spi = Hard , Interrupt = Off , Data_Order = Msb , Master = Yes , Polarity = High , Phase = 1 , Clockrate = 16  , Noss = 1
    
    Spiinit
    
    Config Portb.3 = Output
    Max_cs Alias Portb.3
    Max_cs = 1
    
    Dim Text11 As String * 40
    Dim Temp_s As Single
    
    Dim Element As Integer
    Dim Element_l As Byte At Element Overlay
    Dim Element_h As Byte At Element + 1 Overlay
    Dim Referenz As Integer
    Dim Referenz_l As Byte At Referenz Overlay
    Dim Referenz_h As Byte At Referenz + 1 Overlay
    
    print "Start"
    Locate 1 , 1
    Lcd "Start"
    wait 1
    
    '**************************** HAUPTSCHLEIFE ************************************
    
    Do
    
    
    Max_cs = 0
    Spiin Element_h , 1
    Spiin Element_l , 1
    Spiin Referenz_h , 1
    Spiin Referenz_l , 1
    Max_cs = 1
    
    cls
    
    Text11 = Bin(referenz)
    print text11
    Locate 1 , 8
    Lcd Text11
    
    Text11 = Bin(element)
    print text11
    Locate 1 , 1
    Lcd Text11
    
    Shift Referenz , Right , 4
    Temp_s = Referenz \ 16
    Text11 = Fusing(temp_s , "#.#")
    print text11
    Locate 2 , 1
    Lcd Text11
    
    
    Shift Element , Right , 2
    Temp_s = Element \ 4
    Text11 = Fusing(temp_s , "#.#")
    print text11
    Locate 2 , 8
    Lcd temp_s
    
    waitms 1000
    
    Loop
    
    end
    
    '**************************** UART - Interrupt *********************************
    
    Onrxd:
    
      Iuart = Udr
    
      Print "+++ Empfangen: " ; Iuart
    
      Select Case Iuart
      'RESET
      Case 123
         Print "+++ Reset: " ; Iuart
         Goto &H3C00       'M328
    
      Case Else
         Print "+++ Unbekannter Befehl: " ; Iuart
      End Select
    
    Return
    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  6. #6
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Zitat Zitat von dj_cyborg Beitrag anzeigen
    Betreibst du deine Module an 5V?
    Nein, die gesamte Schaltung wird mit 3,3V versorgt (wegen LCD).

    Auf deinem Modul scheint der Kondensator am Eingang zu fehlen.
    Löte doch mal einen 10 oder 100n an die Klemmstelle.
    mfG
    Willi

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    04.07.2012
    Beiträge
    201
    Meinst du den 10nF Kondensator zwischen T+ und T- ? Der ist nicht drauf nur der 0.1uF zwischen VCC und GND ist drauf.

    Ich teste das mal, Danke...

    Ich vermute aber mal dass das Modul doch nicht 5V kompatibel ist... Ich wüsste auch nicht wo der Level Shifter versteckt sein sollte.

    mfG
    Mario

    - - - Aktualisiert - - -

    Ich glaube bei meinen ist kein LevelShifter drauf (trotz Beschreibung)

    https://www.amazon.de/gp/product/B07...?ie=UTF8&psc=1

    bei dem hier wahrscheinlich schon

    https://www.ebay.de/itm/MAX31855-K-T....c100005.m1851

    Wenn das die Lösung sein soll...
    ...will ich mein Problem zurück !!!

  8. #8
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    31.05.2009
    Beiträge
    270
    Bild hier  Klicke auf die Grafik für eine größere Ansicht

Name:	MAX31855.jpg
Hits:	8
Größe:	27,5 KB
ID:	35227

    Der MAX31855 darf nur mit 3,3V betrieben werden (abs.Max. 4V)!
    Das kann man leicht dem Datenblatt entnehmen.
    mfG
    Willi

Ähnliche Themen

  1. LCD über I2C ansprechen
    Von Reissdorf im Forum C - Programmierung (GCC u.a.)
    Antworten: 4
    Letzter Beitrag: 30.12.2012, 19:48
  2. RFM ansprechen
    Von runner02 im Forum Basic-Programmierung (Bascom-Compiler)
    Antworten: 8
    Letzter Beitrag: 11.03.2012, 11:01
  3. PCF 8474 ansprechen ?
    Von Goliath im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 23.03.2008, 14:17
  4. USB Ansprechen
    Von DHigh im Forum Software, Algorithmen und KI
    Antworten: 8
    Letzter Beitrag: 05.10.2006, 20:37
  5. RS232 ansprechen
    Von Goblin im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 25.04.2005, 08:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

LiFePO4 Speicher Test