Program przepisałem całkowicie z http://student.agh.edu.pl/~coni/avr_1wireobsluga.pdf zmieniłem tylko port na PC5.
Najpierw podłączyłem dobrze i otrzymywałem takie coś:
No w moim mieszkaniu to tak ok 24°C.
Potem wyciągnąłem układ i wpiąłem źle (odwrotnie masę z zasilaniem). Zaczaiłem, że jest coś nie tak jak się prawie oparzyłem o ten układ. No i teraz nie wiem czy układ jest uwalony. Ma rezystancje pomiędzy nogami zależną od polaryzacji - do GND + do zasilajacej i jest 1,1 MOhm a odwrotnie to 13,5 MOhm.
Układ w tym momencie działa tak: nic nie otrzymuje na terminalu z rs232 bez względu czy jest podpięty do zasilania czy pasożytniczo.
Jednak gdy odepnę DS18B20 zasilanie to wywala to:
Czyli to samo jak przedtem i teraz nie wiem czy wcześniej otrzymałem to samo bo kabel był luźno czy dlatego otrzymuje teraz to bo układ jest popsuty.
Zmodyfikowałem jeszcze program i dodałem do else coś żeby wysyłał i właśnie cały czas jest wykonywany tylko else.
Schemat:
Kod
temp.h
temp.c
rs232.h
main.c
Umieszczam jeszcze pliki programu (koniec linii Linux)
Najpierw podłączyłem dobrze i otrzymywałem takie coś:
-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\
No w moim mieszkaniu to tak ok 24°C.
Potem wyciągnąłem układ i wpiąłem źle (odwrotnie masę z zasilaniem). Zaczaiłem, że jest coś nie tak jak się prawie oparzyłem o ten układ. No i teraz nie wiem czy układ jest uwalony. Ma rezystancje pomiędzy nogami zależną od polaryzacji - do GND + do zasilajacej i jest 1,1 MOhm a odwrotnie to 13,5 MOhm.
Układ w tym momencie działa tak: nic nie otrzymuje na terminalu z rs232 bez względu czy jest podpięty do zasilania czy pasożytniczo.
Jednak gdy odepnę DS18B20 zasilanie to wywala to:
-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\0x00-16.1\0x00\0x00\
Czyli to samo jak przedtem i teraz nie wiem czy wcześniej otrzymałem to samo bo kabel był luźno czy dlatego otrzymuje teraz to bo układ jest popsuty.
Zmodyfikowałem jeszcze program i dodałem do else coś żeby wysyłał i właśnie cały czas jest wykonywany tylko else.
temp.h
Kod: C / C++
temp.c
Kod: C / C++
rs232.h
Kod: C / C++
main.c
Kod: C / C++
Umieszczam jeszcze pliki programu (koniec linii Linux)