Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
A múltkor felvetődött a DS182x-ekkel történő 1-wire kommunikáció CCS C-ben. Nos, én ma délután nekiültem, mert nekem is szükségem volt ilyesmire, a meglévő kvarcórámba kellett hőmérsékletkijelzést építeni, és ehhez egy DS1821-et vettem elő. A mellékelt kódokból látható, hogy tisztán C-ből is meg lehet korrekten oldani a dolgot.
A Dallas tápellátását az egyik portláb adja, így energiatakarékoskodási szempontból akár teljesen ki is kapcsolható, amikor nem akarunk hőmérsékletet mérni. Nálam jelenleg 10 másodpercenként történik egy mérés, a közbülső időben csak a standby áramot (2-3uA) fogyasztja a Dallas, ami nem olyan vészes, ezért ezt nem használtam egyelőre ki. Az érzékelő egy kb 10m-es árnyékolt mikrofonkábel (viszonylag vastag) végén lóg, és a kommunikáció teljesen stabilnak tűnik.
Hát ez iszonyat bonyeszos lett. Nekem ezzel a 16F726-al nem akar menni, a 18F458-al simán ment, most fogom átrakni egy 18F452-re megcsináltam hozzá a felületszerelt panelt, csak kicsit nagy lett, mert a 44 lábat terítettem ki két oldalra ami egy 6 centi hosszú panelt eredményezett, és mivel a feliratokat is rátettem, ezért 6*6-os lett a panel, ami a próbapanelre háááát elég szűkösen fér el. Azután sok időm nem volt, mert ugye karácsony is volt, meg ps3-ra vettünk egy little big planet nevű gamet, ha valaki veszi a fáradságot hogy utánaolvas rájön hogy mivel megy az idő mostanság.
De most már összerakom ezt a 18-ast és megnézem ezzel megy e, azután egy 16f877-et is kipróbálok, hogy kiderüljön tényleg csak azzal az egy nyomorult ic-vel nem megy e, azután majd megírom mi lett a vége.
Sziasztok!
Van egy PICkit 2-m, amihez járt egy PIC16F690 is. Gondoltam, kicsit játszok vele, és megirtam a következő programot:
Ez elvileg annyit csinálna, hogy a PORTA bemenetére kapott adatokat átmásolja a PORTC-re. Működik is szépen, egy kivételtől eltekintve: Ha az RA2 lábra rakok egy minimális töltést, (mondjuk a két karommal összekötöm a táppal, tehát a logikai 1-et bőven nem éri el) akkor is másodpercekig világit azután is, hogy a kezemet elvettem. Ha dróttal kötöm össze, (tehát adok neki kb. 5 voltot), akkor már 7 mp-ig világit magátől. Megnéztem, hogy milyen szerepe van ennek a lábnak és rájöttem, hogy a komparátornak valamije rá van kötve. Hogy mi az a komparátor, azt csak sejtem. Ha az be van kapcsolva, talán okozhat ilyesmit. Hogyan lehet lekapcsolni? De az is lehet, hogy hülyeséget irok és valami teljesen más okozza ezt a jelenséget. Ti találkoztatok már hasonlóval? Mi volt a megoldás? Szerk: A kódommal valami csúnyaság történt, pedig én kódtegek közé raktam... Mindjárt csatolom fileként. Szerk2: Csatoltam.
Szia
Ha egy lábat nem kötsz se a tápra (H) se a földre (L), és az inputként használod, akkor az értéke bármi lehet. És mivel az éterben vannak elektromos zavarójelek és maga az elektronika is okoz zavarjeleket, így az értéke nem meghatározható. Ha a kontroller lába felhúzó ellenállású, akkor lehet a lábon alapból H, de a kézzel való érintés során nem csak a zavarjelek mennek át mint antenna, hanem nagyfeszültségű szikra is, föleg, ha puloverben tapizod. Szóval tegyél oda egy felhúzó, vagy lehúzó ellenállást 10Kohm, akkor stabilabb lesz a jel (és ezt büntetlenül használhatod, a digit jelnek a 10Kohm nem akadály)
Király. Megirtam a választ, erre át lett helyezve az egész ide és ezért nem küldte el.
Egyébként ha van megfelelő témabesorolás és konkrét kérdés, akkor miért ne nyithatnék neki külön topikot, amit tudok pontozni is? Na mindegy. De látom, a kódom is ki lett javitva. Azért köszönet. Nem hiszem, hogy a zavarójelek okozzák, mert ahhoz túl szabályos a viselkedés. És nem az érintésemre reagált, hanem arra, hogy a testemmel összekötöttem a táppal. Ha dróttal kötöm össze (nagyobb feszültséget kap) akkor tovább marad úgy. És az is a zavarójelek ellen szól, hogy a többi láb nem viselkedik igy. És lenne még egy kérdésem. (Nem nyitok neki külön topikot, mert sejtem a sorsát. :sonic Ha egy láb kimenetre van állitva és logikai 0-át küldök ki rajta, de rákötöm a tápot, (tehát a logikai 1-et) akkor az károsithatja a PIC-et? Elsőre hülyeségnek hangzik, mert egy kimenetre állitott lábra nem szokás feszültséget kötni. Igazság szerint valóban hülyeség, de esetemben jó lenne, ha lehetne... (A kimeneten nem csak 0 hanem egy is lehet, amikor rákerül a tápfeszültség. Remélem, egyik sem okoz a PIC-nek gondot.)
Azért olyan nagyon bonyolult nem lett, mivel a gyári rutinokat vettem elő és pofoztam kicsit át, valamint egyetlen rutin (get_temp()) csinálja a hőmérsékletlekérdezést. Az összes többi maga az óra.
Aha látom. Így persze sokkal barátságosabb. Köszi ki fogom próbálni.
"Ha egy láb kimenetre van állitva és logikai 0-át küldök ki rajta, de rákötöm a tápot, (tehát a logikai 1-et) akkor az károsithatja a PIC-et?" Ilyet ne tégy, mert könnyen elénekelheti a "hattyúdalát"
A kimenetnek az a szerepe, hogy adott logikai szinttel meghajtson egy áramköri részt. Ha Te oda tápot teszel, akkor ő nem tudja rákényszeríteni a megfelelő szintet ( viszont túl nagy áram alakulhat ki, amit nem tud elviselni!!)! De ha szeretnéd, hogy néha tápfesz is kerülhessen az adott lábra, akkor olyankor mindig kapcsold bemenetnek a lábat ( nem tudom mit akarsz, de valószínűleg megoldható a problémád felhúzóellenállással!). Steve
Heloo
Ez jó hosszú lesz remélem lesz aki végig olvassa Egy 4csatornás áram és feszültségmérőt építek, egyenlőre egy 16f877 az agy, de ez redukálódni fog egy kisebb picre mivel nagyon sok kihasználatlan erőforrás van benne. Problémákba ütköztem egy két helyen ezért kérem a véleményeteket. Az első (nem is annyira probléma) dilemmám hogy jól oldottam-e meg a feszültség mérést? Feszültség osztóval 25voltot 5voltra csökkentek. A feszültséget 1 tizedesig szeretném mutatni, ezért a 10bites(1023) eredményt tulajdonképpen elosztom 4el és akkor kapok 255öt. Ezt konvertálom bcdbe és az lcdre kiírom a százasokat és a tizeseket, kiírok egy pontot és végül kiírom az egyeseket, ami ez esetben a tizedes. Ez a módszer, kisebb javításra váró hibákkal, csak arra lennék kíváncsi hogy ez helyes módja a megoldásának? Hogy tudom megakadályozni hogy 5voltnál több kerüljön a bemenetekre? Egy-egy zener dióda elég a feladatra? Eddig csak 5.1voltosat láttam, az az 1 tized volt elhanyagolható? A következő gondom hogy az analóg lábon összegyűlő zavarok miatt változik a mért adat ami az lcdn úgy jelentkezik hogy 2 érték között ugrál a kijelzett érték. Persze ez olyan gyorsan hogy csak annyit lát az ember mintha 2 számot egymásra írtak volna. Próbáltam úgy megoldani hogy timer megszakításokban írok csak az lcdre vagy hogy akkor mintavételezek az analóg csatornán de semmi változás nem lett. Erre mi a megoldás? A 16f877es picen épp van 8 analóg csatorna (4 feszültségre és 4 áramra) de ha kisebb picet használnék kevesebb analóg bemenettel akkor egy analóg multiplexerrel megoldható a bemenetek sokszorozása? Áram mérésére eddig semmi ötletem nincs, egy két tippet kaphatok hogy hol kezdjem a keresést? Előre is köszönöm a válaszokat...
Hogy a kutyamindenségibe ne működne... Szerintem igen.
A PICSTART + az MPLAB-ből vezérelhető. Az MPLAB windows-os alkalmazás. Ha a windows nálad megy, akkor a többi, gondolom következtethető...
Ez zavart meg : " The following minimum configuration is required run the MPLAB IDE : PC compatible Intel Pentium class system " ezt a Microchip honlapjan olvastam.
=Intel pentium osztályú=Intel pentium fejlettségű.
Koszonom segitsegeteket , de jo lenne ha olyasvalaki szolalna meg aki AMD chipsettet hasznal .
Idézet: „Eddig csak 5.1voltosat láttam, az az 1 tized volt elhanyagolható?” Nem "elhanyagolni" kell, hanem az adatlapon előírtakat ellenőrizni és betartani! Pl. a PIC16F690 adatlapjában ez áll: a lábakra -0,3V és VDD+0,3 V közötti feszültség kapcsolható. Ha VDD=5V, akkor az 5,1 V belefér a specifikációba. Idézet: „A következő gondom hogy az analóg lábon összegyűlő zavarok miatt változik a mért adat” Árnyékolás, szűrés, több mérés átlagolása... Idézet: „ha kisebb picet használnék kevesebb analóg bemenettel...” PIC16F690 12 db. analóg bemenettel nem jó? Idézet: „Áram mérésére eddig semmi ötletem nincs” Áram-feszültség konverter... Idézet: „Megnéztem, hogy milyen szerepe van ennek a lábnak és rájöttem, hogy a komparátornak valamije rá van kötve.” Nézd meg az adatlapot! Úgy tudom, hogy a PIC16F690-nél RESET-kor kikapcsolódnak/letiltódnak az analóg komparátorok.
A feszmérés rendben van. Az 5.1V-os zener is jó.
A villódzást csak úgy lehet megszüntetni, hogy ritkábban jelezteted ki. (megszakításban még egy számlálót indítasz és így meg lehet nyújtani az időket.) Az áram mérést át kell alakítani feszültségméréssé, azaz egy áram/feszültség átalakítót kell építeni egy OPA-val (pl. MCP6294) és ezt a feszültséget mérni.
Erdekes, hogy a "PC comtabile" nem zavart, csak az "Intel Pentium Class"
Amugy azt szabadna kerni, hogy a "Valasz" gombra kattintva valaszolj, hogy lehessen latni mire is valaszoltal?
Sziasztok.
Kezdő vagyok, és tanácstalan. Milyen PIC-et ajánlotok, ha összesen 7 dolgot kellene róla kapcsolni ( low és high jelszintet), kellene egy potméter állapotát A/D porton bevezetni (viszonylag gyorsan, mert szervó jelezne vissza), és kommunikálni kellene neki egy másik PIC-cel két vezetéken, soros átvitellel? 1 PWM port sem ártana neki...
Pl. PICkit2 Starter Kit (PIC16F690)
Persze, az sem mindegy, hogy milyen programnyelven akarod elkövetni a fejlesztést, kell-e hardveres debug, milyen sebesség kell, milyen méretű a program, mennyi adatmemória kell?
Sziasztok!
Lenne egy gyors kérdésem. Ezen a programozón milyen szerepet tölt be az a poti? Bővebben: Link
En a helyedben el sem gondolkodnek ezen, az egy un. JDM tipusu programozo, ami erosen kerulendo!
HElló!
itt találtam ezt a kapcsolást az oldalon. Megépítettem és műkszik, csak nemtom mire jó a poti.
Hátha "műkszik", de "nemtom" mire jó, akkor ne is foglalkozz vele! :bummafejbe:
Köszönöm a válaszokat icserny, watt!!
Ez a áram>fesz átalakító sokat segített, bár műveleti erősítőkkel nem vagyok jóba úgyhogy szenvedés lesz bőven
Köszi!
Programozáshoz nem értek, meg nem is az én feladatom. Nekem csak az áramkört kellene megoldani, amivel lehetne... Idézet: „Nekem csak az áramkört kellene megoldani, amivel lehetne...” Akkor "add tovább" a kérdéseket, mert ezeket tisztázni kell, mielőtt megteszed az első kapavágást... |
Bejelentkezés
Hirdetés |