Fórum témák

» Több friss téma
Fórum » Folyamatábrás mikrokontroller programozás Flowcode-dal
Lapozás: OK   75 / 360
(#) Kovabe válasza babuka hozzászólására (») Okt 20, 2012 /
 
Hát bövebben a célom egy motor fordulatszámszabályzó épitése amit egy szervo csatorna vezérel. Az impulzusszéllesség adja meg a fordulatszámot.
(#) Gagyicom hozzászólása Okt 24, 2012 /
 
Tisztelt Fórumozók!
Elkezdtem csinálni egy hall érzékelő működését imitáló egyszerű áramkört és a hozzá tartozó programot. PWM jelet használok fix kitöltési tényezővel és period regisztert állítom adc függvényében. Az a jelenség, hogy magas frekvencián változik a kitöltési tényező, hiába van fixen megadva. Élesben még nem néztem szkóppal csak szimuláltam. Ha valaki esetleg tudja mi a gond, legyen kedves megosztani velem.
Előre is köszönet.

Flowcode3.fcf
    
(#) babuka válasza Gagyicom hozzászólására (») Okt 24, 2012 / 1
 
Nem adhatod meg a kitöltést fixen ha a period változik.
Kettő egymással szorosan összefügg.
Próbáld meg így.
A hozzászólás módosítva: Okt 24, 2012
(#) Gagyicom válasza babuka hozzászólására (») Okt 24, 2012 /
 
Köszönöm, eszembe sem jutott ez a megoldás. Szimulációban tökéletes, holnap megy a szkóp tesztje.
(#) Kovabe hozzászólása Okt 24, 2012 /
 
Sziasztok feltenék egy progit, ezzel tudok normál modban frekit mérni?

imp.fcf
    
(#) babuka válasza Kovabe hozzászólására (») Okt 26, 2012 /
 
Szia,
Igy szerintem nem.
Ha a kitöltés megegyezik a frekivel sokmindent nem fogsz mérni
(#) fatti.tomtom válasza attis71 hozzászólására (») Okt 26, 2012 /
 
Szia attis71! Csináld így! Példa is letölthető, készen, megírva...
Bővebben: Link
Üdv!
fatti
(#) fatti.tomtom hozzászólása Okt 26, 2012 /
 
Üdv minden Fórumozónak!
Kis segítséget szeretnék kérni...
Egy SIM900 modult tanulmányozok éppen. PC-vel RS232-n keresztül,
ClearTerminal-lal, MAX3232 szintillesztéssel utasítgatom
különböző feladatokra. Ezzel nincs is semmi baj. Következő viszont az
lesz, hogy Flowcode v5-ben fogom ugyan ezt tenni, csak a PC-t egy
PIC-el helyettesítve. Ha valaki tud egy-egy "pársoros" példaprogramot
belinkelni egy hardveres USART használatára, szerintem jó néhányan érdeklődve
tanulnánk belőle... A matrixmultimedia oldalán van GSM modul és
annak tananyagai (EB066), de sajnos szinte semmi használható,
példaértékű fcf fájlt nem találok hozzá.
Megköszönve segítségeteket...
fatti
(#) kkrisz75 hozzászólása Okt 28, 2012 /
 
Srácok, kellene kis infó. Lehet nem is ide kellene írni, de hátha valaki dolgozott már vele.

Szeretnék egy Lakás/garázs riasztót csinálni.
Az a rész, hogy ha kinyitnak valamit és szirénázzon nem jelent gondot, szimpla kapcsoló vezérlés.

A fő problémám, hogy távirányítóval kellene tudnom kapcsolni. Nem taglalom miért maradt ez a megoldás és nem a billentyű kombináció vagy rejtett kapcsoló.

Láttam a HEStore-ban RF modulokat és távirányítókat. Használta már valaki? Hogyan tudom megoldani, hogy ki be tudjak a távirányító gombjaival kacsolni kimenetet?

16F877A és 18F4550 PIC van tartalékba. Nyilván azt használnám amelyik szükséges hozzá.

A program természetesen Flowban készülne.
(#) djadji válasza kkrisz75 hozzászólására (») Okt 28, 2012 /
 
Hello!
Nemrégiben akartam én is RF-ekkel dolgozni, de egyszerűbb megoldást találtam. Vettem az Ebay-en egy auto-távirányító egységet. 12Vról működik, nyit, zár, és semmi dolgod vele (10-15 dolcsi)
(csak egy javaslat)

Az lenne az én kérdésem, hogy comparátort szeretnék használni egy 16f628A-val. A programot raknám össze, de el sem tudtam kezdeni.
Van erre valami FlowCode-ban vagy C-ben kell intézni? (akkro nem keresem).
(#) djadji válasza djadji hozzászólására (») Okt 29, 2012 /
 
Használt már valaki Comparátor FloweCode alatt?
Nekem nem sikerül.
Valaki segítsen már ki, hogy miért nem megy?
Elvileg annyit kellene beírnom, hogy
TRISA= 0b00000000;
CMCON = 0b00000100;
De nem is érti miről beszélek. Valaki tud nekem segíteni?Az már csak haba tortán, hogy nem tudok hivatkozni, vagy lekérdezni a CMCON C2out bitjét. Hogy kell ezt? Valaki segítene?
(16f628A a PIC)

(#) djadji válasza (Felhasználó 15355) hozzászólására (») Okt 29, 2012 /
 
Köszönöm, ezt még nem találtam meg...
Az a furcsa (most vettem észre), hogy az összes flowecode programomban (és szerintem a tiétekben is) benne van a C-re fordított *.c-ben:
CMCON = 0x07;
sor, ami a komparátor kikapcsolását jelenti. Na most ha van a kódban kikapcsolás, akkor szerintem valahogy lehet azon változtatni (nem hinném, hogy fixen benn van, hogy kapcsolja ki), de nem találok semmi ilyesmit a project option-ban sem, és máshol sem.

Egyetlen hülye kérdésem lenne: Hogy hivatkozok a CMCON regsiter, 7dik, C2OUT nevű bitjére? CMCON.C2OUT? Vagy valami más módon? (mondjuk egy IF elágazásban Cben, és hogyan tehetem meg ezt ugyanezt a Flowcode-ban egy elágazásnál? Vagy ezt ugyanígy csinálom? nem egészen értem.. bár a linken amit adtál, egész jól le van írva (köszi még1x...)
Bár ezt a test_bit parancsot nem ismerem még... keresés alatt...

Sztem Kval is jó és Cvel is. Az egyik "magyar", mint a fájl, a másik meg angol, mint a file...
A hozzászólás módosítva: Okt 29, 2012
(#) babuka válasza djadji hozzászólására (») Okt 29, 2012 /
 
Ha sikerül összehozni, akkor egy apró példaprogramot tehetnél fel.
(#) kaqkk válasza (Felhasználó 15355) hozzászólására (») Okt 29, 2012 /
 
Csak csendesen jegyszem meg , ez már nem angol hanem kínai !
(#) silent15 hozzászólása Okt 29, 2012 /
 
Sziasztok, szeretnék építeni egy terebélyesebb led projectet, és ehhez szeretnék 74HC595 shiftregisztereket használni, a kérdésem az lenne, hogy valaki tudna e küldeni egy mintaprogramot kapcsolási rajzal? Nagyon hálás lennék érte. A legjobb az lenne, hogyha a 4 pic kimenet , több shiftregiszterre kapcsolódna.

Köszi!
(#) Norberto válasza silent15 hozzászólására (») Okt 30, 2012 / 1
 
Hello!

ITT találhatsz egy kapcsolási rajzot. Erre már csak mintaprogramot kell írkálnod és gyakorolni...

ITT is van egy másik projekt.

3. projekt

Google-val találtam a linkekre, kb. 3 perc kereséssel és amit beírtam:

pic18f 74HC595 >>> keresés képek között >>> kapcsolási rajzokat kerestem
A hozzászólás módosítva: Okt 30, 2012
(#) silent15 válasza Norberto hozzászólására (») Okt 30, 2012 /
 
Igen, az elsőt énis megtaláltam, de például a másodikat nem, nagyon szépen köszönöm, nagyon jók!!! Most pedig elvonulok tanulmányozni.
(#) kkrisz75 válasza silent15 hozzászólására (») Okt 30, 2012 /
 
Én is ezt használom az órában.

Nagyon egyszerű de minta programot hiába küldök, mert alkalmazástól függ a kialakítása.
3 láb elég a vezérléshez.

Milyen segítség kell? Mit nem értesz?
(#) silent15 válasza kkrisz75 hozzászólására (») Okt 30, 2012 /
 
Szia, egyenlőre még semmit sem értek, mert igazán normális leírást nem találtam, de mostmár így kezd összeálni...
(#) silent15 válasza kkrisz75 hozzászólására (») Okt 30, 2012 /
 
Szia, még anyit hagy kérdezzek, hogy mit hova kell kötnöm, például, az órajelet hogy adom ki a csipből, és melyik lábon?
(#) djadji hozzászólása Okt 30, 2012 /
 
Működik a c *omparator. Bár most nem otthon vagyok, ezért csak azzal tudom tesztelni, amit magammal hoztam (két ellenállás és egy poti)
A programot mellékelem. Bár még nem egészen tökéletesen tiszta minden... de működik.
A villogás az elején azért van, hogy lássam elindult e a PIC (voltak vele gondok a szállítás után).

* c = k tehát komparátor, amíg a magyar felületre írsz !
A hozzászólás módosítva: Okt 30, 2012
(#) djadji hozzászólása Okt 30, 2012 /
 
Lenne egy kérdésem. Az jutott eszembe, hogy, ahogy tekerek fel egy potit, úgy világít egy ledsoron egyre több led (mint egy hangerő, pl...). Ezt egy ADC-vel oldanám meg, de 16F628A-t használok, ebben nincs ADC.
Hogyan tudom ezt megcsinálni? ADC nélkül sehogy? Ez egy egyszerű feladatnak tűnik, de ötletem sincs mi alapján oldhatnám meg...
Valaki adna ötletet?

(#) silent15 válasza djadji hozzászólására (») Okt 30, 2012 /
 
Szia, beolvasod, a bemenetet byte ként, írsz pár feltételt, ami behatárolja a tartományokat, ezt kimenetként megadod, és kész.
Amúgy ilyen is van:
Bővebben: Link
(#) djadji válasza silent15 hozzászólására (») Okt 30, 2012 /
 
Elnézést, de ezt nem értem. Hogy olvasok be egy analóg bemenetet (ami a potiból jön) byte-ként? Egy picit segítenél, hogy megértsem?
( a link az jó cucc...)
Arra gondoltam (tudom, hogy ez talán fölöslegesen bonyolult), de:
Megszakítások lennének, mondjuk 1/100 másodpercenként.
Ilyenkor a Vref feszültséget alacsonyról felviszem, mondjuk 10 lépésben magasba, és minden körben megvizsgálom, hányadik lépésben lesz nagyobb mint a bemeneti analóg jel. HA pl a 6diknál, akkor 6 ledet világítok ki.
Ki is próbálom...
(#) silent15 válasza djadji hozzászólására (») Okt 30, 2012 /
 
Ilyenekkel ne foglalkozz, ezt a chip végzi (nem biztos hogy jó amit írtál, csak nem akartam kibogarászni) a chip-ben található ADC ezt elvégzi, onnantól neked már csak azzal kell foglalkozni , hogy behatárold a tartományokat. Pl.: az egyes LEDet gyújtsa ki ha a beolvasott változó értéke x>0 és így mindíg (kivéve persze 0) kigyújtja a ledet, has több led, ugyanez, csak ott már AND es feltételek kellenek.
(#) silent15 válasza (Felhasználó 15355) hozzászólására (») Okt 30, 2012 /
 
Na akkor bocsi, ezt elnéztem (emlékezetem mint egy guppié) akkor egy A/D konverter?
(#) kaqkk válasza silent15 hozzászólására (») Okt 30, 2012 /
 
Szerinted mi a különbség az ADC és az AD/konverter között ? Mikor nézted utoljára a 628 adatlapját ?
(#) foxi63 válasza djadji hozzászólására (») Okt 30, 2012 /
 
Szia!
Szoftveresen is meg lehet oldani, a csatolt rajz működött, kipróbáltam!
Működése: startkor egy tranzisztor kisüti a kondit, egy számláló nullázódik.Timer1 folyamatosan fut .tTúlcsordulásakor megnézi az ST bemenetet, hogy magas-e ,ha nem növeli a számlálót, ha igen kiírja a ledekre a számot,és kezdi elölről. ASM-ben megvan, de neked nem segít sokat.
üdv. Foxi

SÉMA.JPG
    
(#) kkrisz75 válasza silent15 hozzászólására (») Okt 31, 2012 /
 
Nem néztem meg a minta programokat, mert máshogyan közelítettem meg a végén.

Először is döntsd el mit kacsolsz az IC-vel. +5V ot vagy testet.
vagyis ha 5V-ot adsz ki a lábakon és a ledek másik fele a testen van, akkor:
- ha az első gyullad ki akkor teljes fénye lesz, ha a második akkor esik a fényerő, és így tovább, ha a 8. gyullad ki akkor az összes fényereje halványabb lesz. Ez nem gond, akkor ha csak 8 leded van. Viszont a 9. led amit már másik IC hajt meg ismét teli fényerővel világít, és látható lesz a nem kicsi különbség.
- Ha testet kapcsolsz akkor a led negatív lába az IC felé néz és a másik lába +5V on van. Így a fényerő egyforma lesz.

Viszont ez szerint is kell besorozni az 1 és 0 kat.

Vagyis ha testet kapcsolsz akkor ahova 0-t sorozol ott fog világítani a led, ahova 1-et ott nem fog.
Ha +5v ot kapcsoltatsz pont fordítva lesz. ahova 1 megy ott világít, ahova 0 ott nem.

ne úgy képzeld el az órajel lábat, hogy állandó frekvencia mint a chipnél.


A GND és a VCC lábak tiszta sor gondolom.
Ha több IC-t teszel sorba, hogy sok ledet vezérelj, akkor az első IC Q7' lábát a második IC DS lábával, a második Q7' lábát a harmadik DS lábával, és így tovább. (te csak ez első IC DS lábára adod a kimeneti értéket) Ő maga végig tolja az összes IC-n. Ha 10db IC-d van akkor 80jelet kell betolnod (1 vagy 0), hogy az összes led úgy világítson ahogy neked kell.

Az összes IC-n az OE lábat összekötheted és lehúzhatod testre. Az azt szolgálja, hogy amikor testet kap, akkor megy csak ki a jel, addig nem világít semmi míg ez testre nem kerül, hiába van kisorozva. Ha folyamatosan testen van akkor ahogy kiment mind, kigyullad automatikusan.

Az összes IC-n az MR lábat össze kötheted. Ezt érdemes az egyik (mindegy melyik) PIC lábhoz kötni. Ezzel tudod induláskor ki reset-elni a tartalmat. Vagyis kiadsz erre a lábra egy egyet. Vagyis PL.: D0 - 1 és D0 - 0 Ennyi. a reset.

Maradt 3 láb
SHCP, STCP, ÉS az első IC DS lába. Ez kell neked.

Az SHCP-ket összesnél összekötöd és a PIC neked szimpatikus lábára bekötöd. PL C6
Az STCP vel ugyen ez. PL: C5
Az első IC DS lábát szintén A PIC szimpatikus lábára kötöd. PL: D2

Kisorozás:
A programban fogsz egy kimenet ikont és beállítod, neki, hogy D2 és az értéke 0.
Ismét fogsz egy kimenet ikont, alá teszed és C6 értéke 1
Ismét fogsz egy kimenet ikont, alá teszed és C6 értéke 0
(így kisoroztad az első led értékét 0ra. vagyis az adat lábon adtál 0-t. Majd a shift regiszterrel egyel arrébb toltad a számlálót.)

Lényegében ennyi. Ezt annyiszor csinálod meg ahány ledet akarsz kigyújtani. Az elején történ választástól függően pl. ahol DS-nek 0-t adtál világít ahol 1 ott nem.

Ha bement az összes led, akkor:
Ismét fogsz egy kimenet ikont, alá teszed és C5 értéke 1
Ismét fogsz egy kimenet ikont, alá teszed és C5 értéke 0

ezzel az összes tároló regiszterét kitolod, rögzíted, ahogy akarod úgy hívod.
Ilyenkor kellene megadni az OE lábnak a testet vagyis alacsonyra tenni, de mivel nekem már testen van ezért kigyulladnak a ledek egyből.

Aztán kezdődik elölről minden.
Mivel a PIC órajele 4-20 MHz ezért ezt ilyen tempóval lépteti be.

Mivel neked valószínű ciklusban dolgozik a program érdemes úgy is gondolkozni.
Csinálsz egy makrót amivel 1-et tolsz ki és egy makrót amivel 0-t. Aztán csak meg kell hívogatni sorba.


Az *.fcm fileok makrófileok. Vagyis makró importálással tudod behívni.
A KMH2 nél ne ijedj meg az elején, az egy 7szegmenses kijelző kisorozása. (0-1-2-3-4-5 H) Sebesség fokozat, ahogy a váltó áll. (H- Hátramenet, 0 üres)
Mivel a ledeket mindig hátulról kell kisorozni. Vagyis a legutolsó leddel kell kezdeni, nekem az ezt vezérlő IC az utolsó.
Így is nézd végig....
Ugyan így a RPM kijelzésnél... Ott láthatod a vízhőfok és a benzinszint ledjeinek a vezérlését.
Mind a két makró végén látod az STCP kimenet 1 és 0 megadását.

Jó bogarászást. Szerintem kezd 8db leddel. Aztán rájössz és megy akár 1000 is.
(#) djadji válasza foxi63 hozzászólására (») Okt 31, 2012 /
 
Kezdő vagyok, nem egészen értem.
A leírásod alapján:
Azt nézi, hogy egy bizonyos kondit mennyi idő alatt tölt fel?
(bocs, de még nem vágom a dolgot, és ebben az esetben pont az elméletét szeretném érteni..)
Következő: »»   75 / 360
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