Fórum témák
» Több friss téma |
Sziasztok, már hónapok óta, kisérletezek, de nem igazán találok megoldást. Szeretnék építeni egy precíz páratartalom és hőmérséklet mérőt, naplózót keltetőgéphez. Van egy PIC16f876os kontrollerom és egy DHT22es szenzorom. Rengeteget túrtam neten, de nem igazán sikerült eddig senkinek (főleg nem assembly-ba). Szerintek a lehetetlennel próbálkozok?
A hozzászólás módosítva: Jún 10, 2015
A szenzor adatlapját nézted? Digital e relative y humidity & & t t t t e emperature .../DHT22
Mi az amit nem tudtál megcsinálni, és mi az amit próbáltál? Mert, azt írod, hogy: Idézet: „Rengeteget túrtam neten, de nem igazán sikerült eddig senkinek (főleg nem assembly-ba). Szerintek a lehetetlennel próbálkozok?” Szóval inkább valami kész megoldást keresnél? Esetleg más procira se találtál? Mert viszont az adatlapot átfutva nem biztos, hogy túl bonyolultnak tűnik, bár a puding próbája az evés mégha ez a mondás nem is illik teljesen ide, de szóval lehet hogy kipróbálva adódnak problémák... viszont nem írtad, hogy hol akadtál el...
Szia!
A pic más de azt könnyű módosítani : Bővebben: Link
A gond:
A pic kell hogy mérje a jelek hosszúságát és el kell, hogy döntse, hogy a bit pozitív volt(1) vagy negatív(0). Én idáig itt akadtam el.
Szerintem a TMR regiszterekkel kell játszadozni.
Nekem van ilyen érzékelőm, és sikerült is működésre bírni. Assemblyben nem tudok segíteni Én XC8-ban oldottam/másoltam le, egy 18f4550-en grafikus kijelzőre tette ki az értékeket. Ha kell ebben tudok segíteni, mármint a forráskód ezzel kapcsoltos részét oda tudom adni.
Nagyon megköszönném. Lehet hogy ki tudok hozni belölle valamit.
Íme:
A pic 20Mhz-es kavicsal megy.
A mainban pedig ez van:
Ha valamit kihagytam, akkor kérdezz, mert kiollóztam egy nagyobb projektből, lehetséges, hogy valamit kihagytam. Ebben a projektben, van még a picen egy pár dolog. BMP085, BH1750, HMC5883L, DS1624 és a DHT22-es.
Annyit még elfelejtettem írni, hogy ez a kód DHT21-el lett próbálva, de elvileg a kettő kompatibilis egymással, ha jól tudom.
Ennek a program alapján próbálom feléleszteni a DHT22-őt ...
Kevés sikerrel ... Találtam a kódodba egy részt amit nem értek ... Idézet: „3.#use delay(clock=48000000)” Előtte meg azt írod hogy 20MHz az órajel Én 8Mhz-s belső oszcival próbálom (PIC16F887), gondolom akkor a Idézet: részt módosítanom kell, ha jól számoltam akkor 479-re? „42. if (get_timer1() > 1198)”
Sziasztok!
Van egy PIC12F629 kontrollerem, amivel szeretnék egy DHT22 szenzort használni, viszont sehogy sem sikerül normálisan kiszednem bellőle az adatot. Annyi működik rendesen, hogy jelzem a szenzornak hogy kérném az adatot, ő pedig elkezdi küldeni, de ennyit sikerült 100%-ra megcsinálnom. A data busz magasra van húzva. MCU-val lehúzom 2ms-ra majd fel és átteszem a lábat bemenetnek. A szenzor ezután 80us -ra alacsonyra majd 80us-ra magasra húzza. Ezután mikor már lehúzza elkezdi adni a jelet. Keresgéltem kódokat XC8-ra de nekem nem teljesen érthetők, így pedig nem szeretném használni. Valaki fel tudna világosítani hogy miként is kéne ezt kezelni? A TMR0-m 1 lépést 1us alatt számlál, szóval azt gondoltam mérésre használni. Az én ötletem: Miután bemenetnek állítom a lábat, 80us-ra alacsonyra majd 80us-ra magasra húzza (itt ellenőrizhetem hogy reagált e a szenzor vagy se) Magas állapotban várok amíg magas, majd várok amíg alacsony, amikor ez megváltozik, elindítom a timert, amikor megint alacsony, leállítom a timert, megnézem mennyit számlált és eszerint eldöntöm hogy 0 vagy 1 volt a bit. Ez elméletben mennyire helytálló? Proteusban próbálgattam de nem igazán látnám hogy működne. Köszönöm !
A 1-wire buszon minden slot elején a lefutó élet a master állítja elő.
1-wire Communication with PIC |
Bejelentkezés
Hirdetés |