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 ![]() 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 |