Fórum témák
» Több friss téma |
Fórum » PIC - Miértek, hogyanok haladóknak
Persze, ha a potival jó, akkor a megfelelő ellenállásokkal is jó lesz. Ez mióta PIC kérdés?
PIC-hez kellene, de igazad van a kérdésben semmilyen PIC-re utaló kérdés nem volt, de hogy ne csak offoljak:
16F690-nél melyik a 1-wire lába? Vagy nincs neki meghatározva és bármelyiket fel lehet használni?
Nincs 1wire láb, ezt le kell programozni, az adatlap(hőszenzor) szerint. A legjobb egy olyan lábat választani, ami nyitott drain-es. A 16F690-nél ilyen láb ha jól emlékszem nincs. A megoldás az, hogy bemenetté kell konfigurálni és állandóan L szintet kell beállítani a Port kimeneti bitjére(és soha nem szabad magasra vezérelni!), és a TRISx megfelelő bitjével kimenetté kell konfigolni, amikor alacsony szintet akarunk, azaz adatot akarunk kivinni, megszólitani a szenzort. Így nem ütközhet soha a hőszenzor kimenetével, ha netán az alacsony szintű. Az 1wire vonalon elvileg van felhúzó ellenállás, ha jól emlékszem...
Mindkét általam próbált progiban lehet, és termésuetesen be is állítottam, enélkül a PIC felismerés sem működött (volna), sőt műszerrel "port check" is rendben volt, és mégsem oké a dolog. Holnap este meg fogok próbálni egy 16F628-ast csak úgy kiváncsiságból
Szerintem az 1wire kommunikációt egy általános célú ki/bemenettel valósítják meg, tehát nincs erre a célra elkülönített láb. Bővebben: Link
Most olvasom: http://wattmep.tvn.hu/pic_prog/PIC_pro_net_v03.html tényleg 22pF, ezt biza (sréviza) elnéztem, holnap este PIC és kondi csere egy próba erejéig
Igaz már csak kiváncsiságból, mert mérgemben és mert watt is ajánlotta rendeltem egy PK2 klónt az eBay-en. Bővebben: Link
Köszönöm a leírást, igaz a nagy részét nem értettem
Találtam egy kész progit a hőszenzorhoz amit akarok használni, csak furcsálltam hogy sehol se írják a PIC adatlapján a 1 wire lábat ezért kérdeztem.
Köszönöm a linkeket! Végül is rájöttem hogy elég egy 32 bites négyzetgyökvonás is. Találtam egy szimpatikus rutint:
Bővebben: Link De valami nem stimmel... Milyen parancs az a "movfp"?
Ezt a PIC17C43 utasításkészletében kell megnézni, a begyűjtött rutinodat ugyanis arra írták.
A TB040 alkalmazási mintapélda (Fast Integer Square Root) nem volna alkalmasabb helyette? Bővebben: Link
Szia!
Az első sorban említik, hogy a rutin egy 17C42 típusú pic -re íródott, adatlapjában le van írva a movfp és movpf...
Valóban. Átírogattam, remélem működni fog. Viszont nem tudom lefordítani a programot emiatt:
Idézet: „Error - section '.udata_acs' can not fit the section. Section '.udata_acs' length=0x00000067” Ha kevesebb regisztert definiálok akkor le tudom fordítani, de akkor meg bizonyos rutinokat nem tudok használni. Miért nem tudok több regisztert elnevezni és lefoglalni a memóriából?
Nézegettem ezt is és szimpatikus is lenne, csak nem értem hogy mely részt kellene nekem kimásolnom a pdf-ből. Mert elvileg 16 bites és 32 bites gyökvonás is van benne, nekem csak a 32 bites kellene és egyenlőre még nem sikerült rájönnöm hogy ez mettől meddig tart.
Az Sqrt32-től a RETURN-ig tart a 32 bites gyökvonás, de kell mellé az Sq16 nevű négyzetre emelő függvény is. Tehát végeredményben az Sqrt32 címkétől kell a lista végéig.
Az udata_acs az ACCESS blokkor jelenti. Ennek kötött (és nagyon korlátozott) a mérete. Amit nem muszáj ide tenni (bankolható), az ne ide tedd, hanem a sima udata szekcióba!
Sziasztok
Szeretnék használni egy 16F690-est és hozzá egy LCD-t, de az LCD-n nem látok semmit. Az alap CCS-es LCD parancsokat használom az lcd.c-ben, ott átírtam a tetején a portB-s részt portC-re, úgy kötöttem be ahogy a szürke kommentben volt csak a C portra. AZ LCD lábán mérve megvan a vezérlő és LCD tápfesz, RW láb földön van, RS lábon 5V, de az engedélyező lábon nincs meg az 5V a PIC lábán mérve se. A fő program csak ennyi:
Ez tuti, hogy működik mert LED villogtatással is kipróbáltam. Ennyit változtattam az lcd.c-ben, ezt írtam át portB-ről.:
Valamint beledobtam egy delay clock... sort. A PIC adatlapja szerint a C port öszses lába general purpose I/O, szóval működnie kellene.
Miért nem a flex_lcd -t használod? Annál nem portfüggő a bekötés. A kontraszt potit próbáltad?
Ha az LCD-n nem látsz semmit, akkor az inkább kontrasztbeállítási probléma lesz. Földhöz képest 0.5 V körül keresgélj. Ha nincs potmétered, akkor pedig egyszerűen max. 1 kohm-mal kösd le a földre! Legalább a felső sorban látni kell halványan a karakterek 5x8-as téglalapjait! (vezérlés nelkül is...)
Az E lábon alaphelyzetben alacsony szintnek kell lenni, csak rövid időre fut fel magas szintre (néhány us-os impulzus). Az tehát kifejezetten jó, ha nem 5 V-ot mérsz rajta!
flex_lcd ről még nem hallotam, de utánanézek, kontrasztpotit is csavargattam semmi eredmény, az is jól van bekötve, 4V körül van rajta a fesz.
Most megpróbáltam flex_lcd-vel szintén semmi. De most kiszedtem az lcd-t és az engedélyező lábon 2,85V-ot mérek az elején utána semmit. Lehet, hogy kinyírtam azt a portot?
Bővebben: Link
A kontraszt lábon (Vo) olyan 0.5-0.6V-kell lennie. A portokat próbáld ki leddel. Idézet: „az is jól van bekötve, 4V körül van rajta a fesz.” Most írta icserny, hogy 0,5V kellene ott lennie! Ha semmit nem látsz, annak semmi köze a portodhoz! Első körben láss sötét kockákat a felső sorban! Idézet: Mondom, hogy fél volt körül keresgélj! Az adatlap szerint a Vdd-Vo az, ami tipikusan 3,7 V, azaz a +5 V-os táfeszültségnél ennyivel kell kisebbnek lennie Vo-nak. „jól van bekötve, 4V körül van rajta a fesz.”
Előbb kezdtem el írni, minthogy láttam volna, hogy mit ír, elküldés után frissült csak az oldal. Most már letekertem a potit, látszanak is a karakterek, csak nem az amit kiküldtem, csupa o betü szerűség meg néha más karakterek is, most épp ugyanannyi karakter van mint amit én beírtam. A 4 adatvezeték jól van bekötve meg is mozgattam őket, újra az eredeti lcd.c-t használom. A 4-8 bites váltást automatikusan megcsinálja a PIC vagy az LCD?
Az a programtól függ. Itt semmi nem automatikus, csak amit a programban megírtál. Meg kell nézni a rutint, amit alkalmazol, hogy 4, vagy 8 bitesre van-e írva, esetleg beállítható-e valahol a fordítás előtt, hogy milyen módban működjön.
Tudtommal az LCD.c eleve 4-bites üzemmódra van megírva, tehát várhatóan ennek megfelelően tevékenykedik.
Hali. Egy KMZ 10C típusú HALL szenzorral szeretnék mérni jeleket PIC segítségével. Tudom hogy nem alkalmas ez a téma rá, de nem találtam emgfelelő témát, eligazítást szeretnék kérni. Nem tudom hogyan is kell bekötni, stb.
Szia!
Olyan pic -et válassz, amiben van A/D konverter. A legtöbben 10 bites van, de a 18F2423, 18F15553 stb. típusokban 12 bites a konverter. Az érzékelő és a pic A/D bemenete közé egy műveleti erősítőből kialakított differenciál erősítőt kell tenni, ami az érzékelő kimenő feszültségét 0 .. 5 V (a táp a referencia), vagy 0 .. Vref (külső referencia esetén) közé képzi le. Ügyelni a táp és a föld vezetékek elrendezésére, a mérőkör vezetékein más egységből származó áram ne menjen át... Adatlap
Én PIC 16F877Ara tippeltem, ill. ehhez szeretném illeszteni. Ehez a hall szenzor működéséről-bekötéséről, valami téma, mert nekem, nem tiszta, most foglalkozok először ilyennel.
Simpi: Igen, ez még az, de már vettem 2 ilyen szenzort, és valamilyen elektronikát utánaépíteni, nem nagy dolog. (attól függ milyen az az áramkör)
PIC12f683-as MCU-nál a következő a bajom.
12-17V közötti tápfeszt akarok mérni (akkufigyelés elemlámpához) a fesz.osztó a következő: 12V---100K----AN0----22K---GND Így az AN0 lábon 2.5 volt körüli értéket tudok feldolgozni A/D-vel. A Pic 4Mhz belső oszcillátorról megy, az A/D pedig 1:64-es osztással, tehát a lehető legtöbb ideje van a mérésre... A mérés eredménye mégis nagyokat ugrál. akár 10-15%-al is eltérnek az eredmények. Ez így használhatatlan. Mi lehet a baj? Talán a feszosztón folyó 0.1mA túl kevés? Mennyi lehet a minimum? A gond az, hogy az áramkör nyugalmi áramát növeli a feszosztó folyó áram. Ezáltal az akku kisüti önmagát.
Tegyél egy 100nF kondenzátort az analóg bemenet és a GND közé, a lehető legrövidebb mindkét lábhoz, hogy a PIC alacsony impedanciával lássa a mért értéket.
Az sem jó, ha túl lassú az átalakítás, be kell úgy állítani a frekvenciát, hogy a gyári ajánlott értékek közé essen. Idézet: „A gond az, hogy az áramkör nyugalmi áramát növeli a feszosztó folyó áram. Ezáltal az akku kisüti önmagát.” Egy fettel (BS170) megoldható hogy csak a mérés idejére kapcsolódjon rá az osztó az akkumulátorra. Az osztó méretezésekor viszont vedd figyelembe az A/D bemeneti impedanciáját is, ami nevetségesen alacsony (kb 2,5kOhm). Az A/D beállításait pedig alaposan át kell nézi ahogy Potyo is írta, a túl sok idő sem jó! Az ugrálást még okozhatja a digitális részek áramfelvétel-ingadozása, ezen a nyák csillagpontos huzalozásával lehet javítani. |
Bejelentkezés
Hirdetés |