HobbyCNC fórum
FTP tárhely: http://cnctar.hobbycnc.hu v0.9.6 Régi HobbyCNC oldal: http://archiv.hobbycnc.hu

Új regisztráció / Átregisztráció a régi fórumról
    
   


Elektronika

Léptetőmotorok, vezérlőbeállítások

 

Időrend:
Oldal 384 / 490 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   380  381  382  383  384  385  386  387  388   Következő ►  Utolsó ►|

  Fórum főoldal  |  A lap aljára

elektron | 15859    2010-01-03 22:00:00 [5366]

24*1.4=33.6, hogy lesz abból 42 V ? Ilyen méretű trafónál ekkora feszültség esés van ?

Előzmény: KisKZ, 2010-01-03 21:55:00 [5364]


svejk | 32803    2010-01-03 21:55:00 [5365]


Elektromos emberkék!
Nézzétek már meg az Adok-veszek #11323-at!




KisKZ | 6456    2010-01-03 21:55:00 [5364]

Sziasztok! Segítséget kérnék!
Az uj évet azzal kezdtem hogy számot vetetten azzal amit csináltam eddig.
Rájöttem, hogy ha nem csinálom, csak beszélek butaságot, akkor bizony nem akar magától semmi elkészülni.
Igy nekiestem a H2-es vezérlő tápjának és a dobozolásának.
Ez volt a kezdet:




MOst estére sikerült egy régebbi kezdeményezért rendbetennem és igy állok:



VAn rajta 6 db 5V-os kimenet, 1 db 12V os kimenet és egy power a vezérlőhöz.
A toroid elvileg egy 250VA-es 230/24V-os darab, a diódahíd egy 35A-es 800V-os SB358-as, egy 10000uF-os 63V os kodi. A megszakítók 2A-esek (egy-egy a primer mind két oldalán), és egy 10A-es a szekunder oldalon.
A primer oldali ugye egyértelmű hiszen ott 230V van, igy a sima 230/2A-es megszakitók jók.
De a kérdésem először az, hogy a szekunder oldalra van-e értelme 230/10A-est tenni? Másképpen viselkedik-e mint egy sima mondjuk 60V környéki 10A-es olvadó? Vagyis egyáltalán működik-e ha kell?

A másik kérdésem:
Ugyan ez a felépítés egy az egyben stimmel a H2 doksijában referenciaként megadotthoz, aonban ott kifejezett követelmény az, hogy a tápfez (még terheletlen állapotban se haladja meg (érje el?) a 35V ot.

Most a tápfesz 42.7V ezen az összeállításon.
milyen elemet építsek be és hova tanácsoljátok, ahhoz, hogy semmiképpen ne lépjem túl a 35V ot? (mondjuk inkább 34-et)

Előre is köszönöm a segítséget!


Szalai György | 9458    2010-01-02 18:31:00 [5363]

mostakkor vege vagy folytkov

Előzmény: alfcoder, 2009-12-28 22:53:00 [5352]


elektron | 15859    2010-01-02 10:27:00 [5362]

Az is lehet, hogy az alsó oldalra ráteszek egy procit is, meg ami kell még neki, és 2 oldalasra is meg lehetne csinálni, de ezt csak úgy mondom most. Most tegnap hoztam olyan állapotba, hogy lassan neki állhatok egy példányt kimaratni belőle, csak még pár furathelyet megnagyobbítok hogy könnyen lehessen forrasztani.

Előzmény: KisKZ, 2010-01-02 10:20:00 [5361]

KisKZ | 6456    2010-01-02 10:20:00 [5361]

NEm baj!

Előzmény: elektron, 2010-01-02 09:57:00 [5360]


elektron | 15859    2010-01-02 09:57:00 [5360]

Várjál, ez egy shield, ezt kell rádugni az ARDUINO-ra majd, ez csak egy kísérleti valami.

Van rajta memória tároló IC, RS485 csatlakozás, kapcsoló üzemű táp, meg egy hőmérő PT100-hoz, de lehet variálni, rátenni valamit, vagy ilyesmi.

Előzmény: KisKZ, 2010-01-02 09:33:00 [5359]


KisKZ | 6456    2010-01-02 09:33:00 [5359]

Szuper!!!!
Kérek belőle!
Egyet rendelek tőled!

Ez soros ha jól látom?

Előzmény: elektron, 2010-01-01 22:46:00 [5358]


elektron | 15859    2010-01-01 22:46:00 [5358]

KisKZ !

Csináltam egy ARDUINO shieldet.



elektron | 15859    2010-01-01 19:23:00 [5357]

Azt hiszem ez olyan egyszerű hogy kaparós technikával csinálom meg, mert csak egy kell most hirtelen, már látni szeretném, a 4. forgó tengelyt végállásra beállni.


elektron | 15859    2010-01-01 19:12:00 [5356]

Végálláshoz csináltam egy kis paneltervet, opto réshez jó, és a rés tranzisztora, mint kapcsoló funkcionál, sorosan kötött végállásra jó.




Szalai György | 9458    2009-12-29 11:20:00 [5355]

Én is másolom ezt az egész © alfcoder attrakciót Word-be és fordítom programozó-Magyarról bevásárlós-Magyarra.
De már lefutott ez a programrész, most ugrok a TV nézősre, mert annak teljesültek a feltételei.


keri | 14007    2009-12-29 11:11:00 [5354]

Én megírtam Wordben szerkesztve, és csak a linket raktam fel.
Bár igaz hogy úgy könnyebben elsikkad de áttekinthető, lementhető, nyomtatható.
Valahogy így: Fotózás alapjai

Előzmény: alfcoder, 2009-12-28 22:53:00 [5352]


n/a (inaktív)    2009-12-29 08:05:00 [5353]

Javaslat: készíts printscreent az editorról és szúrd be,vagy linkeld a képet.

Előzmény: alfcoder, 2009-12-28 22:53:00 [5352]


alfcoder | 182    2009-12-28 22:53:00 [5352]

elnezest igy sem mukodik ha valakit nagyon zavar, hogy a programnal nincsenek meg a tabulatorok, akkor maganban atkuldom neki a txt file -t, vagy valami tanacsot elfogadnek ezugyben

Előzmény: alfcoder, 2009-12-28 22:51:00 [5351]

alfcoder | 182    2009-12-28 22:51:00 [5351]

kernem egy operatort, hogy az elozot torolje, mert nem ment at a tabulator, most probalom fix space -el, koszonom






kerem a gyakorlo/profi programozokat, hogy stilszeru legyek, ugorjanak a *** bekezdeshez


sokat tortem a fejemet azon, hogy a most kovetkezo reszbe erdemes e belemenni, de vegulis ugy dontottem,
hogy mivel olyan egyszeru fogalmak fognak szobakerulni, hogy nem erne meg nem megtenni, arrol mar nem is
beszelve, hogy az itt megismerteket ha masra nem is, de egy alap eligazodashoz mindenki fel fogja tudni hasznalni

ha eddig nem lett volna vilagos, a programozasrol lesz szo, ugy fogjuk megkozeliteni a dolog, hogy sorravesszuk,
hogy milyen reszekbol/fogalmakbol all a programozas:

1.utasitas: ez egy elemi egyseg ami megmondja a cpu -nak (processzor/feldolgozo egyseg), hogy mit kell csinaljon
pl: a+b, egy kutyanak is lehet adni utasitast: gyere ide!

2.memoria: egysegesen felosztott tarolo hely, pl. egy kockas fuzetlap, nyilvan azt jo tudni, hogy mi hol van
a memoriaban, tehat szuksegesek a memoria cimek is, a postas is igy tudja, hogy hova hozza nekunk a leveleket

3.program-memoria: itt van eltarolva maga a programunk, azaz az utasitasok amiket szeretnenk, hogy a cpu
megcsinaljon, pl. ha lekuldenek valakit vasarolni, akkor a bevasarlo cetlit lehet tekinteni program-memorianak
vagy pl. egy hataridonaplot, hogy az elet ne legyen tul bonyolult, az egyes utasitasokat szepen egymas utan
szoktak elhelyezni a program-memoriaban, tehat amikor az egyik dolgot megcsinaltuk, megyunk a masikra

4.munka-memoria: ez semmi tobb mint a programunknak adott munkaterulet, ahol o tetszolegesen tarolhat, torolhet
modosithat, megnezhet dolgokat

5.valtozo: ez egy nevvel ellatott munka-memoria cim es meret, pl. a kutya nevu valtozo ezek utan a fuzet 3 -dik
oldalan belul az 5 -os sor 12db kockaja lesz, szoval ez arra jo csupan, hogy ne kelljen ilyen hulyen beszelni,
hogy itt meg ott meg hol mennyi helyen, hanem csak azt mondom, hogy irjal 3 x-et a kutyaba, vagy na mi van
a kutyaban?

6.aritmetika: a matematikaban szereplo muveletek, tobbnyire alap muveletek, pl. osszeadas, kivonas, osztas, szorzas
gyokvonas, hatvanyozas

7.feltetel: valami vagy igaz vagy hamis, pl. ha azt mondom, hogy a feltetelem az, hogy "alma es korte", ami nyilvan
csak akkor lesz igaz, ha mind az alma es mind a korte valtozo igaz, minden mas esetben a feltetelem hamis
eleg sok feltetel lehetseges, pl. az un. relaciok is feltetelek, tehat, hogy valami egyenlo valamivel, valami
nem egyenlo valamivel, valami kisebb valaminel, nagyobb, nagyobb es egyenlo stb.
nem art megjegyezni, hogy egyes utasitasok vegrehajtasat lehet kotni feltetelekhez, szoval valamelyik utasitas
csak akkor hajtodik vegre, ha egy feltetel igaz

8.kulvilag-kapcsolat: nyilvanvaloan a programunknak szuksege lesz arra, hogy a kulvilagtol kapjon, ill. a annak
kikuldjon dolgokat, ilyenekre gondolok, hogy merevlemez, file, monitor, billentyuzet, printerport

9.programfutas vezerles: ez egy nagyon egyszeru es nagyon fontos dolog, fentiekben mar volt rola szo, hogy
a program utasitasaink szepen sorban helyezkednek el a program-memoriaban, sajnos egy ilyen merev szerkezettel
nem tul hatekonyan tudnank dolgozni, kepzeljunk el egy peldat: minden nap be kell menni dolgozni, szepen sorban
nap, naputan, igen am, de mi van akkor, ha hetvege van, vagy valamilyen unnep, vagy betegek vagyunk???
nos a merev szerkezet, erre nincsen tekintettel! szoval meg kell engednunk, hogy a programfutas flexibilis legyen
mint ahogyan ezt mindjart lathatjuk, es ami a lenyeg, hogy ezek utan mar keszen is vagyunk

10.direkt ugras: ez egyszeru dolog, a cpu egyszercsak rafut egy olyan utasitasra, hogy ugorjunk a 123 -as sorra
es akkor a kovetkezo utasitast mar onnan veszi szepen sorban, ameg nem tortenik megint egy programfutas vezerles
az milyen jo moka mikor pl. a 42-es sorban levo utasitasnak azt adom meg, hogy ugrojon a 42-es sorra
hazi feladat, hogy egy ilyen szituaciobol hogyan tud kikeveredni a cpu, ugy ertem ha egy ilyen megtortent, hogyan
tudunk megis feladatokat elvegezni

11.felteteles ugras: nos itt az, van, hogy csak abban az esetben ugrunk, hogyha valamilyen feltetel igaz, pl.
fut a programunk es kozben egy valtozo csokken, majd e programresz aljan az van, ha a valtozo nem nulla, akkor
ugorjon a programresz elejere, belathato, hogy igy lehet iranyitani, a valtozo segitsegevel, hogy egy
programreszlet hanyszor fusson le, nem akartam de megis irok ide egy peldat:

221: ....
222: csokkenteni a macska valtozot 1-el
223: kiirni a kepernyore a macska valtozo ketszereset
224: ha a macska nem egyenlo nullaval akkor ugrani a 222 -es sorra
225: ....

(azert nem akartam ilyesmiket irni, mert velemenyem szerint egy ilyen huzas melysegesen megserti az olvaso
onerzetet, mert hulyenek van nezve, mert akarmennyire is az elejen legyen a programozasi ismereteknek azt
egybol kitalalja, hogy a cpu-ban nem ilyen szep-fogalmazasos modon mennek a dolgok)

12.fuggveny hivas: ennek is a matematikabol kolcsonvett alapjai vannak, tipikusan van egy elkulonitett
program reszlet aminek van egy cime nyilvan, namost fut a foprogram, majd mikor szuksegunk van az elkulonitett
reszre, akkor annyit mondunk, hogy eltaroljuk azt a cimet ahol vagyunk (jobban mondva a kovetkezot) es elugrunk
az elkulonitett programreszhez, ott lefutnak szepen egymas utan az utasitasok, majd a vegen az van, hogy ugorj
vissza az eltarolt cimre (most mar lathato, hogy miert a kovetkezo cimet kellett eltarolni
ez ilyen egyszeru, szoktak meg valamilyen adatot/parametert adni az elkulonitett programresznek, ill. az
elkulonitett szokott meg vissza adni erteket, pl. a fuggvenyem az, hogy a bejovo valtozo erteket megszorozza
kettovel es ezt adja vissza, akkor ha a foprogrambol meghivom ezt a fuggvenyt egy 10-es parameterrel, akkor
20-al jon vissza mint visszateresi ertek

13.megszakitas: ennek szerencsere csak a neve furcsa, amugy egy remek jo szolgalatot nyujto cuccos
itt arrol van szo, hogy nem nekem kell hivni egy elore meghatarozott fuggvenyt, hanem az automatikusan meghivodik,
ha egy szinten elore beprogramozott feltetel teljesul (igaz lesz), gondoljuk meg mifele kavarodas volna, ha nem
lehetne igy elore beprogramozni a fuggvenyt vagy a vegrehajtodasi feltetelet

milyen feltetelek lehetnek ezek? pl. egy vonal lehuzodik a foldre, megnyomnak egy gombot, eltelt egy adott ido,
minden egyes millisec -nel meghivodik egy fuggveny, a marha program nullaval akart osztani


*** igen, igen, ide ugrottak a profi programozok, na most, ha az un. state-machine is a mindennapi programozas
resze, akkor arra kernem meg oket, hogy megy egyszer, de mostmar utoljara legyenek szivesek ugrani a ****
reszhez, ahol a tenyleges iranyvaltos pwm algoritmus kerul ismertetesre


szoval akkor mi is ez a state-machine, nos ez egy programozasi trukk, amivel idot es energiat takarithatunk meg
magunknak, az algoritmusok igen nagy resze pontosan azert van kitalalva, hogy ne kelljen sokat dolgozni, vagy
tul sok mindenre figyelni, tul sok minden fejben tartani, a masik reszukkel a vegrehajtas hatekonysagat tudjuk
novelni (a harmadik tipusnal szellemi perverzioinkat eljuk ki

a state-machine eseteben kulonallo programreszek vannak, amik kozul mindig csak az egyikben vagyunk, ott futnak
a programsorok, ezekre a kulonallo programreszekre igaz egy allapot (state) azaz azert vagyok az egyikben mert
egy jol definialt allapot van ervenyben, hetkoznapi pelda: "lefekveses allapot" "reggelizo allapot" "tv nezo allapot"
"bevasarlos allapot" "dolgozo allapot" tehat ha a tv nezo allapotban vagyok akkor nyilvan nem vasrolok be, nem
dolgozok, hanem ulok a fotelban es nezem a musort, erre a tevekenysegre pontosan ez jellemzo, a masik fontos dolog,
hogy tudjak mozogni az egyes allapotok kozott, most kepzeljuk el, ha orokre beragadna valaki a bevasarlos allapotba
:) nos pontosan ugy mint a hetkoznapi eletunkben ezekhez az allapot-valtasokhoz (mozgasokhoz) egy nagyon jol
meghatarozott feltetel tartozik: ha mar keso este van es faradt vagyok, akkor a tv nezos allapotbol atmegyek a
lefekveses allapotba, de nyilvan olyat nem lehet csinalni (vagy nem erdemes) hogy a bevasarlos allapotbol atmegyek
csak ugy hirtelen ott a boltban a lefekvesesbe de olyan azert van, hogy a bevasarlosnal ha mar bevasaroltam
vagy tul sokan voltak a boltban es feladtam, akkor atmegyek a hazamenos allapotba, majd ha mar otthon vagyok akkor
ha faradt vagyok akkor atmegyek a lefekvesesbe, vagy a tv nezosbe ha meg nem vagyok faradt

szoval a lenyeg, hogy jol meghatarozott helyek vannak, jol meghatarozott atmenesi feltetelekkel a jol meghatarozott
atlepesi helyekre

maga az implementalasa a state-machine -nak ugy tortenik, hogy van egy valtozonk a state_num, ez mutatja, hogy melyik
allapotban vagyunk es egy fociklusbol allandoan megnezzuk, hogy milyen allapothoz, milyen programreszek szuksegesek,
tulajdonkeppen azt biztositjuk, hogy ha a state_num egyenlo 3-al akkor a 3-as programreszlet fusson le, de a tobbi
ne, termeszetesen az atmenetekre figyelni kell, tehat, ha a 3-asban vagyunk akkor kell figyelni, hogy nem e teljesult
egy atmenesi feltetel ami mondjuk atvisz minket az 5-os programreszbe, valahogy igy:


program itt indul:
.....
.....
state_num legyen egyenlo 2-vel
.....
.....

fociklus:


ha state_num egyenlo 1 -el akkor ezeket csinald:
.....
.....
ha ez akkor state_num legyen egyenlo 2-vel
.....
ha az akkor state_num legyen egyenlo 3-al
.....
ugorj a kozos-sorra


ha state_num egyenlo 2 -vel akkor ezeket csinald:
.....
.....
ha akarmi akkor state_num legyen egyenlo 3-al
.....
ugorj a kozos-sorra


ha state_num egyenlo 3 -al akkor ezeket csinald:
.....
.....
ha ez meg az, akkor state_num legyen egyenlo 1-el
.....
.....
.....
ugorj a kozos-sorra


kozos-sor:
.....
.....
.....
akar tv-t nezek akar alszok, lelegeznem azert kell!!!
.....
.....
ugorj a fociklus-sorra




**** iranyvaltos pwm algoritmus itt kezdodik:


magyarazo abra a konfiguraciorol:








ezekre a a program hivatkozik es hogy mi tortenik ilyenkor:


A_OFF kikapcsolja az A kapcsolot
B_OFF kikapcsolja a B kapcsolot
C_OFF kikapcsolja a C kapcsolot
D_OFF kikapcsolja a D kapcsolot

A_ON bekapcsolja az A kapcsolot
B_ON bekapcsolja a B kapcsolot
C_ON bekapcsolja a C kapcsolot
D_ON bekapcsolja a D kapcsolot

W_A_ON varakozas, hogy az A kapcsolo bekapcsolodjon
W_B_ON varakozas, hogy a B kapcsolo bekapcsolodjon
W_C_ON varakozas, hogy a C kapcsolo bekapcsolodjon
W_D_ON varakozas, hogy a D kapcsolo bekapcsolodjon
W_CD_ON varakozas, hogy a C es a D kapcsolo bekapcsolodjon

W_PWM_ON a pwm magas/aktive idejet kivarja

W_A_OFF varakozas, hogy az A kapcsolo kikapcsolodjon
W_B_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_C_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_D_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_CD_OFF varakozas, hogy a C es a D kapcsolo kikapcsolodjon

W_PWM_OFF a pwm alacsony/passzive idejet kivarja



es akkor a program:


inicializalas:

K_MIN=0;
K_KOZ=200;
K_MAX=400;

A_OFF
B_OFF
C_OFF
D_OFF

kar=kar_old=K_KOZ;

state=0;

vissza:
if(state==0)
{ //itt egyik fet sincsen bekapcsolva
if(kar==K_MIN)
{
state=11;
goto kozos;
}
if(kar==K_MAX)
{
state=8;
goto kozos;
}
if(kar==K_KOZ)
{
state=1;
goto kozos;
}
if((kar>K_MIN)&&(kar<K_KOZ))
{ //hatra
t_on= T_ON[K_KOZ-kar];
t_off=T_OFF[K_KOZ-kar];
state=6;
goto kozos;
}
if((kar>K_KOZ)&&(kar<K_MAX))
{ //elore
t_on= T_ON[kar-K_KOZ];
t_off=T_OFF[kar-K_KOZ];
state=4;
goto kozos;
}
goto kozos;
}
if(state==1)
{ //state 0 -> full stop
C_ON
D_ON
W_CD_ON
state=2;
goto kozos;
}
if(state==2)
{ //full stop C-D bekapcsolva
if(kar!=kar_old) state=3;
goto kozos;
}
if(state==3)
{ //full stop -> state 0
C_OFF
D_OFF
W_CD_OFF
state=0;
goto kozos;
}
if(state==4)
{ //normal elore
if(kar!=kar_old) state=5;
A_ON
W_A_ON
D_ON
W_PWM_ON
A_OFF
W_A_OFF
C_ON
W_PWM_OFF
C_OFF
D_OFF
W_CD_OFF
goto kozos;
}
if(state==5)
{ //normal elore -> state 0
state=0;
goto kozos;
}
if(state==6)
{ //normal hatra
if(kar!=kar_old) state=7;
B_ON
W_B_ON
C_ON
W_PWM_ON
B_OFF
W_B_OFF
D_ON
W_PWM_OFF
C_OFF
D_OFF
W_CD_OFF
goto kozos;
}
if(state==7)
{ //normal hatra -> state 0
state=0;
goto kozos;
}
if(state==8)
{ //state 0 -> full elore
D_ON
W_D_ON
A_ON
W_A_ON
state=9;
goto kozos;
}
if(state==9)
{ //full elore A-D bekapcsolva
if(kar!=kar_old) state=10;
goto kozos;
}
if(state==10)
{ //full elore -> state 0
D_OFF
W_D_OFF
A_OFF
W_A_OFF
state=0;
goto kozos;
}
if(state==11)
{ //state 0 -> full hatra
B_ON
W_B_ON
C_ON
W_C_ON
state=12;
goto kozos;
}
if(state==12)
{ //full hatra B-C bekapcsolva
if(kar!=kar_old) state=13;
goto kozos;
}
if(state==13)
{ //full hatra -> state 0
C_OFF
W_C_OFF
B_OFF
W_B_OFF
state=0;
goto kozos;
}
kozos: kar_old=kar;
//itt lehet frissiteni a kar erteket
if(kbhit())
{
c=getch();
if(c==Ƌ') kar=K_MAX;
if(c==Ɗ') if(kar<K_MAX) kar++;
if(c==Ɖ') kar=K_KOZ;
if(c==ƈ') if(kar>K_MIN) kar--;
if(c==Ƈ') kar=K_MIN;
}

goto vissza;




a magyarazat a kovetkezo reszben fog szerepelni, de addig is, akik meg csak most ismerkednek a programozassal
nezzek meg, hogy milyen sok mindent mar siman meg tudnak erteni a programbol!!! (termeszetesen minden egyes
betu/jel el lesz magyarazva, szoval nem kell felni

akiket pedig a konkret pwm vezerles erdekli elsosorban, azok magat a kapcsolok kapcsolgatasat tanulmanyozzak
a kovetkezokben errol is lesz szo reszletesen

minden esetre az mar lathato, hogy egy ilyen masszive vezerlo azert nem olyan tul egyszeru dolog, na ugy ertem,
hogy oda kell figyelni, ha korrekt vagy egy megoldashoz, akkor a megoldas is korrekt lesz hozzad

a kovetkezokben, ha nem huzodik el nagyon az ismertetes, gozerovel elkezdjuk novelni a teljesitmenyt
ez abban fog megnyilvanulni, hogy egyreszrol kidobaljuk a p-feteket, masreszrol a tapfeszultseggel felmegyunk
ameddig csak tudunk


Előzmény: alfcoder, 2009-12-28 22:46:00 [5350]


alfcoder | 182    2009-12-28 22:46:00 [5350]




kerem a gyakorlo/profi programozokat, hogy stilszeru legyek, ugorjanak a *** bekezdeshez


sokat tortem a fejemet azon, hogy a most kovetkezo reszbe erdemes e belemenni, de vegulis ugy dontottem,
hogy mivel olyan egyszeru fogalmak fognak szobakerulni, hogy nem erne meg nem megtenni, arrol mar nem is
beszelve, hogy az itt megismerteket ha masra nem is, de egy alap eligazodashoz mindenki fel fogja tudni hasznalni

ha eddig nem lett volna vilagos, a programozasrol lesz szo, ugy fogjuk megkozeliteni a dolog, hogy sorravesszuk,
hogy milyen reszekbol/fogalmakbol all a programozas:

1.utasitas: ez egy elemi egyseg ami megmondja a cpu -nak (processzor/feldolgozo egyseg), hogy mit kell csinaljon
pl: a+b, egy kutyanak is lehet adni utasitast: gyere ide!

2.memoria: egysegesen felosztott tarolo hely, pl. egy kockas fuzetlap, nyilvan azt jo tudni, hogy mi hol van
a memoriaban, tehat szuksegesek a memoria cimek is, a postas is igy tudja, hogy hova hozza nekunk a leveleket

3.program-memoria: itt van eltarolva maga a programunk, azaz az utasitasok amiket szeretnenk, hogy a cpu
megcsinaljon, pl. ha lekuldenek valakit vasarolni, akkor a bevasarlo cetlit lehet tekinteni program-memorianak
vagy pl. egy hataridonaplot, hogy az elet ne legyen tul bonyolult, az egyes utasitasokat szepen egymas utan
szoktak elhelyezni a program-memoriaban, tehat amikor az egyik dolgot megcsinaltuk, megyunk a masikra

4.munka-memoria: ez semmi tobb mint a programunknak adott munkaterulet, ahol o tetszolegesen tarolhat, torolhet
modosithat, megnezhet dolgokat

5.valtozo: ez egy nevvel ellatott munka-memoria cim es meret, pl. a kutya nevu valtozo ezek utan a fuzet 3 -dik
oldalan belul az 5 -os sor 12db kockaja lesz, szoval ez arra jo csupan, hogy ne kelljen ilyen hulyen beszelni,
hogy itt meg ott meg hol mennyi helyen, hanem csak azt mondom, hogy irjal 3 x-et a kutyaba, vagy na mi van
a kutyaban?

6.aritmetika: a matematikaban szereplo muveletek, tobbnyire alap muveletek, pl. osszeadas, kivonas, osztas, szorzas
gyokvonas, hatvanyozas

7.feltetel: valami vagy igaz vagy hamis, pl. ha azt mondom, hogy a feltetelem az, hogy "alma es korte", ami nyilvan
csak akkor lesz igaz, ha mind az alma es mind a korte valtozo igaz, minden mas esetben a feltetelem hamis
eleg sok feltetel lehetseges, pl. az un. relaciok is feltetelek, tehat, hogy valami egyenlo valamivel, valami
nem egyenlo valamivel, valami kisebb valaminel, nagyobb, nagyobb es egyenlo stb.
nem art megjegyezni, hogy egyes utasitasok vegrehajtasat lehet kotni feltetelekhez, szoval valamelyik utasitas
csak akkor hajtodik vegre, ha egy feltetel igaz

8.kulvilag-kapcsolat: nyilvanvaloan a programunknak szuksege lesz arra, hogy a kulvilagtol kapjon, ill. a annak
kikuldjon dolgokat, ilyenekre gondolok, hogy merevlemez, file, monitor, billentyuzet, printerport

9.programfutas vezerles: ez egy nagyon egyszeru es nagyon fontos dolog, fentiekben mar volt rola szo, hogy
a program utasitasaink szepen sorban helyezkednek el a program-memoriaban, sajnos egy ilyen merev szerkezettel
nem tul hatekonyan tudnank dolgozni, kepzeljunk el egy peldat: minden nap be kell menni dolgozni, szepen sorban
nap, naputan, igen am, de mi van akkor, ha hetvege van, vagy valamilyen unnep, vagy betegek vagyunk???
nos a merev szerkezet, erre nincsen tekintettel! szoval meg kell engednunk, hogy a programfutas flexibilis legyen
mint ahogyan ezt mindjart lathatjuk, es ami a lenyeg, hogy ezek utan mar keszen is vagyunk

10.direkt ugras: ez egyszeru dolog, a cpu egyszercsak rafut egy olyan utasitasra, hogy ugorjunk a 123 -as sorra
es akkor a kovetkezo utasitast mar onnan veszi szepen sorban, ameg nem tortenik megint egy programfutas vezerles
az milyen jo moka mikor pl. a 42-es sorban levo utasitasnak azt adom meg, hogy ugrojon a 42-es sorra
hazi feladat, hogy egy ilyen szituaciobol hogyan tud kikeveredni a cpu, ugy ertem ha egy ilyen megtortent, hogyan
tudunk megis feladatokat elvegezni

11.felteteles ugras: nos itt az, van, hogy csak abban az esetben ugrunk, hogyha valamilyen feltetel igaz, pl.
fut a programunk es kozben egy valtozo csokken, majd e programresz aljan az van, ha a valtozo nem nulla, akkor
ugorjon a programresz elejere, belathato, hogy igy lehet iranyitani, a valtozo segitsegevel, hogy egy
programreszlet hanyszor fusson le, nem akartam de megis irok ide egy peldat:

221: ....
222: csokkenteni a macska valtozot 1-el
223: kiirni a kepernyore a macska valtozo ketszereset
224: ha a macska nem egyenlo nullaval akkor ugrani a 222 -es sorra
225: ....

(azert nem akartam ilyesmiket irni, mert velemenyem szerint egy ilyen huzas melysegesen megserti az olvaso
onerzetet, mert hulyenek van nezve, mert akarmennyire is az elejen legyen a programozasi ismereteknek azt
egybol kitalalja, hogy a cpu-ban nem ilyen szep-fogalmazasos modon mennek a dolgok)

12.fuggveny hivas: ennek is a matematikabol kolcsonvett alapjai vannak, tipikusan van egy elkulonitett
program reszlet aminek van egy cime nyilvan, namost fut a foprogram, majd mikor szuksegunk van az elkulonitett
reszre, akkor annyit mondunk, hogy eltaroljuk azt a cimet ahol vagyunk (jobban mondva a kovetkezot) es elugrunk
az elkulonitett programreszhez, ott lefutnak szepen egymas utan az utasitasok, majd a vegen az van, hogy ugorj
vissza az eltarolt cimre (most mar lathato, hogy miert a kovetkezo cimet kellett eltarolni
ez ilyen egyszeru, szoktak meg valamilyen adatot/parametert adni az elkulonitett programresznek, ill. az
elkulonitett szokott meg vissza adni erteket, pl. a fuggvenyem az, hogy a bejovo valtozo erteket megszorozza
kettovel es ezt adja vissza, akkor ha a foprogrambol meghivom ezt a fuggvenyt egy 10-es parameterrel, akkor
20-al jon vissza mint visszateresi ertek

13.megszakitas: ennek szerencsere csak a neve furcsa, amugy egy remek jo szolgalatot nyujto cuccos
itt arrol van szo, hogy nem nekem kell hivni egy elore meghatarozott fuggvenyt, hanem az automatikusan meghivodik,
ha egy szinten elore beprogramozott feltetel teljesul (igaz lesz), gondoljuk meg mifele kavarodas volna, ha nem
lehetne igy elore beprogramozni a fuggvenyt vagy a vegrehajtodasi feltetelet

milyen feltetelek lehetnek ezek? pl. egy vonal lehuzodik a foldre, megnyomnak egy gombot, eltelt egy adott ido,
minden egyes millisec -nel meghivodik egy fuggveny, a marha program nullaval akart osztani


*** igen, igen, ide ugrottak a profi programozok, na most, ha az un. state-machine is a mindennapi programozas
resze, akkor arra kernem meg oket, hogy megy egyszer, de mostmar utoljara legyenek szivesek ugrani a ****
reszhez, ahol a tenyleges iranyvaltos pwm algoritmus kerul ismertetesre


szoval akkor mi is ez a state-machine, nos ez egy programozasi trukk, amivel idot es energiat takarithatunk meg
magunknak, az algoritmusok igen nagy resze pontosan azert van kitalalva, hogy ne kelljen sokat dolgozni, vagy
tul sok mindenre figyelni, tul sok minden fejben tartani, a masik reszukkel a vegrehajtas hatekonysagat tudjuk
novelni (a harmadik tipusnal szellemi perverzioinkat eljuk ki

a state-machine eseteben kulonallo programreszek vannak, amik kozul mindig csak az egyikben vagyunk, ott futnak
a programsorok, ezekre a kulonallo programreszekre igaz egy allapot (state) azaz azert vagyok az egyikben mert
egy jol definialt allapot van ervenyben, hetkoznapi pelda: "lefekveses allapot" "reggelizo allapot" "tv nezo allapot"
"bevasarlos allapot" "dolgozo allapot" tehat ha a tv nezo allapotban vagyok akkor nyilvan nem vasrolok be, nem
dolgozok, hanem ulok a fotelban es nezem a musort, erre a tevekenysegre pontosan ez jellemzo, a masik fontos dolog,
hogy tudjak mozogni az egyes allapotok kozott, most kepzeljuk el, ha orokre beragadna valaki a bevasarlos allapotba
:) nos pontosan ugy mint a hetkoznapi eletunkben ezekhez az allapot-valtasokhoz (mozgasokhoz) egy nagyon jol
meghatarozott feltetel tartozik: ha mar keso este van es faradt vagyok, akkor a tv nezos allapotbol atmegyek a
lefekveses allapotba, de nyilvan olyat nem lehet csinalni (vagy nem erdemes) hogy a bevasarlos allapotbol atmegyek
csak ugy hirtelen ott a boltban a lefekvesesbe de olyan azert van, hogy a bevasarlosnal ha mar bevasaroltam
vagy tul sokan voltak a boltban es feladtam, akkor atmegyek a hazamenos allapotba, majd ha mar otthon vagyok akkor
ha faradt vagyok akkor atmegyek a lefekvesesbe, vagy a tv nezosbe ha meg nem vagyok faradt

szoval a lenyeg, hogy jol meghatarozott helyek vannak, jol meghatarozott atmenesi feltetelekkel a jol meghatarozott
atlepesi helyekre

maga az implementalasa a state-machine -nak ugy tortenik, hogy van egy valtozonk a state_num, ez mutatja, hogy melyik
allapotban vagyunk es egy fociklusbol allandoan megnezzuk, hogy milyen allapothoz, milyen programreszek szuksegesek,
tulajdonkeppen azt biztositjuk, hogy ha a state_num egyenlo 3-al akkor a 3-as programreszlet fusson le, de a tobbi
ne, termeszetesen az atmenetekre figyelni kell, tehat, ha a 3-asban vagyunk akkor kell figyelni, hogy nem e teljesult
egy atmenesi feltetel ami mondjuk atvisz minket az 5-os programreszbe, valahogy igy:


program itt indul:
.....
.....
state_num legyen egyenlo 2-vel
.....
.....

fociklus:


ha state_num egyenlo 1 -el akkor ezeket csinald:
.....
.....
ha ez akkor state_num legyen egyenlo 2-vel
.....
ha az akkor state_num legyen egyenlo 3-al
.....
ugorj a kozos-sorra


ha state_num egyenlo 2 -vel akkor ezeket csinald:
.....
.....
ha akarmi akkor state_num legyen egyenlo 3-al
.....
ugorj a kozos-sorra


ha state_num egyenlo 3 -al akkor ezeket csinald:
.....
.....
ha ez meg az, akkor state_num legyen egyenlo 1-el
.....
.....
.....
ugorj a kozos-sorra


kozos-sor:
.....
.....
.....
akar tv-t nezek akar alszok, lelegeznem azert kell!!!
.....
.....
ugorj a fociklus-sorra




**** iranyvaltos pwm algoritmus itt kezdodik:


magyarazo abra a konfiguraciorol:








ezekre a a program hivatkozik es hogy mi tortenik ilyenkor:


A_OFF kikapcsolja az A kapcsolot
B_OFF kikapcsolja a B kapcsolot
C_OFF kikapcsolja a C kapcsolot
D_OFF kikapcsolja a D kapcsolot

A_ON bekapcsolja az A kapcsolot
B_ON bekapcsolja a B kapcsolot
C_ON bekapcsolja a C kapcsolot
D_ON bekapcsolja a D kapcsolot

W_A_ON varakozas, hogy az A kapcsolo bekapcsolodjon
W_B_ON varakozas, hogy a B kapcsolo bekapcsolodjon
W_C_ON varakozas, hogy a C kapcsolo bekapcsolodjon
W_D_ON varakozas, hogy a D kapcsolo bekapcsolodjon
W_CD_ON varakozas, hogy a C es a D kapcsolo bekapcsolodjon

W_PWM_ON a pwm magas/aktive idejet kivarja

W_A_OFF varakozas, hogy az A kapcsolo kikapcsolodjon
W_B_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_C_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_D_OFF varakozas, hogy a B kapcsolo kikapcsolodjon
W_CD_OFF varakozas, hogy a C es a D kapcsolo kikapcsolodjon

W_PWM_OFF a pwm alacsony/passzive idejet kivarja



es akkor a program:


inicializalas:

K_MIN=0;
K_KOZ=200;
K_MAX=400;

A_OFF
B_OFF
C_OFF
D_OFF

kar=kar_old=K_KOZ;

state=0;

vissza:
if(state==0)
{ //itt egyik fet sincsen bekapcsolva
if(kar==K_MIN)
{
state=11;
goto kozos;
}
if(kar==K_MAX)
{
state=8;
goto kozos;
}
if(kar==K_KOZ)
{
state=1;
goto kozos;
}
if((kar>K_MIN)&&(kar<K_KOZ))
{ //hatra
t_on= T_ON[K_KOZ-kar];
t_off=T_OFF[K_KOZ-kar];
state=6;
goto kozos;
}
if((kar>K_KOZ)&&(kar<K_MAX))
{ //elore
t_on= T_ON[kar-K_KOZ];
t_off=T_OFF[kar-K_KOZ];
state=4;
goto kozos;
}
goto kozos;
}
if(state==1)
{ //state 0 -> full stop
C_ON
D_ON
W_CD_ON
state=2;
goto kozos;
}
if(state==2)
{ //full stop C-D bekapcsolva
if(kar!=kar_old) state=3;
goto kozos;
}
if(state==3)
{ //full stop -> state 0
C_OFF
D_OFF
W_CD_OFF
state=0;
goto kozos;
}
if(state==4)
{ //normal elore
if(kar!=kar_old) state=5;
A_ON
W_A_ON
D_ON
W_PWM_ON
A_OFF
W_A_OFF
C_ON
W_PWM_OFF
C_OFF
D_OFF
W_CD_OFF
goto kozos;
}
if(state==5)
{ //normal elore -> state 0
state=0;
goto kozos;
}
if(state==6)
{ //normal hatra
if(kar!=kar_old) state=7;
B_ON
W_B_ON
C_ON
W_PWM_ON
B_OFF
W_B_OFF
D_ON
W_PWM_OFF
C_OFF
D_OFF
W_CD_OFF
goto kozos;
}
if(state==7)
{ //normal hatra -> state 0
state=0;
goto kozos;
}
if(state==8)
{ //state 0 -> full elore
D_ON
W_D_ON
A_ON
W_A_ON
state=9;
goto kozos;
}
if(state==9)
{ //full elore A-D bekapcsolva
if(kar!=kar_old) state=10;
goto kozos;
}
if(state==10)
{ //full elore -> state 0
D_OFF
W_D_OFF
A_OFF
W_A_OFF
state=0;
goto kozos;
}
if(state==11)
{ //state 0 -> full hatra
B_ON
W_B_ON
C_ON
W_C_ON
state=12;
goto kozos;
}
if(state==12)
{ //full hatra B-C bekapcsolva
if(kar!=kar_old) state=13;
goto kozos;
}
if(state==13)
{ //full hatra -> state 0
C_OFF
W_C_OFF
B_OFF
W_B_OFF
state=0;
goto kozos;
}
kozos: kar_old=kar;
//itt lehet frissiteni a kar erteket
if(kbhit())
{
c=getch();
if(c==Ƌ') kar=K_MAX;
if(c==Ɗ') if(kar<K_MAX) kar++;
if(c==Ɖ') kar=K_KOZ;
if(c==ƈ') if(kar>K_MIN) kar--;
if(c==Ƈ') kar=K_MIN;
}

goto vissza;




a magyarazat a kovetkezo reszben fog szerepelni, de addig is, akik meg csak most ismerkednek a programozassal
nezzek meg, hogy milyen sok mindent mar siman meg tudnak erteni a programbol!!! (termeszetesen minden egyes
betu/jel el lesz magyarazva, szoval nem kell felni

akiket pedig a konkret pwm vezerles erdekli elsosorban, azok magat a kapcsolok kapcsolgatasat tanulmanyozzak
a kovetkezokben errol is lesz szo reszletesen

minden esetre az mar lathato, hogy egy ilyen masszive vezerlo azert nem olyan tul egyszeru dolog, na ugy ertem,
hogy oda kell figyelni, ha korrekt vagy egy megoldashoz, akkor a megoldas is korrekt lesz hozzad

a kovetkezokben, ha nem huzodik el nagyon az ismertetes, gozerovel elkezdjuk novelni a teljesitmenyt
ez abban fog megnyilvanulni, hogy egyreszrol kidobaljuk a p-feteket, masreszrol a tapfeszultseggel felmegyunk
ameddig csak tudunk



LZ | 1538    2009-12-28 22:35:00 [5349]

Nagyrészt az optó szed össze valami szart. Tápot is kell neki adni valószínű onnan. (TLP113)
De anélkül direktben hajtva is voltak gondok ha jól emlékszem, már annyi mindent végigzongoráztam. De ez a kondi meg digit szűrés lett a megoldás. Nálam az is nagy probléma, hogy egy panelon van minden, betáppont ugyanaz. Egyedül az optó bemenet megy külön az lpt-re. Nehéz tökéletesen szűrni a motorzavarokat, de egész jól lehet csökkenteni őket.

Előzmény: keri, 2009-12-28 21:58:00 [5348]


keri | 14007    2009-12-28 21:58:00 [5348]

Ha üresen lóg a levegőben akkor nekem is mozog össze vissza, de ha rajta van a számítógép az stabilan tartja. Mondjuk ha a printerkábelt a motor vezetékeivel keverem akkor néha bejönnek fals lépések, de ez üzem szerűen nem fordul elő.

Nekem felfutó élre azonnal megszakít, viszont a PIC egyetlen megszakítás vonallal rendelkezik ezért muszáj ellenőrizni hogy melyik esemény okozta a megszakítást ez időbe telik. Ha a tranziensnek vége mire ellenőrzöm a step jelet, akkor nem történik semmi csak visszatér. Szerintem ez önmagában is elég jó zavarszűrés.

De mint mondtam nem érzékeny a PIC. Csináltam egy számlálót ami a radarunk encoderének az impulzusait számolja megszakítással fordulatonként, mert az volt a gyanúja az egyik kollégának hogy téveszt az enkóder. 2 hétig atom stabilan 4096-on állt a számláló (raktam bele szélsőérték memóriát) pedig ott direkt kiiktattam mindent ami a tranzienseket elnyomhatja.

Előzmény: LZ, 2009-12-28 21:31:00 [5347]


LZ | 1538    2009-12-28 21:31:00 [5347]

Igen dettó u.a mint nálam.
Nekem van még a bemeneten egy 10mbites optó is. Nem volt felesleges megszakításod? Mert nálam
a megszakítás vonalra olyan zavaró jelek ültek rá, hogy össze vissza lépkedett még magában is nemhogy amikor küdtem neki a lépésjeleket. Küldtem neki 100 lépést majd lépett 2xx. Aztán úgy sikerült kompenzálnom, hogy került az optó kimenetére egy 4.7n kondi, a megszakításban pedig kénytelen vagyok várni 5us és utána törölni a megszakítás flaget. Így elfogadhatóan működik, többször is leszámoltam a lépéseket amiket kapott és kiirattam magamnak. Eddig jó, de valahogy félek tőle, nehogymá meló közben találja ki hogy többet vagy kevesebbet lép.

Előzmény: keri, 2009-12-28 21:25:00 [5345]


keri | 14007    2009-12-28 21:26:00 [5346]

régebben olyan pic volt benne amin nem volt megszakítás, ott pedig egy ciklusban figyeltem a bemeneteket és kapcsolgattam a kimeneteket.

Előzmény: LZ, 2009-12-28 21:17:00 [5343]


keri | 14007    2009-12-28 21:25:00 [5345]

Igen, a step jelre megszakít, és a dir alapján hozzáad vagy levon egyet a pozíció változóból, ami megcímez egy programsort, ami a megfelelő kimeneteket kapcsolja.
Elég egyszerű.
Aztán ha egy adott ideig nincs léptetés, akkor elkezdi ki be kapcsolni 20% PWM-el a kimenetet, hogy ne melegedjen álló helyzetben a motor.

Előzmény: LZ, 2009-12-28 21:17:00 [5343]


LZ | 1538    2009-12-28 21:17:00 [5344]

Helyesen megszakításban.

Előzmény: LZ, 2009-12-28 21:17:00 [5343]


LZ | 1538    2009-12-28 21:17:00 [5343]

Had kérdjem már meg, hogyan vezérled programból a lépést. A step jel egy megszakítás lábon van és ha felfutó él jön lépsz egyet megszakításból?

Előzmény: keri, 2009-12-28 21:15:00 [5341]


keri | 14007    2009-12-28 21:17:00 [5342]

A másik panel amiről az egész megy az csak a tápegység.

keri | 14007    2009-12-28 21:15:00 [5341]

Az a PIC ami meghajtja a FET-eket step/dir jelek alapján.
Annyit szúrtam el rajta, hogy nem raktam rá ICSP csatlakozót, így programozáshoz ki kell venni, ezért picit macerás.

Előzmény: LZ, 2009-12-28 21:11:00 [5340]


LZ | 1538    2009-12-28 21:11:00 [5340]

A tied sem rossz. Szép így bedobozolva.
Egyébként mi az a 8 lábú állatka a végfokpaneleken?

Előzmény: keri, 2009-12-28 21:08:00 [5339]


keri | 14007    2009-12-28 21:08:00 [5339]

Tied kicsit szebb mint az enyém

Előzmény: LZ, 2009-12-28 20:42:00 [5337]


keri | 14007    2009-12-28 21:03:00 [5338]

Vazz...most raktam össze, pedig gondoltam hogy még nem kéne




Előzmény: elektron, 2009-12-28 20:27:00 [5335]


LZ | 1538    2009-12-28 20:42:00 [5337]

Na akkor ha mutogatunk, itt az enyém: )
első
masodik
dobozában véglezáró nélkül még.


keri | 14007    2009-12-28 20:30:00 [5336]

elég lusta vagyok így szeretek a végletekig egyszerűsíteni )

Viszont most egy nagyobb feszültségű kapcsolást akarok összerakni, oda nincs logikai FET, szóval kénytelen leszek én is drivert használni.

Előzmény: LZ, 2009-12-28 20:25:00 [5333]


elektron | 15859    2009-12-28 20:27:00 [5335]

Egészében hogyannéz ki ? Hagy gyönyörködjünk.

Előzmény: keri, 2009-12-28 20:26:00 [5334]


keri | 14007    2009-12-28 20:26:00 [5334]

Azt a kapcsolást raktam be az előbb.
Aminek az egyik FET pár meghajtását lefotóztam.

Előzmény: elektron, 2009-12-28 20:23:00 [5332]


LZ | 1538    2009-12-28 20:25:00 [5333]

KOrrekt, az IRL mentette meg a kapcsolást, most hogy jobban megnéztem, egész ötletes is. :O))
Én már nem merek csak FET driverrel szerelni, igaz ilyen logikai vezérlésűt még nem használtam. Nem véletlenül találták ki az biztos, alkatrész spórolós.

Előzmény: keri, 2009-12-28 20:19:00 [5331]


elektron | 15859    2009-12-28 20:23:00 [5332]

Na most ebből a nyákból vissza reverse engineeringezzük a kapcsolást.

Előzmény: keri, 2009-12-28 20:12:00 [5330]

keri | 14007    2009-12-28 20:19:00 [5331]

Bipoláris léptetőmotor meghajtónál nincs közvetlen irányváltás csak egy lépés kikapcsolt állapottal, és ugye a léptető motor lassabb mint a FET
LED meghajtásnál is csak egy irányba hajtottam, bár az a változat már valóban nem 10k-s, hanem 1k-s ellenállással készült. A képen szereplő példány a leg első és olyan ellenállást raktam bele ami a kezem ügyébe akadt.

Előzmény: LZ, 2009-12-28 20:07:00 [5329]


keri | 14007    2009-12-28 20:12:00 [5330]

20khz nyögve nyelősen??? Na azzal még hideg a FET pedig semmi hűtése nincs.
Kedvedért szétszedtem a léptető motor meghajtómat csak hogy lásd mi van benne

Előzmény: LZ, 2009-12-28 19:16:00 [5324]


LZ | 1538    2009-12-28 20:07:00 [5329]

Azt valóban nem figyeltem, leragadtam a híd tetején. Nagy frekin már tuti csak az alsó FET dolgozik(kapcsolgat). Irányváltásnál van egy rövid idő amíg midkét FET vezet.

Előzmény: keri, 2009-12-28 19:47:00 [5327]


elektron | 15859    2009-12-28 19:55:00 [5328]

Nézzük meg egy 100 ohmos terheléssel a fet-ek kimenetén mi lesz ?

Előzmény: keri, 2009-12-28 19:47:00 [5327]


keri | 14007    2009-12-28 19:47:00 [5327]

Elfelejted az IRLZ44N-t. Azon nincs ellenállás közvetlenül van meghajtva, ezért vélhetőleg gyorsabban zár le, illetve nyit.(mivel működik nem nézegettem szkópon)

500khz négyszögjelet a PIC kimenetén mértem

500khz PWM-et pedig LED meghajtásra használtam ezzel a kapcsolással, meg egy induktivitással.

Építettem egy modult, ami tartalmazza ezt, meg egy 8 lábú PIC-et, van belőle vagy 6db és legó szerűen mindenre ezt használom amit valami program alapján kell kapcsolgatni.

Előzmény: LZ, 2009-12-28 19:16:00 [5324]


svejk | 32803    2009-12-28 19:44:00 [5326]

Nem csodálom...
Egyébként valamire való FET meghajtás mindig asszimmetrikus, mivel kb. 4V-nál van az Ugs könyökpontja.


keri | 14007    2009-12-28 19:39:00 [5325]

1k ohm van a FET gatején.
De 500Khz-n azért melegszik már.

Előzmény: svejk, 2009-12-28 19:13:00 [5323]


LZ | 1538    2009-12-28 19:16:00 [5324]

Hát én ugyanezt a kapcsolást használom a ledes szpotjaimban, IRFR5305 FET van benne egy NPN tranyó és 1K ellenállat van a gate-n a tápra. 20Khz nyögvenyelősen de megy bár csúnyácska a négyszög, 40kHz pedig teljesen megáll. Komolyan mondom én megeszem a kalapom ha 500Khz le tud zárni a FET. Ott már 200ohm alatt van a gate ellenállása, és te 10K-val zárnád le. Lehetetlen!!! )

Előzmény: keri, 2009-12-28 17:25:00 [5321]


svejk | 32803    2009-12-28 19:13:00 [5323]

Mekkora értékűek azok az RE2S ellenállások hogy 500kHz-en is szépen működik?
Meg hogy nem kell gate ellenállás??
Az a lelke az egésznek...nem olvastad Alfcoder közérthető szösszenetét, ha eddig nem ismerted ezt a részét..?

Előzmény: keri, 2009-12-28 16:45:00 [5317]


keri | 14007    2009-12-28 17:27:00 [5322]

Milyen frekvenciára tervezel te?

Előzmény: elektron, 2009-12-28 17:00:00 [5320]

keri | 14007    2009-12-28 17:25:00 [5321]

Biztos benne van az adatlapban, amit most lusta vagyok megnézni, de azt tudom hogy 500khz-es négyszögjel még tökéletes négyszögjel skópon nézve a kimeneten. Igen kb.20mA-ert bírnak folyamatosban, mert egy sima LED-et közvetlenül meg tud hajtani.

FET gatejére nem láttam értelmét ellenállást rakni, mivel az a cél hogy minél gyorsabban nyisson, egyenáramú szempontból pedig elég nagy az ellenállása, hogy ne zavarja a PIC-et.

A felső FET-en 10k-s ellenállást használtam, de 1k-val gyorsabb lehet, bár jelentősége nincs, mert az alsó úgy is gyorsabban zár le.

Előzmény: elektron, 2009-12-28 16:59:00 [5319]


elektron | 15859    2009-12-28 17:00:00 [5320]

Aztán láttam olyan kapcsolást, ahol a meghajtást hagyományos CD40.. ivel oldották meg, annak több kimenetét párhuzamosítva, a megfelelő áram mennyiség igényhez. Meg azok az IC-k gyorsak is. FET.

Előzmény: elektron, 2009-12-28 16:59:00 [5319]


elektron | 15859    2009-12-28 16:59:00 [5319]

Arra azért kíváncsi lennék, hogy egy PIC vagy AVR kimenetével közvetlenül meghajtott ilyen FET mennyi idő alatt kapcsol be. Ezt megmérni. EZek a kimenetek igaz, hogy korlátozott áramot tudnak szolgáltatni hosszabb idő átlagban, de pillanatnyi áramimpulzust lehet tudnak többet is, mint a 20-40mA körüli érték, amit tudnak ?

Mert én ahogy olvasgattam, kb. 80-100ns kapcsolási idő már jó a FET-ekre, ilyenekre szokták korlátozni soros ellenállással is pl.

Előzmény: keri, 2009-12-28 16:45:00 [5317]


elektron | 15859    2009-12-28 16:54:00 [5318]

Ezt jó hallani, hogy ez bevált. Köszönjük a kapcsolást.

Előzmény: keri, 2009-12-28 16:45:00 [5317]


keri | 14007    2009-12-28 16:45:00 [5317]

Na most 12-16V-ra az általam használt alap kapcsolásnál nincs egyszerűbb és ezt tuti működik.
500khz-nál már melegedtek kicsit a FET-ek, de nincs szükség ilyen nagy frekire motor meghajtáshoz.

Ha meg komolyabbat akarsz akkor FET meghajtóra van szükséged, vagy teljesítmény tranzisztorra.

Előzmény: elektron, 2009-12-28 16:23:00 [5315]


  Fórum főoldal  |  A lap tetejére

Időrend:
Oldal 384 / 490 Ugrás ide:
Sorok:
|◄ Első  ◄ Előző   380  381  382  383  384  385  386  387  388   Következő ►  Utolsó ►|


 ◊