logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Atmega: Jak mierzyć temperaturę w dwóch miejscach jednocześnie za pomocą Max 6675?

delta85 19 Lip 2017 13:11 2286 10
REKLAMA
  • #1 16596359
    delta85
    Poziom 16  
    Witam.
    Chce mierzyć temperaturę (do 300 stopni) w dwóch miejscach jednocześnie i wynik pomiaru wyświetlić na wyświetlaczu LCD 2x16 znaków, sterowanym przez ATmega np. 8.
    Mam dwa takie komplety
    Atmega: Jak mierzyć temperaturę w dwóch miejscach jednocześnie za pomocą Max 6675?modul.JPG Download (15.26 kB)
    Jest to termopara z modułem który przetwarza sygnał z termopary i wysyła go do kontrolera przez magistrale SPI. W module jest zastosowany układ Max 6675. Cały komplet tani i łatwo dostępny.
    Wypróbowałem pomiar jednym modułem jedna termopara, nie mam tu problemu, układ mierzy i wyświetla temperaturę.
    Ale czy można w jakiś sposób wykorzystać dwa takie moduły, do pomiaru dwóch temperatur jednym procesorem ?
    Ewentualnie w jaki inny sposób rozwiązać taki pomiar temperatur ?
    Pozdrawiam...
  • REKLAMA
  • #2 16596375
    excray
    Poziom 41  
    Oczywiście, że można. Układ ma wejście CS którym sterujesz czy jest aktywny, czy nie.
  • REKLAMA
  • #4 16596598
    Sparrowhawk
    Poziom 22  
    Linie SO x układów łączysz wspólnie ze sobą i dołączasz do MISO mikrokontrolera;
    Linie SCK x układów łączysz wspólnie ze sobą i dołączasz do SCK mikrokontrolera;
    Linie CS x układów dołączasz do x pinów mikrokontrolera;

    Co prawda artykuł jest o XMega, ale zasada działania SPI jest we wszytkich mikrokontrolerach ta sama:
    Mikrokontrolery AVR XMEGA w praktyce, część 17. Interfejs SPI
  • #6 16821508
    MStashe
    Poziom 9  
    delta85 napisał:
    jedna termopara, nie mam tu problemu


    Czy mógłbyś wysłać kod w jaki sposób mierzysz temperaturę jedną termoparą? Siedzę nad tym od kilku dni i nic nie mogę znaleźć niestety.
  • REKLAMA
  • #8 16822895
    MStashe
    Poziom 9  
    @delta85
    Też pisałeś program w BASCOMie?

    >edit
    Udało mi się pozmieniać wystarczająco, żeby sprawdzić czy moja termopara działa i okazało się że wszystko jest w porządku. Jednak nie jestem zadowolony, bo temperatura zmierzona wyświetla się tylko raz, po skompilowaniu i zaprogramowaniu chipa. Jeśli włożę termoparę np. do wrzątku to temperatura na wyświetlaczu się nie zmienia do momentu w którym znowu kliknę "Program chip". Wtedy owszem, pokazuje się poprawny pomiar. Stąd moje pytanie jak przerobić kod, żeby temperatura wyświetlała się "w sposób ciągły"? Poniżej wklejam cały kod.

    
    Config Spi = Soft , Din = Pinc.2 , Dout = Portc.1 , Ss = None , Clock = Portc.0
    Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portb.2 , Rs = Portb.0
    
    Config Lcd = 16 * 1
    
    Cursor Off
    Config Portc.0 = Output
    Config Portc.1 = Output
    Config Pinc.2 = Input
    Sck Alias Portc.0
    Cs Alias Portc.1
    So Alias Pinc.2
    Dim Maxdata As Word
    Cs = 1
    Sck = 0
    So = 1
    Cls
    Do
    Cs = 0
    Shiftin So , Sck , Maxdata , 0 , 16
    Cs = 1
    Shift Maxdata , Right , 3
    Maxdata = Maxdata / 4
    Locate 1 , 1
    Lcd "Temperat"
    Locate 2 , 1
    Lcd "ura="
    Locate 2 , 5 '
    Lcd Maxdata;
    Waitms 800
    Loop
    End
    
  • REKLAMA
  • #10 16863017
    MStashe
    Poziom 9  
    @delta85
    Udało mi się już szybciej rozwiązać ten problem . Zastosowałem właśnie DoLoop wraz opóźnieniem.
    Dziękuję mimo wszystko że się zainteresowałeś i odpowiedziałeś :).
REKLAMA