Fórum témák

» Több friss téma
Fórum » PIC kezdőknek
 
Témaindító: Placi84, idő: Okt 3, 2005
Témakörök:
- A PIC ÖSSZES Vdd és Vss (AVdd és AVss) (tápfeszültség) lábát be kell kötni!
- A táplábak mellé a lehető legközelebb 100nF-os KERÁMIA kondenzátorokat kell elhelyezni.
- Az MCLR lábat, 10kohm-mal fel kell húzni a Vdd tápfeszültségre.
- Külső kvarc használatakor 4MHz-ig XT, a fölött pedig HS konfigurációt kell beállítani.
- Stabilizált tápegységet kell használni, a kapcsoló üzemű "telefon töltő" adapterek okozhatnak hibákat.
- Programozáshoz, használj lehetőleg PICKIT2 vagy 3 programozót. Kerülendő a JDM (soros porti) programozó.
- A PIC adatlapja (PDF), tartalmazza a lábak kiosztását és a PIC minden paraméterét. Az adatlap ingyen letölthető!
- Egyes PIC típusoknál az RA4 nyitott nyelőelektródás (Csak lefelé húz L szintre, H szintet nem ad ki!)
- Ha a PGM lábat digitális ki-/bemenetnek használod, az alacsony feszültségű programozási lehetőséget le kell tiltani.
Lapozás: OK   1007 / 1210
(#) gavioli hozzászólása Dec 30, 2017 /
 
Sziasztok.

Segítségre lenne szükségem. Nem boldogulok egy beadandó feladattal. Egy PICkit 2 Demo Boardot kellene assembly nyelven felprogramoznom, de nem jutottam semeddig, hiába fektettem az assembly nyelv elsajátítására sok időt.

Szóval a konkrét feladatom így szól: Amennyiben egy szoba hőmérséklete eléri a 40°C-t, akkor szólaljon meg egy piezo zümmer. Minden egyes egész Celsius fok emelkedésekor a piezo zümmernek egyre magasabb hangszínben (magasabb frekvencia) kell megszólaljon, egészen 50 °C-ig, tehát a lépték 1 °C-onként.

Rendelkezésemre áll az alábbi fejlesztőkörnyezet: PICkit 2 44-PIN Demo Board, ebben egy PIC16F887 mikrovezérlő van. Bővebben: Link

Megvásároltam a feladat végrehajtásához egy DS1820 (Dallas Semiconductor) hőmérséklet érzékelőt és egy Piezo zümmer Hangerő: 90 dB 3 - 30 V/DC-t.

Ezen kívül a szoftver az MPLAB IDE v8.76, ebben kell megírnom az assembly programot.

Rendelkezésre áll még a saját magam által készített kapcsolási rajz, ezt Eagle-ben csináltam. Tippnek kaptam olyat, hogy a legegyszerűbb megoldás a magasabb hangszín változtatásra a PWM használata. Sajnos semmilyen tapasztalatom nincs, órán LED-eket villogtattunk.

Amennyiben valaki tud nekem segíteni, azzal felvenném a kapcsolatot és megegyezés szerint honorálnám fáradalmait. Köszönöm. Szeged Környéki vagyok.
(#) sonajkniz válasza gavioli hozzászólására (») Dec 30, 2017 /
 
Aktív zümmert vettél?
Azaz olyat, ami rögtön hangot ad, ha tápfeszt adsz rá?
Mert ha igen, az így nem lesz használható. Passzív hangjelző kell hozzá. Vagy ki kell szedni az aktívból az elektronikát. A PWM csak feleslegesen bonyolítaná a dolgodat. A timer 2-es időzítővel elég széles pektrumban tudsz kapcsolgatni egy kimenetet PWM nélkül is, és a hőfok változásával csak PR2-őt kell módosítanod a hangszín változtatásához.
A hozzászólás módosítva: Dec 30, 2017
(#) don_peter válasza gavioli hozzászólására (») Dec 30, 2017 /
 
Ez azért egész szép kis feladat főként assembly-ben..
Igen biztosan PWM kell neked, de ehhez azért kell jártasság assemblyben.
Mindenképp ezt a nyelvet kell erőltetned?
(#) Pali79 válasza gavioli hozzászólására (») Dec 30, 2017 /
 
Próbálkozz! Ha elakadsz segítünk, de megírni helyetted nem fogja senki és abból nem is tanulsz. Kövesd János tanácsát, azon el tudsz indulni. Kreálj valamit aztán megnézzük.
(#) don_peter válasza Pali79 hozzászólására (») Dec 30, 2017 /
 
Ne érts félre, én csak szeretnék assembly-ben programozni, de az erő nem visz rá, hogy elkezdjem ezt is. Persze felületesen ismerem valamennyire.
A kérdés arra irányult volna, hogy C-ben esetleg tudok segíteni.
(#) sonajkniz válasza don_peter hozzászólására (») Dec 30, 2017 /
 
Miért akarsz egy kezdőt PWM-es hangkepzésre rávenni?
A hangmagasság változtatásához mindjárt 2 regisztert kell piszkálni egy helyett, kötött lábon mehet ki a jel, regiszterrel kell ki-be kapcsolgatni, plusz mindenféle beállítást igényel. Ha csak a timer2-őt használja, mindössze a flag bitet kell figyelni,(vagy megszakításból figyeltetni) és egy kimenetet billegtetni. PR2-vel meg állítható a hang magassága.
Mivel a feladat mindössze annyi, hogy X időnként beolvassa a DS adatát, és megfejtse belőle a hőmérsékleti értéket, (ami mondjuk bonyolultabb a PWM-nél, a megszakításnál, és az A/D konverziónál együttvéve) így a PIC ráér bíbelődni szoftveresen is a frekvencia előállításával.
(#) don_peter válasza sonajkniz hozzászólására (») Dec 30, 2017 /
 
Azt hiszem a megszakítás illetve a timer beállítása is van olyan bonyolult mint a PWM.
Mind kettőhöz kell türelem és nem árt némi tapasztalat sem.
Kérdés, hogy mennyire lesz hajlandó nekiállni bármelyiknek is..

Ja és persze az sem nem mindegy, hogy önálló gerjesztéssel rendelkezik e a piázója vagy azt is figyelembe kell venni.
(#) nedudgi válasza gavioli hozzászólására (») Dec 30, 2017 /
 
Az MPLab 8.76 még tartalmaz hibákat, az utolsó hivatalos verzió 8.92. A feladat kizárja a frissítést az utolsó verzióra?
A 44pin Demo Board tartozéka a PICkit Starter Kit CD, ez tartalmaz egy tonna példát assembly nyelven. Ez megvan, átnézted?
(#) Pali79 válasza don_peter hozzászólására (») Dec 31, 2017 /
 
És egy önálló terjesztésű piezót, hogy szeretnél rávenni különböző magasságú hangok kiadására?
(#) don_peter válasza Pali79 hozzászólására (») Dec 31, 2017 /
 
Ezt most nem nekem kell megoldanom. De ettől függetlenül csináltam már ilyet, nem is olyan régen, mikor az okos kupakot csináltam. Hardveresen és szoftveresen is megoldható a dolog. De ez most ügye nem rólam vagy rólad szól.

De hogy ne legyen teljesen OFF, abban segíthetnél pl., hogy miképpen lehet ILI9341 TFT kijelzőn megjelenített képernyő adatait beolvasni. Szeretnék képernyő fotót készíteni, de eddig még nem jöttem rá, hogy olvassam be a teljes kijelzőt. (persze ha be lehet egyáltalán)
A hozzászólás módosítva: Dec 31, 2017
(#) ktamas66 válasza gavioli hozzászólására (») Dec 31, 2017 /
 
Én elgondolkodnék még a CCP modul "Compare mode, toggle output on match" üzemmódján. Ezzel tudnál változó frekvenciát előállítani kb. 50%-os kitöltési tényezővel.
(#) ktamas66 válasza don_peter hozzászólására (») Dec 31, 2017 /
 
Nem csináltam még ilyet, de nincs ennek valami "Memory Read" parancsa?
(#) Pali79 válasza don_peter hozzászólására (») Dec 31, 2017 /
 
Egy aktív piezó ha áramot kap dudál, ha nem kap nem dudál. Oda hiába adsz bármilyen jelet nem fog különböző magasságú hangokat kiadni.
(#) don_peter válasza ktamas66 hozzászólására (») Dec 31, 2017 /
 
Közben Bakman fórumtársunk küldött egy linket, emlékezett, hogy Attila86 már szenvedett hasonlóval. Megnézem mire jutott. Más a vezérlő, de remélem nincs nagy különbség.
Van amúgy read parancs, az adatlapot már át bányáztam, de abból felépíteni nem olyan egyszerű... Talán 0xC0 parancs az olvasásé...
(#) don_peter válasza Pali79 hozzászólására (») Dec 31, 2017 /
 
Igen-igen, félre értettem valamit. Én is sima piezóval dolgoztam..
(#) ktamas66 válasza don_peter hozzászólására (») Dec 31, 2017 /
 
Nem inkább a 2Eh?
(#) don_peter válasza ktamas66 hozzászólására (») Dec 31, 2017 /
 
Memory Read (2Eh)
Read Display Pixel Format (0Ch)
Igen benne van a 0x2E is, de én a pixel olvasásra gondoltam.
Bár lehet az teljesen más, majd kipróbálgatom..
(#) pajti2 válasza don_peter hozzászólására (») Dec 31, 2017 /
 
Ha olyan kijelződ van, aminek a memóriáját nem csak írni, hanem olvasni is tudod, akkor még egy pixelenkénti karakter felismerőt kell ráraknod. Ha ismertek a pixel mátrixok, és a pontos pozíciók, ahova kirakod a karaktereket (mert a programodban tudod, hogy máshova nem rakod ki), akkor sima byte-onkénti ellenőrzéssel visszanyerheted a karaktereket. És hogy milyen parancsokkal? Megírod az egészet egyben, és egy do_it() végül megcsinálja
(#) sonajkniz hozzászólása Dec 31, 2017 /
 
Találós kérdés.
Miért regisztrál valaki egy fórumra, tesz fel egy kérdést, ha utána nyomban kilép, és nem kíváncsi a válaszokra?
Újabb Zsombi jött közénk?
(#) ktamas66 válasza sonajkniz hozzászólására (») Dec 31, 2017 /
 
Talán már megkapta a választ (és megegyezett a honoráriumban ). Csak mi ötletelünk a megoldási lehetőségeken, de az eredeti kérdés az volt: ki oldaná meg helyette.
(#) gavioli hozzászólása Dec 31, 2017 /
 
Sziasztok,

beállítottam, hogy kapjak értesítést, ha hozzászólás érkezik, de mivel nem kaptam emailt, ezért nem néztem rá a fórumra, de nem tűntem el ez a lényeg. Most belépéskor meglepődve tapasztalom mennyi segítő kéz van, köszönöm előre is.

Nos, ha már senki nem ajánlotta fel, hogy megírja helyettem a programot, akkor majd én megírom, de kelleni fog segítség, mert az összes teljesítményem eddig, hogy sikerült különböző ledeket bekapcsolni a panelen. De mégcsak nem is a nyomógombbal.

Gépészmérnök BSc-m van, de most elkezdtem egy Mechatronika mérnök MSc-t csinálni, oda kell a feldadat, és az utolsó határidő január 8 a leadásra. Szóval van 1 hetem.

@sonajkiz: Aktív zümmer? Nem tudom megmodani, ebben is kérek segítséget. De nem fogok örülni, ha nem lesz jó, mert az eszköz nem volt drága, de a kiszállítási díjjal együtt már jelentős. Nos a pontos típusa Ario LF-PB24W34A Bővebben: Link

@don_peter: muszáj assembly, a tanár megadta, hogy hot mit kell használni, ha elviszem a beadandót, kompatibilisnek kell lennie a sulis szoftverrel.

@nedudgi: igen, muszáj ezt a verziót használnom a sulis szoftverrel történő kompatibilitás miatt. CD-m nincs, ha lenne, biztosan előrébb lennék, összesen 3-4 ledvillogtató programot néztünk meg órán és ennyi volt a segítség.

Az én kérdésem, hogy elkezdjem a programot:
- mivel vizsgálom meg hogy mennyi a hőmérséklet? BTFSC, BTFSS?

Eddig az alábbi oldal adott némi támpontot:
http://www.t-es-t.hu/elokep/pic/felhkk.htm

Szóval ezért kértem a segítséget. AZ említett CD tonnányi példaprogrammal megvan valakinek?

BUÉK kollégák!
(#) Pali79 válasza gavioli hozzászólására (») Dec 31, 2017 /
 
Egyszerű kipróbálni, hogy aktív-e. Adj neki pár volt feszültséget, ha dudál akkor aktív és nem lesz jó neked ebben a formában. Vagy veszel másikat vagy kiheréled.
Ami a hőmérséklet vizsgálatát illeti lehet ezzel is azzal is attól függ merre tovább. Az utasítások leírását megtalálod a mellékelt pdf-ben.
(#) sonajkniz válasza gavioli hozzászólására (») Jan 1, 2018 /
 
BUÉK!

Idézet:
„Az én kérdésem, hogy elkezdjem a programot:
- mivel vizsgálom meg hogy mennyi a hőmérséklet? BTFSC, BTFSS?”

Nem szívesen keserítelek el így újév első napján, de az általad választott DS1820-as hőmérséklet érzékelő nem az az eszköz, amit némi ledvillogtató alapismerettel le tudnál kezelni. (kattins ide)
Ha már kicsalogattad belőle, és dekódoltad a hőmérsékleti adatot, akkor már viszonylag könnyű dolgod van. Csak a teljes hőfok értékkel kell foglalkozz, ezért a tizedesek dekódolása számodra fölösleges. A kapott hőmérsékleti értékből kivonsz 40-et. Ha a kivonás végén a STATUS regiszter Carry bitje 1, akkor a hőmérséklet elérte, vagy meghaladta a 40 fokot. Indíthatod a hangjelzést. A kivonás eredményét használd a frekvencia módosítására. Sajnos, ha nincs valamilyen kijelzésed, (pl. LCD) nem igazán fogod tudni, hogy tényleg beolvastad-e és helyesen dekódoltad az adatot. Gyanítom, a tanárod egy egyszerűbb, analóg jeladójú szenzorra gondolt, (pl. ilyenre) amit egy analóg bemeneten olvasol, egy másik analóg bemenetre kötött potival pontosítasz, és egy valamilyen hőmérővel hitelesítesz.
A zümmerről annyit, pattintsd le a hátulját. Ha találsz benne chipet, vagy gerjesztő tranzisztort, azt szedd ki. Ha van benne induktivitás, azt viszont használd fel. Hangosabb lesz tőle.

Jó munkát!
(#) Bell válasza gavioli hozzászólására (») Jan 1, 2018 /
 
Egy téli szünetre kiadott feladatnál talán elegendő megfelelő jártasság a kapcsolatos szakirodalomban és a forrásra való hivatkozás esetén megengedett konkrét, mások által közzétett mintaprogramok részleteinek adaptálása is.
Például: Bővebben: Link, vagy Bővebben: Link
A hozzászólás módosítva: Jan 1, 2018
(#) don_peter válasza sonajkniz hozzászólására (») Jan 1, 2018 /
 
De azért debugolni tud, szóval a kijelzős résztől annyira nem kell neki félnie..

gavioli: C nyelvet azért ismered?
Mert abban rengeteg példa programot találsz az említett hőszenzorra és abból már talán ki tudod hámozni, hogy miképpen írd meg rá a lekérdezést.

Ja és mindenkinek BUÉK!!!
A hozzászólás módosítva: Jan 1, 2018
(#) Bell válasza gavioli hozzászólására (») Jan 2, 2018 /
 
A kijelzéshez pofás lenne zenei - valamilyen hangszer, pl. zongora által keltett - hangokat rendelni.
(#) hapci válasza Bell hozzászólására (») Jan 2, 2018 /
 
Inkább csengőt, vagy harangot...
(Gondolom, ez még a szilveszteri hangulatból jött: szegény az alapokkal küzd, de már nyakán a határidő.)

Köszönöm a múlt évi segítő tanácsokat, a Fórumtársaknak sikeres, boldog új évet kívánok:
Csaba
(#) hapci válasza gavioli hozzászólására (») Jan 2, 2018 /
 
Az alábbi linkben az EXAMPLE 14 hasznos lehet a feladat egyes részeihez:Bővebben: Link
(#) gavioli hozzászólása Jan 2, 2018 /
 
Kedves Kollégák,

bár segítettetek, de úgy néz ki nem fog menni a határidőre történő teljesítés. Most jöttem rá, hogy kapcsolási rajzom alapján hiányoznak alkatrészek (A DS1820-nak kell egy 4,7k ellenállás), szóval még az eszközpark sincs meg a fejlesztő környezethez. Már szinte kizártnak tartom, hogy az elkövetkezendő 4 napban értékelhetőt tudjak felmutatni.

Mindenkinek köszönöm a támogatását.
(#) nedudgi válasza gavioli hozzászólására (») Jan 2, 2018 /
 
Ha megakadsz valahol, ne add fel! Keress kerülő utat, és eléred, amit nagyon akarsz.
A demopanelon ott van egy potenciométer, ha jól emlékszem.
Amennyiben minden más rendben van, életet lehet csiholni a projektbe, kicsit kerülő úton.
A potméter segítségévl szimulálni tudod a hőmérséklet változását az A/D átalakítás segítégével.
A program nagy része így belőhető.
Közben lesz idő arra is, hogy kitaláljuk, honnan lehet egy nyüves ellenállást kikaparni. Ez az érték igen gyakori. Ráadásul a DS18B20 működését nem nagyon befolyásolja, ha egy kicsit eltér az értéke. Hosszabb átvolságokra 1k ellenállást is használnak.
Megpróbálkozhatsz azzal is, hogy olyan lábra kötöd a PIC-en, ahol van (bekapcsolható) felhúzó ellenállás.
Következő: »»   1007 / 1210
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem