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

Termometr na attiny2313 źle wskazuje

NewElektro 09 Kwi 2012 16:16 5268 30
REKLAMA
  • #1 10775142
    NewElektro
    Poziom 19  
    Witam zrobiłem termometr na mikrokontrolerze Attiny2313 wzorowałem się na projekcie https://www.elektroda.pl/rtvforum/topic334889.html.

    Niestety mam z nim mały problem cały czas na wyświetlaczu pokazuję się liczba 85, po odpięciu układu DS18B20 wskakuje liczba 95.

    W programie dopisałem
    $regfile = "ATtiny2313.dat"
    $crystal = 4000000

    Układ programuję mkAVR Calculator zmiany które dokonuje to zmiana w zakładce fusy uproszczone zaznaczam zewnętrzny kwarc 3MHz-8MHz najpierw programuje fusebity następnie odznaczam fusebity i zaznaczam rodzaj pamięci flash i ładuje program hex.

    Proszę o pomoc.
  • REKLAMA
  • #2 10775371
    lukasz_elektronika
    Poziom 13  
    Oczywiście zakładam, że linię DATA poza podłączeniem do mikrokontrolera masz przez rezystor do plusa zasilania
  • #3 10775402
    NewElektro
    Poziom 19  
    lukasz_elektronika napisał:
    Oczywiście zakładam, że linię DATA poza podłączeniem do mikrokontrolera masz przez rezystor do plusa zasilania


    Programator został zakupiony jak gotowy układ posiadam USBasp oraz samą podstawkę pod procesory AVR.
  • #4 10775418
    lukasz_elektronika
    Poziom 13  
    ja nie pytam się o programator tylko linię Data układu DS18b20
  • #5 10775428
    jousto
    Poziom 17  
    NewElektro napisał:
    lukasz_elektronika napisał:
    Oczywiście zakładam, że linię DATA poza podłączeniem do mikrokontrolera masz przez rezystor do plusa zasilania


    Programator został zakupiony jak gotowy układ posiadam USBasp oraz samą podstawkę pod procesory AVR.


    A jaki ma związek jedno z drugim. Kolega zauważył, że pewnie nie masz rezystora podcigającego linię DATA do plusa zasilania. Chociaż wg mnie nie to jest przyczyną, pokaż schemat oraz listing programu nie będżiemy zgadywać bo szkoda czasu.
  • #6 10775446
    NewElektro
    Poziom 19  
    jousto napisał:
    NewElektro napisał:
    lukasz_elektronika napisał:
    Oczywiście zakładam, że linię DATA poza podłączeniem do mikrokontrolera masz przez rezystor do plusa zasilania


    Programator został zakupiony jak gotowy układ posiadam USBasp oraz samą podstawkę pod procesory AVR.


    A jaki ma związek jedno z drugim. Kolega zauważył, że pewnie nie masz rezystora podcigającego linię DATA do plusa zasilania. Chociaż wg mnie nie to jest przyczyną, pokaż schemat oraz listing programu nie będżiemy zgadywać bo szkoda czasu.


    Kod: text
    Zaloguj się, aby zobaczyć kod

    Termometr na attiny2313 źle wskazuje
  • #8 10775460
    lukasz_elektronika
    Poziom 13  
    Jak ma Ci ten czujnik działać skoro VCC i GND masz podłączone do masy.
  • REKLAMA
  • #9 10775469
    NewElektro
    Poziom 19  
    piotrva napisał:
    Jaka wartość r11? Czy na pewno dobrze podłączasz ten czujnik?


    R11 ma wartość 1.2 Kohm czujnik podłączony według schematu

    Dodano po 2 [minuty]:

    lukasz_elektronika napisał:
    Jak ma Ci ten czujnik działać skoro VCC i GND masz podłączone do masy.


    Teraz pobrałem wyprowadzenia czujnika DS18B20
    jak on ma być dokładnie podłączony?

    Proszę we właściwy sposób zamieszczać obrazki w postach.
    https://www.elektroda.pl/rtvforum/topic2053101.html
    [zumek]
  • #10 10775485
    jousto
    Poziom 17  
    lukasz_elektronika napisał:
    Jak ma Ci ten czujnik działać skoro VCC i GND masz podłączone do masy.



    To akurat nie ma znaczenia pod warunkiem, że czujnik będzie pracował w trybie zasilania pasożytniczego, ale w załączonym listingu tego nie widać. Brak instrukcji wprowadzania DS w odpowiedni tryb zasilania. Lepiej jednak będzie zasilić DS bez takich kombinacji niż przystosować listing przynajmniej jeśli nie masz doświadczenia z uruchamianiem termometru. Zasilanie pasożytnicze zostaw sobie na później. A do czego służy dioda D1 (i co to za rodzaj (LED??) )odłącz ją bo nie ma pewności że nie będzie wprowadzać zamieszania.
  • REKLAMA
  • #11 10775489
    lukasz_elektronika
    Poziom 13  
    1 masa , 2 do odpowiedniego portu mikrokontrolera i przez rezystor do VCC , 3 do VCC
  • #12 10775497
    piotrva
    VIP Zasłużony dla elektroda
    lukasz_elektronika napisał:
    Jak ma Ci ten czujnik działać skoro VCC i GND masz podłączone do masy.

    Może działać w trybie zasilania pasozytniczego.
    Hmm, ewidentnie czujnik Ci nie odpowiada, sprawdzales połączenia?
  • #13 10775500
    NewElektro
    Poziom 19  
    jousto napisał:
    lukasz_elektronika napisał:
    Jak ma Ci ten czujnik działać skoro VCC i GND masz podłączone do masy.



    To akurat nie ma znaczenia pod warunkiem, że czujnik będzie pracował w trybie zasilania pasożytniczego, ale w załączonym listingu tego nie widać. Brak instrukcji wprowadzania DS w odpowiedni tryb zasilania. Lepiej jednak będzie zasilić DS bez takich kombinacji niż przystosować listing przynajmniej jeśli nie masz doświadczenia z uruchamianiem termometru. Zasilanie pasożytnicze zostaw sobie na później. A do czego służy dioda D1 (i co to za rodzaj (LED??) )odłącz ją bo nie ma pewności że nie będzie wprowadzać zamieszania.


    wyswietlacze LED siedmiosegmentowe ze wspolną anodą
    czyli czujnik jest dobrze podłączony ??
  • #14 10775506
    piotrva
    VIP Zasłużony dla elektroda
    Mnie też zastanawia ta d1... Nie mam niestety czasu na analizę softu...
  • #15 10775528
    NewElektro
    Poziom 19  
    lukasz_elektronika napisał:
    1 masa , 2 do odpowiedniego portu mikrokontrolera i przez rezystor do VCC , 3 do VCC


    Zamiast diody D1 zrobiłem zworkę i na wyswietlaczu pojawiło się 0
  • #16 10775538
    jousto
    Poziom 17  
    NewElektro napisał:
    lukasz_elektronika napisał:
    1 masa , 2 do odpowiedniego portu mikrokontrolera i przez rezystor do VCC , 3 do VCC


    Zamiast diody D1 zrobiłem zworkę i na wyswietlaczu pojawiło się 0


    Podłącz czujnik tak jak masz napisane powyżej a diodę zupełnie rozłącz.

    Dodano po 58 [sekundy]:

    a rezystor powinien mieć 4k7 do 10k.
  • #17 10775591
    NewElektro
    Poziom 19  
    jousto napisał:
    NewElektro napisał:
    lukasz_elektronika napisał:
    1 masa , 2 do odpowiedniego portu mikrokontrolera i przez rezystor do VCC , 3 do VCC


    Zamiast diody D1 zrobiłem zworkę i na wyswietlaczu pojawiło się 0


    Podłącz czujnik tak jak masz napisane powyżej a diodę zupełnie rozłącz.

    Dodano po 58 [sekundy]:

    a rezystor powinien mieć 4k7 do 10k.


    Czyli 2 z 3 mogę połączyć ze sobą ?? one idą do układu attiny do pinu nr.2 i dodatkowo połączyć z VCC??
  • #18 10775606
    jousto
    Poziom 17  
    
    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE
    Odczyt(1) = 1wread(2)
    T = Odczyt(2)
    Shift T , Left , 8
    T = T + Odczyt(1)
    Shift T , Right , 4
    1wreset
    1wwrite &HCC
    1wwrite &H44
    Liczba = T
    Gosub Wyswietlanie
    Loop


    W tej pętli jest brak określenia czasu aby czujnik mógł przeliczyć temperaturę i wstawić ją do scratchpada do odczytania. Nie wiemy w jakiej rozdzielczości czujnik DS pracuje od tego zależy czas oczekiwania. od 97ms dla najniższej do 750ms dla najwyższej.
  • REKLAMA
  • #19 10775608
    NewElektro
    Poziom 19  
    Podłączyłem według wskazań teraz na wyświetlaczu pokazały się same zera

    Dodano po 9 [minuty]:

    jousto napisał:
    
    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE
    Odczyt(1) = 1wread(2)
    T = Odczyt(2)
    Shift T , Left , 8
    T = T + Odczyt(1)
    Shift T , Right , 4
    1wreset
    1wwrite &HCC
    1wwrite &H44
    Liczba = T
    Gosub Wyswietlanie
    Loop


    W tej pętli jest brak określenia czasu aby czujnik mógł przeliczyć temperaturę i wstawić ją do scratchpada do odczytania. Nie wiemy w jakiej rozdzielczości czujnik DS pracuje od tego zależy czas oczekiwania. od 97ms dla najniższej do 750ms dla najwyższej.


    Czyli problem tkwi w samym programie ??
  • #20 10775645
    jousto
    Poziom 17  
    Termometr na attiny2313 źle wskazuje

    Podłącz jak na obrazku powyżej.
    Dodaj czas oczekiwania. na konwersję temperatury, najprościej wstawiając


    w pętli
    
    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE
    Odczyt(1) = 1wread(2)
    T = Odczyt(2)
    Shift T , Left , 8
    T = T + Odczyt(1)
    Shift T , Right , 4
    1wreset
    1wwrite &HCC
    1wwrite &H44
    waitms 750   ' np w tym miejscu
    Liczba = T
    Gosub Wyswietlanie
    Loop
  • #21 10775713
    NewElektro
    Poziom 19  
    jousto napisał:
    Termometr na attiny2313 źle wskazuje

    Podłącz jak na obrazku powyżej.
    Dodaj czas oczekiwania. na konwersję temperatury, najprościej wstawiając


    w pętli
    
    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE
    Odczyt(1) = 1wread(2)
    T = Odczyt(2)
    Shift T , Left , 8
    T = T + Odczyt(1)
    Shift T , Right , 4
    1wreset
    1wwrite &HCC
    1wwrite &H44
    waitms 750   ' np w tym miejscu
    Liczba = T
    Gosub Wyswietlanie
    Loop


    Po prawidłowy podłączeniu czujnika i zmianie w programie niestety pożądanych efektu niestety brak na ta chwilę miga ciągle 00 na przemian z 7
  • #22 10775744
    lukasz_elektronika
    Poziom 13  
    jak wstawisz opoznienie w pętli głównej to przeciez masz zakłóconą multipleksacje wyświetlaczy.
  • #23 10775784
    NewElektro
    Poziom 19  
    NewElektro napisał:
    jousto napisał:
    Termometr na attiny2313 źle wskazuje

    Podłącz jak na obrazku powyżej.
    Dodaj czas oczekiwania. na konwersję temperatury, najprościej wstawiając


    w pętli
    
    Do
    1wreset : 1wwrite &HCC : 1wwrite &HBE
    Odczyt(1) = 1wread(2)
    T = Odczyt(2)
    Shift T , Left , 8
    T = T + Odczyt(1)
    Shift T , Right , 4
    1wreset
    1wwrite &HCC
    1wwrite &H44
    waitms 750   ' np w tym miejscu
    Liczba = T
    Gosub Wyswietlanie
    Loop


    Po prawidłowy podłączeniu czujnika i zmianie w programie niestety pożądanych efektu niestety brak na ta chwilę miga ciągle 00 na przemian z 7


    witam teraz tak jak by zaczął mierzyć temperaturę ale na przemian miga np 23 z 3 jak chwycę czujnik w palce temperatura się powiększa ale miga np z jakąś liczbą
  • #24 10775792
    lukasz_elektronika
    Poziom 13  
    opożnienie jest zawarte w etykiecie wyswietl petla wykonuje sie 125 razy wiec może w sumie wyjsc 750ms

    Dodano po 57 [sekundy]:

    wykasuj te waitms 750 i sprobuj wtedy
  • #25 10775837
    jousto
    Poziom 17  
    lukasz_elektronika napisał:
    opożnienie jest zawarte w etykiecie wyswietl petla wykonuje sie 125 razy wiec może w sumie wyjsc 750ms

    Dodano po 57 [sekundy]:

    wykasuj te waitms 750 i sprobuj wtedy



    W sumie masz rację nie zauważyłem tego wcześniej.
  • #26 10775915
    NewElektro
    Poziom 19  
    jousto napisał:
    lukasz_elektronika napisał:
    opożnienie jest zawarte w etykiecie wyswietl petla wykonuje sie 125 razy wiec może w sumie wyjsc 750ms

    Dodano po 57 [sekundy]:

    wykasuj te waitms 750 i sprobuj wtedy



    W sumie masz rację nie zauważyłem tego wcześniej.



    W tej chwili cały czas wyświetlacz pokazuje 95
  • #27 10776145
    jousto
    Poziom 17  
    Ale kilka postów wcześniej wyświetlał aktualną temperaturę, pomimo że wyświetlacz nie działał prawidłowo. To był dobry trop czyli procedura komunikacji z czujnikiem działała właściwie. Należało tylko dopracować wyświetlanie.
  • #28 10776159
    lukasz_elektronika
    Poziom 13  
    spróbuj zwiększyć zakres pętli for np zamiast 125 wpisz 256 albo więcej
  • #29 10776472
    NewElektro
    Poziom 19  
    jousto napisał:
    Ale kilka postów wcześniej wyświetlał aktualną temperaturę, pomimo że wyświetlacz nie działał prawidłowo. To był dobry trop czyli procedura komunikacji z czujnikiem działała właściwie. Należało tylko dopracować wyświetlanie.



    tak, zaczął prawidłowo wyświetlać aktualną temperaturę, ale ze względu na przypadkowe połączenie ścieżek poprzez drucik znajdujący się na biurku, który przypadkowo się tam znalazł, wyświetlacz na chwile wyłączył się całkowicie, a po chwili pokazywała się temperaturę.
  • #30 10776594
    lukasz_elektronika
    Poziom 13  
    a tę diodę D1 odłączyłeś całkowicie?
REKLAMA