AD převod u PIC16F877A
Moderátor: Moderátoři
-
Honzista
AD převod u PIC16F877A
které? Jednou větou píšeš, že potřebuješ program s popisem, a druhou, že program i všechny dostupné popisy máš:) ... rád ti poradím, ale musím vědět, co přesně...
Dobré teplotní čidlo na připojení k AD převodníku je třeba LM35, SMT160 samozřejmě budeš připojovat na _digitální_ vstup a počítat střídu. Nejradši používám čidla DS18S20 (DS18B20), ty komunikují po OneWire a jsou dost přesná - ale nemám na ně pro PIC knihovnu, jenom pro AVR a i tu jsem si musel upravovat.
-
Tatanka_x
Tatanka_x píše:Když už se bavíte o teplotních čidlech -> jaký nejdelší kabel(stíněný) se dá na to použít ?
Zalezi od protokolu a rozhrania aky pouzivas, pre priklad, ja mam na COM port cez I2C pripojene teplotne cidlo vonku, dlzka kablika asi 5m a netieneny! Su to len 4 lakovane drotiky skrutene
-
Návštěvník
-
Honzista
Reakce
istrasil píše:> pořád mi nejsou jasné nějaké principy
které? Jednou větou píšeš, že potřebuješ program s popisem, a druhou, že program i všechny dostupné popisy máš:) ... rád ti poradím, ale musím vědět, co přesně...
Dobré teplotní čidlo na připojení k AD převodníku je třeba LM35, SMT160 samozřejmě budeš připojovat na _digitální_ vstup a počítat střídu. Nejradši používám čidla DS18S20 (DS18B20), ty komunikují po OneWire a jsou dost přesná - ale nemám na ně pro PIC knihovnu, jenom pro AVR a i tu jsem si musel upravovat.
1) samozrejme ze vystup pripojis natrdo na dig. port PICu
2) na tom portu proste meris stridu. To se da udelat nekolika zpusoby, pokud ti zalezi na rychlosti, musis merit zvlast kazdou periodu - tj. hlidat sestupnou a vzestupnou hranu (idealni bude, kdyz to zapojis na pin, ktery ti muze aktivovat preruseni) a napr. na kazde hrane precist a na vzestupne hrane vynulovat casovac. Podil ulozenych hodnot casovace pri sestupne/pri vzestupne hrane udava stridu. Jestli to nemusi byt rychle ani prilis presne, staci v pravidelnych intervalech vzorkovat, jestli je na vystupu cidla jednicka a kdyz je, do nejake promenne pricist 1. Hodnota promenne/pocet vzorkovani = strida.
Rozdil mezi cidly za 20 Kc a za 150 Kc je v presnosti a v komunikacnim protokolu. Treba ja jsem od prirody liny a protoze se mne nejlip dela s DS18x20 cidlama, tak je kupuju, i kdyz stoji 60 nebo 80 Kc. Ale jsou celkem presny, maji rozliseni skoro na setiny stupne a da se jich navesit spousta na jeden pin procesoru. Je ale jasny, ze treba na spousteni vetraku u chladice nebo podobne nenarocny ukol pouziju termistor za petku.
Ad reference - co mas za referenci je v podstate jedno, musi te zajimat a) stabilita (zase zalezi na tom, jakou presnost pozadujes) a b) merene napeti musi byt mensi nez referencni (pokud je zaporne referencni nula a je to bezny aproximacni prevodnik, jaky byva v MCU; nektere jine prevhodniky berou treba referencni napeti za polovinu rozsahu apod. - nutno vzdy kouknout do datasheetu). Idealni je, kdyz se referencni napeti rovna nejvyssimu napeti, ktere muzes dostat na vstupech, ale ve spouste pripadu naprosto staci, kdyz to upnes na napajeci napeti, kde mas nijak skvele stabilnich a presnych, ale presto relativne slusnych 5 V.
Napis, k cemu to bude! Bez tehle informace holt dal neporadim, nema smysl tady vypisovat neco, co nepouzijes.
Dalé
Měření teploty chci použít pro vytvoření ŘJ na solární systém. Tzn. přesnost měření není nijak kritická, snímání stačí cca po 2 sek. a samozřejmě čidel potřebuji připojit více. Znovu jsem bádal v Datasheetu k SMT čidlu a již jsem dokonce pochopil i ten vzorec
Re: Dalé
Chenzee píše:Zda 0 je 1Khz a 100 jsou 4Khz nebo jak to je???
pytla, ted datasheet se musi nejenom prohlizet, ale i cist:)
Jde o DUTY CYCLE, cesky střídu, tj. pomer doby signalu v log. 1 k celkove dobre periody. Ze ta vystupni frekvence neni stala je v podstate jedno.
Chenzee
tatous píše:pokud uvažuješ o SMT, zkus se podívat na http://www.hamradio.cz/aprs/digined/dig ... /index.htm
istrasil píše:Treba ja jsem od prirody liny a protoze se mne nejlip dela s DS18x20 cidlama, tak je kupuju.
Pročítal jsem datasheet k čidlům DS18x20 (moje AJ je v plenkách
-
istrasil.
istrasil. píše:Existuje funkce pro vyhledani vsech zarizeni pripojenych na onewire - SEARCH ROM. Tim si zjistis postupne adresy vsech cidel, nekde si je ulozis do RAM a pak komunikujes pomoci tehle adresy primo s tim cidlem.
Tomu bych rozuměl, ale jak potom poznám, že čidlo s tímto kodem je na vstupu do zařízení, s tímto kódem je na výstupu a s tímto kódem je třeba u čerpadla???
no, to nepoznáš - musí si to hlídat firmware, třeba si ukládáš do EEPROM čísla čidel původně nalezená Search ROM spolu s jejich funkcí a když najdeš nové, tak se zeptáš uživatele co s ním.
Žádný leták k čidlu nedostaneš, naposledy jsem viděl papírky u germaniových tranzistorů Tesla, kde byly záruční podmínky:))
Tak a teď k tomu pinu s otevřeným kolektorem. Ten jeden pin u PICu, který umí jen otevřený kolektor, je spíš archaismus od prvních typů a je zajímavý pouze tím, že přežije zvnějšku napětí 8,5 V.
Ostatní piny PIC jsou totiž třístavové (vlastně čtyřstavové), umí: úroveň H, úroveň L, vysokou impedanci (vstup) a vstup s pull-up rezistorem. A když ti stačí jenom vysoká impedance a úroveň L, tak vidíš, že můžeš OneWire emulovat na všech pinech jenom s vnějším pull-up rezistorem.