Fórum témák
» Több friss téma |
Hali! Pic-röl Itt sokmindent megtanulhatsz!
Igen, értem. Most nemrég lettem kész egy projektemmel, amiben 12 ic kapna helyet.. mivel a nyák készítése minimum 2 rétegben kellene, hogy történjen emiatt, gondoltam, hogy ezt már nem lehet így megoldani, illetve Proli is tanácsolta, hogy ezzel kezdjek foglalkozni.
Amit a picbe bele kéne égetni, az 1 darab 12 bites digitális komparátor, 2 darab 12 bites BCD (vagy bináris) számláló, BCD/7szegmenses kijelző konverter, talán multiplex kimenettel, 3 darab monostabil meg egy halom kapu. Gondolom ez mind bele kell férjen lazán.
A feladatot többször érdemes újrafogalmazod, amig megszületik a végső megoldás, a mikrovezérlők ismerete szárnyakat adhat...
Érdemes megismerkedni velük... Adott esetben több száz hagyomásos IC-t is kiválthatunk vele...
Melyik az a legkisebb PIC, aminek van két teljes értékű analóg bemenete és a Parsic is ismeri?
16F628 van csak itthon, de ennek sajna nincs. Milyet kéne vennem, ha a fentieken kívül 5-6 ki/bemenet kell még? (mármint összesen, nem típusonként)
Gyakorlásképpen csináltam egy 4 digites kódzárat, erről mi a véleményetek? Van ennél egyszerűbb mód is erre?
Elvileg időkorlátos a beírás, valamint helytelen karakterre reseteli az egészet.
Helló!
Ibutton rom kiolvasásra valaki tud valami okosságot? Egy indításgátlót jó lenne összehozni ibuttonnal. ![]()
Ez itt a PIC- Parsicos dolgok topic-ja, ha ezzel a segédprogrammal akarod megoldani, akkor kell írni egy szubrutint az "1-wire" rendszer szerinti adatkezelésre
ASM formátumba és ezt a parsic INLUDE modul segítségével lehet a programban utána tetszőlegesen használni...
Kis segítséget kérnék, ha lehet.
A cél az lett volna ezzel a kapcsolással, hogy a 4 lábat az analóg bemenetre érkező jellel egyenesen arányban gyújtsa ki. Bevallom, nem tiszta, hogy is kell a CALL rutinnál elkészíteni a tábláját. Ezt elmagyarázná valaki? Magyarul: mi mit jelent és hogy is kellene átírni, hogy a BV2 a fentieknek megfelelően adjon kimeneteket?
A táblázatban a baloldali szürke számok a bemenetet jelölik a jobboldali fehérek a kimenetet.Ha ilyen kimenetet csinálsz rakd át a displayt binarisra és ugy jelenik meg a jobboldali oszlop ahogyan a kimenet müködni fog és jobban megérted hogyan is müködik
Nézd meg ezt a filét
az volt a baj hogy sokkal nagyobb adat került a bv 2 re mint amit fel tud dolgozni
Aha, értem már.
Tehát amilyen érték a CALL bemenetére kerül azt a bankot hívja meg a táblázatban. Ekkor a bank tartalma kikerül bináris értékként a kimenetre. Ok, játszottam vele és már megy. Köszi!
Lenne egy gondom és erre nem tudok megoldást.
Egy programban a bejövő jelek számát meg kell szoroznom 188-al (160-190 közti érték lehet max) amit meg kell szoroznom 36al és azt elosztani 179861al. Az eredményt kellene ki íratnom LCDre. A bejövő jelek száma 26 és 5303 közt van. Ezt sehogy nem lehet 16bitben számolni. Egyenlőre csak elméleti szinten. Milyen megoldást javasoltok?
Szerintem szorozd meg simán 4-el. Nem hinném, hogy a sok művelet miatti kerekítés kevesebb hibát vinne a rendszerbe,szemben ha esetleg 32 biten számolnál...
Ha jól értelmezem a végeredmény 98 és 20000 között lenne, mi lesz ez patika mérleg? simán elmegy a pár % hiba...
bocs, elnéztem a hatjegyű számodat.
Szerintem fogalmazd meg a feladatot újra, többször is ... Ha jól számoltam a kijelzett érték "0.97" és 199 között lenne... Válassz esetleg gyakoribb jeladást és más időalapot...esetleg osszál 27-el...stb. Nem ismerem a konkrét feladatot...
Olyat csinált már valaki Parsiccal (ha egyáltalán kivitelezhető), hogy egy ADC bemenetet használhatok csak és ebből veszek mintát bizonyos időközönként.
Tehát van pl 2-3 analóg jelem, amit egy bemenettel szeretnék vizsgálni. Egy adott értéken belül kell lennie mindnek, tehát közös alappal lenne összehasonlítva. Amennyiben kiesik a tartományból bármelyik adjon egy kimenetet a cucc. A bemeneteket max 2-300ms-onként le kéne kérdezni. Ok, hogy több ADC bemenetű piccel megoldható egyszerűen, de a fenti módon kivitelezhető vajon?
A jeleket pl optóval kapcsolnám rá az ADC bemenetre a mérés idejére a pic kimeneteivel.
Megoldható, de akkor kivűlről kell kapcsolgatnod 300ms-onként a PIC-ből vezérelve valamit, meg tudatnod kell a PIC-el, hogy éppen melyiket vizsgálod (szinkronizálás)... el lehet vele tökölni, de szerintem (sz..ba vérontás), mig ezt leírtam addig a Parsic-al is megrajzoltam volna 3 bemenetre...
Vannak külön ADC chipek Pl amiket I2c vagy SPI buszon lehet lekérdezni... (tlc2574...stb)
Igazából azért érdekes a dolog, mert sok analóg jelet kellene vizsgálni, amihez egy nagyobb pic sem elég.
Melyik a legtöbb analóg jellel elbíró pic, amit a Parsic lekezel? (arra hány jelet lehet rávinni?)
No, az meg mifene...? Ilyennel még nem találkoztam. Ez valami ic?
Pl: 16F8876A,16F877A... 8db analóg bemenet
Ha ez nem elég, akkor két PIC és egymással UART-on kommunikálnak, vagy az előbb említett külső chip-es megoldás van amelyikbem 11-...14 db analóg bemenet is van...de a Parsicra kell egy ASM rutin ami kiolvassa a külső chipet és csak azután tudod ezeket az értékeket használni a PARSIC-al... Inkább a első megoldást javaslom...
Keress rá, 4051 vagy 4053 pdf datasheet (analóg kapcsoló, multiplexer,demultiplexer)...
Akkor marad a több pic.
Igazából az összekapcsolásnak utána kell olvasnom, mert azt még nem ismerem. A kapcsolásnap kb 15 analóg jelet kellene lekérdezni, és ha valamelyik nem jó, akkor pl kiírni kijelzőre egy hibaüzenetet esetleg a pontos mért értékkel. Ebben nekem még az is magas, hogy lehet megoldani a kijelzésnél, hogy legyen fix szöveg és mellette egy kiolvasott érték.
Én a "hiba" jelzést talán így oldanám meg
Az egyik PIC csak passzivan analógot mér és küldi az analóg jelek értékeit uarton folyamatosan a másik pic felé, egy drót elég hozzá, Tx-->Rx ...
A másic pic meg feldolgozza ezeket a byteokat a saját analóg bemenet byte-jaival együtt és kijelzi LCD-re is amit kell... 300 ms az mindenre elég... Van a topicban hasonló példa főleg az első 20 oldalon...
Válasz: szöveg , mellette kiolvasott érték
Esetleg próbáld meg előbb kevesebb bemenettel vagy egy PIC-el.
Sziasztok!
Egy olyan problémám lenne hogy UARTon csak 2 byte adatot tudok átvinni. Ha már hármat szeretnék akkor nem csinál semmit. Az adó egy 16F628A és csak 3 szálálót tartalmaz valamint az UART modult. Vevő oldalon pedig egy 16F877A ami egy LCD-re írja ki a 3 byte decimális értékét. Próbáltam az időzítő értékét atírni 200-ról 400ms-ra de semmi változás. Mi lehet a gond?
Ez csak elvi szinten, egy sebesség mérő lenne.
A kerék kerülete (188), órába való váltás (36), differenciálmű és spirál kihajtás közti áttétel (179861), alapján 10ms alatt beérkező jeleket(26-5303) számolja. Így 1-200 között km/h ban mutatná az értéket. Ennél jobban kerekíteni nem lehet, mert így is éppen benne van az 5%os eltérésben. Kerület 165/70 R13 esetén 1.884m Óra váltás: 3600s Áttétel: 1.7986111 Szóval a sok nulla miatt nem tudok 16 bitben számolni, pláne, hogy a tizedes számokat kerekíti. Ha jól értem, csak 32 bites pic használható, de azt a Parsic nem támogatja.
Ha a szorzásokat osztásokat elvégzed :
marad egy szám a 27 amivel egy egyszerű osztás megadja a végeredményt ! Ha a bejövő adatot 27- el osztod (egy művelet ) kész a teljes művelet !
Köszi mindkettőtöknek, így már értem a lényegét a kiíratásnak.
Persze, először arra kellene valamit összehozni, hogy egy 877 mérjen le 2 bemenetet, majd ezt küldje át a 628-nak. A szinkronizálást hogy lehet megoldani, ha csak egy szálat használok? Esetleg két 877, hogy itt is legyen analóg mérésre lehetőség? |
Bejelentkezés
Hirdetés |