Fórum témák
» Több friss téma |
WinAVR / GCC alapszabályok: 1. Ha ISR-ben használsz globális változót, az legyen "volatile" 2. Soha ne érjen véget a main() függvény 3. UART/USART hibák 99,9% a rossz órajel miatt van 4. Kerüld el a -O0 optimalizációs beállítást minden áron 5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás 6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et Bővebben: AVR-libc FAQ
Hú. Amit javasolt az horror áron van. Milyen távolságra vihető el ez a DS szenzor? Nekem, 2-3m kellene.
Amúgy az iparban legalábbis ahol én tevékenykedem hűtés/fűtés-ben szinte mindenhol NTC/PTC érzékelőket használnak 1m és 12m távolságok között.
A Mikroc a ludas. A fordítást debuggolva, csak az analóg csatorna számát viszi át paraméterként az ADMUX regiszterbe és tölti rá.
Nem állítja a két biten a referenciát, ill. rosszul állítja be. tursaba
Visszatérve az utolsó kérdésemhez, ha inkább DS érzékelőt választok vagy lm35 (ez van is otthon) ezeket milyen messze lehet vinni a paneltől?
Nos sikerült összehozni a hőmérséklet mérést NTC -vel. A lényegi részek a kódból:
A Homers változót már csak formázni kell és 0,1°C pontossággal kíírja a hőmérsékletet. Persze ez a pontosság az NTC pontossága. Több mérést is végeztem és feszültségeket ellenőriztem minden stimmelt. Az ADC-t fizikus irása alapján 'tanultam meg. Bővebben: Link Ezúton is nagyon köszönöm! A fordítással először bajba voltam, de megoldottam. Kell az -lm paraméter és a libm.a is. Szóval tudásomhoz képest egyenlőre elégedett vagyok.
A NTC/PTC inkább hőérzékelésre és nem hőmérőre való. A Pt100/Pt1000 sem olyan, hogy elviszem x méterre és ellenállást mérek Bár a Pt100/Pt1000 egész használható...
A DS18x20 elvihető 30 méterre is akár... Digitális a jelfolyam, így a bekötés hibái nem kavarnak be (ha nagyon elbénázod, a CRC úgyis kimutatja ) Az analog LMxx chip esetén a mérési pontosság jobb, de a mérővezeték hibája bejátszhat (a 0.5 fok esetén elhanyagolható). Csak tipp: A DS18x20 chip esetén folyamatos mérés, 5V táp esetén a saját hőtermelése is torzítja a mérést 0.1...0.7 fok közt volt, elrendezéstől, környezettől függően... Keresztkérdés: mit szeretnél mérni és a kapott eredményt mire használni? (abszolut vagy relativ hofok kell?)
Keresztválasz:
A fűtésem előremenő és visszatérő hőmérsékletét szeretném mérni. Arra használnám, hogy ha az előremenő 35 °C alá vagy 45°C főlé emelkedik akkor leállítom a szivattyút és riasztást küldök. Valamint mérem a dT hőmérsékletet. Tudom, hogy NTC-vel nem váltom meg a világot, de nem életmentő felszerelést felügyelek vele és eddigi próbák alkalmával teljesen jónak bizonyul. Egyébként kíváncsiságból szétszedtem egy nem éppen olcsó szobatermosztátot és abban is NTC fityeg. De mivel fecsigáztál összefogom hasonlítani LM35 és DS18xx elemmel is. Kíváncsi vagyok az eltérésekre. Szerk.: Ja igen, ugye fontos a mérési taromány is. Nos ez nálam 5-60 °C.
[off]Közben nagynehezen szétvágtam az egyik vezérlőm érzékelőjét. KTY81-121 van benne jó alaposan kiöntve műanyaggal. A KTY érzékelőről mi a véleményetek?
A linearis (feszultseg kimenetu) erzekelokkel egyszeru homeroket lehet csinalni. Ilyen a LM35, MCP9700A, TC1047A. Olcsok es megbizhatoak. A kimenetuk 10 mV/C meredeksegu, tehat barmely 10 bites AD-val rendelkezo uC-vel feldolgozhato a jeluk. En 2.56 V Vref mellett hasznalom (PIC), nem tudom az AVR ezt hogyan tudja csinalni. Ezzel a Vref-el 10 bites AD-nal 1/4 C felbontast ad a meres. Lenyeges, hogy az erzekelo taplabaira egy 100 nF kondit ra kell kotni, es a kimenettel sorba kell kotni egy 1k ellenellast, mert kulonben gerjedekeny lesz a vezetek kapacitasa miatt. igy el lehet vinni akar tobb 100 meterre a jelet, mert a vezetek ellenallasa nem fogja befojasolni a merest. Persze ajanlatos arnyekolt kabelt alkalmazni, es a uC bemeneten egy RC alulatereszto szurot tenni (1k-100nF). En sokat hasznalok ilyen erzekeloket ( MCP, TC) es teljesen korrekt merest lehet vele csinalni. Ja es mellette meg olcso is. Annyit esetleg meg lehet csinalni, ha pontosabb merest akarsz, akkor csinalni kell egy linearizalo algoritmust (MCHP AN1001).
Köszönöm a korrekt választ. AVR is hasonlóan működik mint az általad írt PIC. Gondolom azért használsz MCP, TC érzékelőt mert nálatok az inkább elérhető. Az, hogy olcsó érdekes kérdés. Sajnos nekem most drága még a 400 forintos LM35 is.
NTC talán ott rossz, ha gyors hőmérséklet változásokat kell lekövetni. 17 °C-ról 60 °C-ra gyorsan felment viszont vissza csak lassan áll be. LM35-el a másik bajom a 3 vezeték. Ezért is kérdeztem a KTY érzékelőket mert azoknak elég kettő. [off] Egy kis fogalmi kérdés. Hőmérséklet esetén mit neveztek érzékelőnek és mit mérőnek? Ahogy látom az analóg eszközöket érzékelőnek hívják míg a digitális eszközöket mérőnek. De mi a fogalmi határ? MCU esetén szerintem nagyon nem mindegy.
KTY adatlapot lesd meg. Elég vacak a görbéje...+abszolut ertekben pontatlan.
erzekeles: jelet ad vissza. Meres: szamszerusitheto eredmény szuletik Szerintem....
A méregdrága ERSA pákák hidegpontját KTY diódával mérik. Ennyire gagyi lenne?
Na jó, ahol 450°C-os pákahőmérsékletek vannak ott mit számít az a 2-3 foknyi hiba... Idézet: „Hőmérséklet esetén mit neveztek érzékelőnek és mit mérőnek?” "Sensor" anglisul, amit magyarra erzekelonek lehet forditani. A mero a muszaki metodusban altalaban valamilyen mero eszkozt takar, de nem erzekelot. A MCP9700A ara azert nem olyan nagy a CHPCD listaar kb 70 magyar forint plusz ifa. En azert hasznalom ezt, mert: 1.: legutobb vettem egy marekkal, 2.: sokkal olcsobb mint az ajnarozott LM35 es a DS18B20, 3.: egyszeru a feldolgozasa. Amint irtam, 2,56 V Vref eseten a feldolgozas C-ben Ez a homersekletet a 2675 formaban adja vissza. Helyes kijelzeshez osztani kell 100-al. De nekem a kijelzo rutinom ilyen, es jol jelzi ki a homersekletet. Ja a Vref egy TL431 es 2 ellenallas + egy poti. Stabil referenciat ad, es szinten olcso.
A pákánál a 360+/- 2 fok nem számottevő. Ha 0,1 fok kellene, akkor Pt 100 lenne és a páka ára meg magasabb (elektronika miatt).
Hát igen... főleg hogyha nagyobb felülethez teszed a pákát, akkor a hegy akár 100 fokot is esik, néhányban ezért még hideg pontot sem kompenzálnak.
Hali Mindenkinek!
Végképp elakadtam a vezeték-nélküli kommunikációval. 2db RFM70-el szeretnék kapcsolatot létrehozni. A regisztereket, írom és olvasom, de mégse jön össze a dolog.ASM-ben programozok. Aki veszi a fáradságot és segít megoldani a fennálló problémámat, annak felajánlok 2 db modult/illetve a rajta levő chippel szerelt modult.(nRF24L01). Visszajelzéseket privátban kérném. Üdv Kiborg
Ránézésre nem látok hibát, az órajelet a projekt settingsben beállítottad? Netán a makefileban?
Sziasztok!
Normális jelenség az, hogy egy Atmega8-16PU VCC lábán 100mA, AVCC lábán meg 170mA-es áramfelvételt mérek?
Persze, ha a PORTC lábait jobban terheled mint a többit. Normálisnak normális, max. nem egészséges...
És még mielőtt a tanult kolléga bemásolná az idevonatkozó szabványt, lábanként 15-20mA,
portonként 100mA lehet a max. terhelés. Azaz ha a a PORTC-n ennél nagyobb akkor valami nagyon leszívja...
Már fölvettem egy fórumtársunkkal a kapcsolatot ezügyben, neki van nagyfesz programozója.
Üdv. E.
Igen, a projekt settings-ben be van állítva.
8 Mhz-es belső kvarc.
És lehet programozni? Mekkora feszről megy?
Lehet programozni. 5 voltról megy. Baleset történhetett vele addíg próbálgattam. Felforr a stabil ic.
Sziasztok!
Kezdőként az ember számtalan problémába belefut. Egyenlőre NTC érzékelőt használva kapcsolok egy relét. Egy bizonyos hőmérséklet alatt bekapcsol a relé felette pedig kikapcsol. Ez működik is. Viszont néha-néha gyorsan következik be a hőmérsékletváltozás (1-2 perc) és a relé ki be kapcsolgat. Erre írtam egy függvényt ami nem engedi, hogy 5 percen belül visszakapcsoljon a relé. Ezt a főprogramba tettem. Viszont míg várok erre az 5 percre addig megáll a program így egyéb események kezelése sem következik be. Pl.: gombnyomás vagy hőmérséklet folyamatos kijelzése. Ha jól sejtem ezt a késleltetést egy megszakításba kellene tennem. De nem tudom, hogy hogyan és melyikbe. Ebben tudnátok segíteni?
Csak, hogy ne érezzétek, hogy csak kérdezek, de nem gondolkodom:
Arra gondoltam, hogy létrehozok egy RLY_wason vátozót. Alap értéke 0. Mikor az ADC értéke a beállított szint fölé megy akkor ugye bekapcsolom a relét. De mielőtt bekapcsolnám megkellene hívnom egy ?megszakítást? ami megnézi az RLY_wason értékét. Ha 0 akkor azonnal engedi bekapcsoli a relét, ha 1 akkor elindít egy várakozást 5 percig majd indul a relé és RLY_wason visszaáll 0 értékre. Én valahol itt látom a megoldást. Vagy rossz nyomon járok?
Sziasztok egy ATmega32-őt szeretnék usb-én a számítógéphez kötni ehhez a v-usb-t szeretném használni de van egy olyan gondom hogy a mintaprogramokat sem tudom lefordítani mert mindig ezt írja ki :
Idézet: mit tudnék ezzel kezdeni? ( Beírtam keresőbe, dobott is rá ki pár példát. Meg szerintem megoldást is, de nem tudtam értelmezni silány angol tudásom miatt.) „Build started 13.4.2012 at 20:01:13 avr-gcc -mmcu=atmega32 -Wl,-Map=USBhidmouse.map main.o -o USBhidmouse.elf main.o: In function `usbFunctionSetup': C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:111: undefined reference to `usbMsgPtr' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:111: undefined reference to `usbMsgPtr' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:114: undefined reference to `usbMsgPtr' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:114: undefined reference to `usbMsgPtr' main.o: In function `main': C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:141: undefined reference to `usbInit' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:154: undefined reference to `usbPoll' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:155: undefined reference to `usbTxStatus1' C:\Documents and Settings\Bubuka\Dokumentumok\Downloads\Compressed\vusb-20120109\examples\hid-mouse\default/../firmware/main.c:159: undefined reference to `usbSetInterrupt' make: *** [USBhidmouse.elf] Error 1 Build failed with 8 errors and 0 warnings... ”
A probléma itt kezdődik:
Idézet: „C:\Documents and Settings\Bub” Az elérési útban nem lehet szóköz...
Áttettem máshová ott is ugyan ez a helyzet nem ez volt a probléma.
|
Bejelentkezés
Hirdetés |