Fórum témák

» Több friss téma
Fórum » PIC - Miértek, hogyanok haladóknak
Lapozás: OK   76 / 1320
(#) PHARO hozzászólása Szept 27, 2007 /
 
Sziasztok!

Segítséget szeretnék kérni, mégpedig van itt ez a kapcsolás: http://tobe.nimio.info/foto/mood_lamp_circuit.png
ezt meg építettem, működik is rendesen, de nem power led-del szeretném használni, hanem víztiszta 5 mm-es RGB-vel.Hogyan lehetne rákötni, mivel az RGB közös katódos?Tehát olyasmire gondoltam,ami megfordítja a polaritást.
(#) watt válasza PHARO hozzászólására (») Szept 27, 2007 /
 
Esetleg arra nem godoltál, hogy fordítva kötöd be?
Egyébként mire jó ez a kapcsolás?
(#) PHARO válasza watt hozzászólására (») Szept 27, 2007 /
 
Lehet rosszul fogalmaztam. A tranyó a katódokat kapcsolgatja, anód van összekötve és rá a pluszra.Nekem pedig olyan RGB-m van, amin csak egy katód van és három anód.Sima 5mm-es 4 lábú RGB.
Nem tudom hogy gondolod.Cseréljem fel egyszerűen a polaritást?Az úgy biztos nem fog menni.
Itt a teljes cikk, videó is van hozzá.Egyébként a színeket variálja 4 programban,de alig kell hozzá valami.Nekem nagyon bejött ez a project.

http://tobe.nimio.info/led_mood_lamp.php
(#) potyo válasza PHARO hozzászólására (») Szept 27, 2007 /
 
A kapcsoláshoz annyi hozzáfűznivalóm van, hogy azt valami pancser tervezte. Nincsenek báziellenálások, és a pic tápja sincs szűrve.

Közös katódoshoz az kell, hogy a tranzisztorok kollektorát felkötöd közvetlenül az 5V-ra, és a ledek anódját ellenállásokon keresztül az emitterekre teszed. A katódot meg a gnd-re kötöd.
(#) PHARO válasza potyo hozzászólására (») Szept 27, 2007 /
 
Köszönöm a megoldást, működik. Van ötleted a bázisellenállásra,hogy mekkorát és hová?
(#) watt válasza PHARO hozzászólására (») Szept 27, 2007 /
 
Most, hogy emiterkövető lettt a kapcsolás, nem feltétlenül kell bázisellenállás, de ha beteszel 1k-kat akkor az nem árthat. Hogy hová? A bázis és a PIC kimenete közé. Ezért hívják bázisellenállásnak.
(#) potyo válasza PHARO hozzászólására (») Szept 27, 2007 /
 
Semekkorát sehová, mert a módosítás után nincs rá szükség, ezért nemis említettem. De ahogy watt írja, tehetsz be 270ohm-1k közöttit védelmi célból, bár felesleges. Ha eddig nem ment tönkre a pic kimenete, akkor ezután sem fog egy eleve kis valószínűséggel előforduló zárlatnál.
(#) pixels hozzászólása Szept 29, 2007 /
 
Hali!
Egy-két helyen láttam olyan megoldást, hogy az egyik portra rá voltak kötve 7szegmenskijelző katódjai, és emellett még 3-4 kapcsoló is. Én is hasonló dolgot akaraok megoldani, csak portb 4..7-re akarok 4 kapcsolót, és egy lcd 4 adatbitjét. A kérdésem az lenne, hogy működhet-e így a portb megszakítása.

Azt nem tudom, hogy hogyan viselkedik a portb megszakítás, ha éppen akkor változik a kapcsoló állapota, miközben írok az lcd-re. Ráugrik-e a megszakításra a pic, mikor a portb 4..7-et ismét bemenetre váltom?

16F628-al dolgozom, meg egy 1*16-os lcd-vel
(#) potyo válasza pixels hozzászólására (») Szept 29, 2007 /
 
Ilyenkor a portb megszakítását ki kell kapcsolni, és egyik Timer megszakításból kell megnézni a gombok állapotát 1..10ms időnként, és összehasonlítani az előző kombinációval. Ha eltérés van, akkor lett gomb nyomva vagy elengedve. A potrtb megszakítás egyébként sem való nyomógombokhoz, esetleg csak pergésmentesítettekhez.
(#) pixels válasza potyo hozzászólására (») Szept 29, 2007 /
 
Köszi az infót. Most is timeren van, csak nem a portb-n. Arra gondoltam, talán jobb lenne a portb megszakítását is használni, mert timerre mást kellene raknom... Pergésmentesítésnek meg egy-egy 100n van a nyomógombbal párhuzamosan, így nem kell a szoftvernek még azzal is foglalkoznia.
(#) potyo válasza pixels hozzászólására (») Szept 29, 2007 /
 
Ha ugyanazon a lábakon akarsz az LCD-vel kommunikálni, akkor azokat a kondenzátorokat onnan el kell távolítanod, és szoftverből megoldani a pergésmentesítést. Valamikor én is csináltam ilyet, soros adatfogadást oldottam meg hétszegmensű kijelző szegmensvezetékein, szépen működik. Az LCD bemenete ha jól gondolom, nagyimpedanciás állapotba megy amikor az RW lába alacsony. Bár az igaz, hogy sosem ellenőriztem le, de ez lenne a logikus. Szóval a négy adatvezetéket felhúzod mondjuk 10k-val a tápra, és a gomb pedig 1k-val lehúzza GND-re. Amikor az LCD-re akarsz írni, akkor kimenetté állítod az RB7:RB4 lábakat, és elvégzed az írást. Azután átváltod ezeket bemenetté, és beolvasod a gombok állapotát. Ezután szoftverből pergésmentesíted (nem egy nagy dolog), és utána ha kell, reagálsz a gombnyomásra.
(#) szabi_o válasza pixels hozzászólására (») Szept 29, 2007 1 /
 
Idézet:
„Azt nem tudom, hogy hogyan viselkedik a portb megszakítás, ha éppen akkor változik a kapcsoló állapota, miközben írok az lcd-re. Ráugrik-e a megszakításra a pic, mikor a portb 4..7-et ismét bemenetre váltom?”


Természetesen ez a megszakítás csakis akkór működik, amikór a megfelelő portlábak bemenetként vannak konfigurálva. Tehát csak akkór fog megszakítást kiváltani, amikor visszaváltod bemenetre, és még mindig lenyomva lesz a gomb.
Én azt javasolom, hogy a főciklusban kérdezgesd a gombok állapotát. (általában ez elégséges szokott lenni)

  1. delay_ms(200);  //pergésmentesítés
  2.    bill_olv();
  3. majd
  4.    if (bill1) ...
  5.    else if (bill2) ...

  1. void bill_olv(void)
  2. {
  3. int32 loop;
  4.  
  5. bill1=0;
  6. bill2=0;
  7. bill3=0;
  8. bill4=0;
  9.  
  10. for (loop=0;loop!=300000;loop++){
  11.    if (gomb1){bill1=1;break;}
  12.    if (gomb2){bill2=1;break;}
  13.    if (gomb3){bill3=1;break;}
  14.    if (gomb4){bill4=1;break;}
  15.                          }    
  16. }



A PortB megszakítást is felhasználhatod, főleg ha SLEEP -et is alkalmazól.
(#) pixels hozzászólása Szept 29, 2007 /
 
Köszi a segítséget. C-ben nem programoztam, de értem mit csinálna a program. Még eldöntöm, hogy hogyan csinálom meg...
(#) watt válasza pixels hozzászólására (») Szept 29, 2007 /
 
pixels
A gombokat hogyan kötöd be, hogy ne zavarja a vonalakat? ellenálással?
(#) Moderátor hozzászólása Szept 30, 2007
 
OFF-TOPIC hozzászólások törölve.
Kérem, a helyesírásra mindenki figyeljen egy picit jobban!
Köszönöm.
(#) pixels válasza watt hozzászólására (») Szept 30, 2007 /
 
igen. 2 ellenállással akarom megoldani, de már csak jövőhét végén. (nem leszek otthon)

Úgy akarom megoldani, hogy kapcsoló egyik vége a testre, másik végére meg 2 ellenállás. Az egyik ellenállás felhúzva tápra, a másik pedig rá a pic és az lcd lábára. Az lcd-vel nem lesz gond (legalábbis remélem), mert az adatbusza bemenetként üzemel.
(#) watt válasza pixels hozzászólására (») Szept 30, 2007 /
 
Én még ilyen megoldáson nem agyaltam(mindig elég lábú PIC-et választok), de működőképesnek látom én is.
(#) devil2006 hozzászólása Szept 30, 2007 /
 
Most kezdtem foglalkozni PIC-el!
Hihetetlen tudás van itt fent...
Örök hála nektek ezért nagy segítség volt
(#) watt válasza devil2006 hozzászólására (») Okt 1, 2007 /
 
Engedd meg, hogy megköszönjem, hogy vetted a fáradságot és elolvastad, vagy el fogod olvasni! Ajánlom, még a terminál fórum PIC-es kiemelt topicját is, valamint az égető áramkörökkel foglalkozó topicot is! (az ajánlást Topi által kezdeményezett, a két fórum közötti jó baráti viszonyt kialakító párbeszéd alapján teszem, valamint az információk szabad áramlása érdekében!)
(#) GTI hozzászólása Okt 1, 2007 /
 
Hello
Lehet, hogy hülye kérdés, meg lehet hogy már 500 ember feltette úgyanezt,de a kérdésem:

Milyen nyelven lehet PIC-et programozni, mert én most kezdtem el C nyelvet (félévmúlva kezdem a C++) és ezekel fogok valamire menni, vagy valami mást is kellene hozzá tanulnom?
(#) potyo válasza GTI hozzászólására (») Okt 1, 2007 /
 
asm és a C az a két nyelv, amivel érdemes komolyan foglalkozni. A C nyelvből kevés dolog kell a pic-hez, de a szintaktika ugyanaz, mint a PC-re írt C fordítókban. Összességében csak jól jársz a C-vel, de a kontroller programozásához elengedhetetlen az asm nyelv ismerete, mert csak ennek ismeretében lehet a kontroller működését átlátni, illetve vannak esetek, amikor asm-ben kell bizonyos kódrészleteket megírni, amikor a sebesség kritikus tényező.

A C++ nem sok vizet zavar a kontrollereknél, de attól még nem baj, ha jártas benne az ember.
(#) makiszabi hozzászólása Okt 1, 2007 /
 
sziasztok nekem is van egy kis NAGY problemam egy pic-el
nemreg kezdtem en is a pic progizast ugy nagyabol egy honapja.igy az elejere ki is talaltam hogy csinalok egy automatizalast egy generatorhoz ez abbol all hogy mikor elveszik az aramot akkor magatol bekapcsol a generator es mikor megjon a feszelj akkor meg kikapcsol!megirtam a progit a pic-hez terveztem aramkort is neki!minden ok naktunt csak mikor rakotottem a 220v-t akkor jottek a gondok!ez a vezerlo 2 db bazi nagy relet kapcsolgat csakhogy mikor kikapcsolja a relet akkor a pic valamiert resettalodik es kezdi a progim elejetol a mukodest ami nagyon nem jo!az lenne a kerdesem hogy hogyan lehetne kikuszobolni ezt az interferenciat vagy mit!elore is koszonom valaszotokat!
(#) Frankye válasza makiszabi hozzászólására (») Okt 1, 2007 /
 
Szűréssel és diódával.
Nem tudom, tettél-e diódákat a vezérlés és a relé közé. Ha nem, akkor sürgősen tegyél!
A szűrésnek meg használ kondikat, bőségesen, mert a jelek még akár ki is nyírhatják a PIC-edet...
(#) makiszabi válasza Frankye hozzászólására (») Okt 1, 2007 /
 
koszike a tanacsot de mar ugy terveztem a panelt hogy stabilizalas elott 2db 2200uf kondit raktam es ugyan igy stabb utan is 2db!van meg az aramkorben kb.4db. 5v-tos rele de azok utan is van vedodioda es meg raadasul van 2db zener is az 5v.ja es ami szepiti a helyzetemet hogy telyesen levan valasztva az aramkor a 220 vonalrol,trafoval meg optokapukal!!ja igen es ezt a nagy relet ami 220v-os egy 5v-os kapcsolgatja!lassan megorulok azthiszem! nem hiszem el hogy itt bukik meg az egesz talalmany!ha van meg valami otletetek akkor nagyon szivesen meghalgatnam es megkoszonem!
(#) potyo válasza makiszabi hozzászólására (») Okt 1, 2007 /
 
A PIC tápjával sorba egy 10ohm körüli ellenállást, és 5,1V-os zenert párhuzamosan vele, közvetlenül a pic lábainál. Majd innen tovább néhányszáz Ωmal a reset lábra, és a reset lábat is 4,7V-os zénerrel megfogni. Mindezt a lehető legrövidebb vezetékkel. Ez pont a nagyáramú mágneskapcsolók szomszédjában lakó picekre lett kitalálva.

A 2200µF-os kondenzátor az nem szűrő, hanem puffer. A szűrő az 100nF-os kerámiakondenzátor, közvetlenül a pic táplábai között, a szabályzó bemenete és a föld, valamint a kimenete és a föld között, szintén közvetlenül a lábaknál.
(#) elektromos hozzászólása Okt 2, 2007 /
 
Sziasztok!
A következő kis progival az a bajom,hogy nem tudom együtt használni a két nyomógombot,mert még az első időzit, addig a másik gombot nem tudom használni! Már ezer féle demo progit kipróbáltam,de egyik sem hasonlít az én problémámra !
Device = 16F628A
XTAL = 4

ALL_DIGITAL = True ' Minden portot digitálisra
INPUT PORTA
output portb ' PORTB kimenet

loop: portb= %00000000
gomb2:
If PORTa.1 = 1 Then
PORTB.1 = 1
delayms 6000
endif

If PORTa.0 = 1 Then
PORTB.0 = 1
delayms 3000
Endif
Pause 2 ' Pause 2mS
Goto loop
End
Mit kell áttírni, hogy akár egyszerre is menjen a két gomb.Ha az időzítőket kiveszem, akkor persze jól működik,de nekem kell az időzítő rész.
(#) potyo válasza elektromos hozzászólására (») Okt 2, 2007 /
 
Egyrészt az nem időzítés, hanem késleltetés, ami hacsak lehet, kerülendő a programokban.

Használj megszakítást, és akkor működni fog mindkettő. De hogy ezt basicben hogy kell megcsinálni, azt ne tőlem kérdezd!
(#) elektromos válasza potyo hozzászólására (») Okt 2, 2007 /
 
Tehát rossz uton járok !
Hogyan néz ki ez asm-ben ?
(#) watt válasza elektromos hozzászólására (») Okt 2, 2007 /
 
Nem hiszem, hogy kódot fogsz látni potyo-tól(hacsak nincs neki egy véletlenül és könnyű elkülöníteni a többi programrésztől úgy, hogy érthető is legyen), ezért inkább az elvét kell megérteni, és megoldani Basic-ben, amiben egyébként én sem tudok segíteni(pedig a Basic állítólag egyszerű! Amíg nem kell valami húzósabbat megoldani, ami nincs a könyvtáraiban! no mindegy..).
Szóval a lényeg:
Beállítasz egy Timert(mondjuk a TMR0-t, vagy az TMR1-est), hogy 50-szer szakítsom meg másodpercenként.
Minden megszakításkor megviszgálod, hogy a gombjaid le vannak e nyomva.
Ha igen, akkor egy számlálót(egy bájtban lévő érték) elkezdesz csökkenteni. Ha pl. a számlálót 15-re állítottad alapból, (ami 0,3sec időzítést jelent(1/50*15)), akkor a 15. visszaszámlálás után beállíthatod a "GombLenyomva" jelzőt, amit a főprogramodban figyelsz, vagy a megszakításban is lekezelheted rögtön.
Ha bármikor a 15 érték lecsökkenése közben a gomb egy pillanatra is(1/50 sec időre) el lenne engedve(prellez), akkor a gombhoz tartozó "GombLenyomva" jelzőt törlöd és a számlálót is visszaállítod 15-re. Ezt a "15-öt" természetesen Te fogod kikísélletezni, hogy mikor jó.
(#) elektromos válasza watt hozzászólására (») Okt 2, 2007 /
 
Köszi a választ !
Következő: »»   76 / 1320
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