Fórum témák

» Több friss téma
Fórum » AVR - Miértek hogyanok
 
Témaindító: pakibec, idő: Márc 11, 2006
Témakörök:
WinAVR / GCC alapszabályok:
1. Ha ISR-ben használsz globális változót, az legyen "volatile"
2. Soha ne érjen véget a main() függvény
3. UART/USART hibák 99,9% a rossz órajel miatt van
4. Kerüld el a -O0 optimalizációs beállítást minden áron
5. Ha nem jó a _delay időzítése, akkor túllépted a 65ms-et, vagy rossz az optimalizációs beállítás
6. Ha a PORTC-n nem működik valami, kapcsold ki a JTAG-et
Bővebben: AVR-libc FAQ
Lapozás: OK   121 / 840
(#) wg_kezdo válasza ATtiny hozzászólására (») Máj 1, 2009 /
 
Jaaa, nem az lenne a távolság mérésének alapja.

Egy multiméterrel kísérleteztem a fototranzisztort, mint fényellenállást használtam. Mellé tettem egy folyamatosan világító infra ledet és leválasztottam egy papírral a kettőt.

Ha közelítek hozzá valamit akkor változik az ellenállása. Ezt ugye lehetne egy 36khz-s infra leddel meg egy SHFxxxxx-el amiben benne van a szűrő meg minden.
Viszont az csak logikai kimenetet produkál. Kipróbáltam fél méterről már jelez akárhogy is variálom az infra ledet meg az árnyékolást stb...

Így viszont a környezeti fény és a led fénye között a tárgy távolságának függvényében fog változni a különbség. Ráadásul, mivel a led fénye állandó így a különbség nagyjából állandó marad függetlenül a környezeti fénytől.

Pl.:
- lámpafénynél 200K
- Bekapcsolom a ledet és nincs előtte semmi akkor marad a 200K
- Bekapcsolom a ledet és előtte van valami akkor visszavert fény miatt visszaesik 150K-ra.
- közelebb viszem kikapcsolva a ledet akkor 200K
- bekapcsolom a ledet akkor mondjuk leesik 50K-ra

Így minél nagyobb a led nélküli és a világító ledes közötti különbség annál közelebb van.

(ezt persze feszosztóval csinálom meg, de a lényege ez)

Remélem jól írtam le, hogy hogy gondolom.
Holnap kipróbálom egy leddel, hogy működik-e.
(#) ATtiny válasza wg_kezdo hozzászólására (») Máj 1, 2009 /
 
Aham, akkor félreértettük egymást. Az elgondolásod elvileg működhet, de én nem vacakolnék analóg fototranzisztorral. Vannak kimondottan mikrokontrollerhez tervezett fény -> frekvencia átalakítók. Bővebben: Link Ezt pl a legelső amit kidobott a google. Egy frekvenciát sokkal egyszerűbb feldolgozni, mint egy analóg jelet.
(#) kendre256 válasza wg_kezdo hozzászólására (») Máj 1, 2009 /
 
Nem tudom, hogy milyen tárgyat, és milyen pontossággal akarsz mérni, de a visszavert fény nem csak a távolságtól fog függni.
Függ még a tárgy felületének nagyságától, a felület fény irányával bezárt szögétől, a felület fényvisszaverő tulajdonságától (szín, abszorbció). A LED fénye csak akkor lehet állandó, ha mindig ugyanakkora árammal táplálod, azonos a hőmérséklete, meg ki tudja még mitől függhet. Ugyanez a fototranzisztorra is elmondható.
Szerintem ilyen módon sem célszerű mérni. Durva távolságérzékelésre jó egy ilyen módszer, de többé-kevésbé pontos mérésre szerintem nem.
(#) wg_kezdo válasza kendre256 hozzászólására (») Máj 2, 2009 /
 
Nekem elég a durva távolságmérés vagyis egy robothoz lesz aminél:
1. fehér vonalat keresünk
2. leesés ellen akarom védeni (pl asztalról)
3. Falnak nem akarom, hogy nekimenjen.
(Ez pl két érzékelőből lesz a fényérzékelővel egy bizonyos szint után lelassít majd egy sima mechanikus érzékelőig fog menni)

Amúgy még azon is gondolkodtam, hogy rakok be egy olyan érzékelőt ami előtt mondjuk 3cm-re van egy fehér akadály (ez csak 3 cm-es darab belefér).
Így az tökéletes viszonyítűsi alap ami kb ugyanazokkal a tulajdonságokkal bír, mint a többi.

Gondolom az ultrahangos mérés lenne a legjobb, de ahhoz, ha jól láttam speciális hangszóró és mikrofon kell ami nagyon drága
(#) TavIR-AVR válasza wg_kezdo hozzászólására (») Máj 2, 2009 /
 
Az ultahangra a legegyszerűbb a Ping)) modul. Erre C-ben (arduino) illetve Bascomban írtam mintát...
2...350 cm-ig mér, 1 cm felbontással....

Ping modul használata
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Máj 2, 2009 /
 
Igen ezt a részt már átnéztem vagyis az ultrahangos dolgokat, de nagyon drága. 6-7000 Ft és nekem 3-4 ilyen szenzor kéne.
Viszont nem kell ennyire pontosnak lenni csak annyira, hogy ne menjen neki, de ne is fél méterről kerülje ki.
(#) szilva válasza wg_kezdo hozzászólására (») Máj 2, 2009 /
 
Ha már fénnyel akarsz mérni, akkor lehet, érdemes lenne valami "vivőfrekis" rendszert építeni. Azaz nem csak folyamatosan világítasz egy IR LED-del, hanem egy ismert frekvenciával szaggatod az IR LED fényét. A vevőben pedig lehetne egy, a szaggatás frekvenciájára hangolt analóg sávszűrő. A sávszűrő kimenetét kellene pl. csúcsegyenirányítani, ebből már talán elég jól meg lehetne saccolni egy IR-fényt visszaverő tárgy közelségét. A folyamatos világításnál nagyon sok problémád lesz a zavarokkal, a környezeti fényekkel. Bár a vivőfrekis megoldásnál meg az analóg áramkörök lesznek kellőképpen bonyolultak.
(#) TavIR-AVR válasza szilva hozzászólására (») Máj 2, 2009 /
 
Reflexiós IR esetére a CNY70-es optorendszer?
A visszajövő jelet meg erősíted és/vagy AVR erősítéses ADC-jére küldöd (pl. M16 már tud ilyet).
(#) TavIR-AVR válasza szilva hozzászólására (») Máj 2, 2009 /
 
Esetleg - hülye kérdés - autók tolatásjelző rendszere? abban 2-4 érzékelő van és a kimenet intenzítása a közelséget meg is adja....
(#) wg_kezdo válasza szilva hozzászólására (») Máj 2, 2009 /
 
Az analóg rendszert kihagynám mivel nem értek hozzá. (Amúgy ez volt nekem is az első gondolatom).

A környezeti fénnyel nem lesz gondom mivel nem folyamatosan világítok, hanem szaggatottan vagyis megmérem a környezeti fényt, majd gyorsan megmérem a leddel világítottat is és a kettő különbségét fogom kiértékelni.
(#) wg_kezdo válasza TavIR-AVR hozzászólására (») Máj 2, 2009 /
 
Nem is rossz ötlet.
13.000-ért találtam 4 szenzorosat.
Tolatóradar

Még mindig jobb, mint 6000 Ft/db-ért venni 4 db-ot.
(#) wg_kezdo hozzászólása Máj 4, 2009 /
 
A mellékelt kapcsolás jó lenne AVR-hez fesz forrásnak?
9V-os akksit kötnék rá ami egy kb 4A-es motort fog meghajtani és ez előtt szednék le ezzel 5V-ot.
Ha jól tudom még kéne valami nagyobb kondi valahova, ha hirtelen megterhelem akkor ne reseteljen?

5V_AVR.gif
    
(#) Topi válasza wg_kezdo hozzászólására (») Máj 4, 2009 /
 
Mennyire kell stabil 5V? Mert ha nem érzékeny az áramkör a stabil öt voltra, akkor például olcsóbb és jobb egy Zener diódás stabilizátor.
Nagyobb kondi 78L05 esetén a kimenetre kell, de ez a 47µF/25V még lehet jó is. Itt a kérdés, hogy mekkora áramfelvétel lesz az 5V-os ágon.
Több módszerrel tudod kiszámolni, hogy mekkora kondi a megfelelő, erre egy sokszor teljesen kielégítő módszert javaslok.

Mekkora kondi kell puffernek?
- Tudjuk a cél készülék áramfelvételét
- És tudjuk egy teszt kapacitás értékét.
Ugye az időállandó RC szorzat. Namos ha egy áramköröd mondjuk 20mA-t fogyaszt, akkor azt képezzük le egy terhelő ellenállásként.
Ekkor a próba ellenállásunk. R = 5V/20mA = 250R
Ha a próba kapacitásunk 47uF, akkor ebből Tau = 250R*47*10-6 = 0,01175 s. Ebben a pillanatban a kimenő feszültség már csak a kiindulási feszültség 37%-a. (63%-a kisült)

Ezután neked kell eldönteni, hogy megfelelő-e.

Ha nagyon érzékeny a zavarokra az áramköröd akkor PI kapcsolásban célszerű egy LC szűrőt alkalmazni, melyet behangolsz egy adott frekvenciára.
Tehát hogyha minden 40Hz-nél nagyobb frekvenciákat el akarsz nyomni, akkor itt az 1/(2*PI*gyök(LC))-vel be kell állítani az alul áteresztő szűrőd vágási frekvenciáját.
Ilyen PI kapcsolású LC szűrővel szokás például rádió vevő tápját leválasztani. Hogy ne jusson át rajta csak a DC elnyomás nélkül és a zavaró frekvenciát egyszerűen vágja le.

Idézet:
„Szerk: 2pi-t kivettem, itt most lényegtelen ebből a szempontból, elég az RC szorzat.”
(#) wg_kezdo válasza Topi hozzászólására (») Máj 4, 2009 /
 
Hu, izé kösz 4x olvastam át mire megértettem, de nagyon tanulságos volt.

Szóval a lényeg, hogy ami nagy áramot vesz fel az csak a motor ami úgy lesz rákötve, hogy egy L298-as IC vezérelné.
Vagyis "laikusan" azt mondanám, hogy nem sok áramot vesz fel az 5V-os ág igazából pont az a célom, hogy az védve legyen.
Gondolkodom még az optocsatolón is vagyis minden olyan lábat ami valami nagy fogyasztót vezérel leválasztok. Ebben az esetben viszont, ha jól tudom a 4N35-el nem lehet jól PWM szabályozott motort meghajtani így inkább kihagynám.

Vagyis az 5V-os ágnál mondjuk a ledek meg minden max 200mA-t fog terhelni.
A 12V-osnál pedig 2-4A is lehet a terhelés.

Az L298-asnál van egy logikai V bemenetem így, ha ugrál az 5V akkor esetleg probléma lehet?

A zéner diódás megoldást megkeresem és átnézem.
(#) wg_kezdo válasza Topi hozzászólására (») Máj 4, 2009 /
 
Ja és, ha jól értettem akkor a rajzon a C4-et kéne megnövelni. Ha mondjuk van itthon 2000µF-es akkor azt is ráköthetném minden probléma nélkül a 47µF-es helyett? (Vagy ez nem lehetséges és nincs is értelme).
(#) vzoole válasza wg_kezdo hozzászólására (») Máj 4, 2009 /
 
Elsőnek: a 78L05 csak 100mA-t bír el! Erre vigyázz, vagy használj 7805-öt az 1A-t bír.

A pufferkondit a stab IC elé rakd jelen esetben C5.

Utánna elég egy 100n + 10u.
Itt a fórumon olvastam, hogy ha túl nagy kondit raksz a stab IC után, akkor melegedni fog az IC.
(#) wg_kezdo válasza vzoole hozzászólására (») Máj 4, 2009 /
 
Nocsak egy névrokon

Köszönöm, el is felejtettem, akkor erre figyelek, hogy csak 100mA-ig.
A C5-öt akkor kicserélem nagyobbra a többit meg változatlanul hagyom.

Most tervezem hozzá a NYÁK-ot.
(#) kendre256 válasza vzoole hozzászólására (») Máj 4, 2009 /
 
Nagyon nagy kondenzátort azért nem szabad a stabilizátor kimenetére rakni, mert akkor később sül ki kikapcsoláskor, mint a bemenetén lévő. A stabilizátorok pedig tönkre mehetnek attól, ha a kimenetükön van feszültség, a bemenetükön pedig nincs. Egyes kapcsolásokban a be-és kimenet közé szoktak rakni egy diódát is (katód a bemenetre, anód a kimenetre), ami biztosítja, hogy a bemeneten a kimenetnél kicsivel kisebb feszültség mindig maradjon, ha a bemenetről lekapcsoljuk a feszültséget.
(#) Dudus válasza kendre256 hozzászólására (») Máj 4, 2009 /
 
Valamint a túl nagy kimeneti kondenzátor a stabilitást is rontja, mert a szerencsétlennek nem csak az áramkört kell kiszolgálnia de a jó nagy kapacitást is töltögetnie kell.
(#) gtk válasza Topi hozzászólására (») Máj 4, 2009 /
 
Valamit nem ertek az idoallando szamitasnal.
Soros RC -nel: T = 2Pi*R*C.
De, a terheloellenallas es a kapacitas parhuzamos RC-t ad az emlitett esetben, nem?
(#) Topi válasza gtk hozzászólására (») Máj 4, 2009 /
 
Párhuzamos RC esetében is a Tau = RC
Ekkor már idő dimenziót kapsz vissza. (Nem kell 2PI)
Tehát ezesetben (250R és 47uF) az RC = 0.01175 másodperc.
Ebben a pillanatban (tehát 1* RC) már 0,36*5V = 1,84V

Ezt tovább lehetne fokozni azzal, hogy meghatározod mit engedsz meg. Ha mondjuk 10%-os "hullámzást" engedsz meg maximum, akkor tudod azt mondtani, hogy
0,9 = 1-e-t/Tau

Ebből tudod mennyi a Tau. Ebből kiszámolható a "t" vagyis az az idő, ami alatt még 10% alatt van a kisülés értéke, vagyis > kezdeti - 10%
0,9 = 1-e-t/0,01175
0,1 = e-t/0,01175
x = -t/0,01175 ->
0,1 = ex
x = ln(0,1) => -2,303 = -t/0,01175 => t = 0,0271 s

Tehát 27ms múlva éri el a 10%-os kisütöttséget.
(#) wg_kezdo hozzászólása Máj 4, 2009 /
 
Nos a következőre juttotam, remélem jó lesz.
Az egyiken az eredeti rajz a másikon pedig ahogy egy próbapanelen elterveztem.
Az egyik kondit megnöveltem 100µF-re ahogy javasoltátok.
(#) gtk válasza Topi hozzászólására (») Máj 4, 2009 /
 
Koszonom a valaszod! (kozben leesett nekem is..)
(#) immi hozzászólása Máj 4, 2009 /
 
Sziasztok!

Atmega128-cal tervezek egy áramkört. Egy erősítő kimenete (VO+, VO-) megy egy lineáris rezisztív négypólus bemenetére, ennek a kimenetét szeretném az Atmega ACD-jével mérni. Tudnátok-e segíteni, hogy kössem össze a négypólus kimenetét az Atmegával? Előre is köszönöm!
Üdv: Imi
(#) aquafood hozzászólása Máj 5, 2009 /
 
Hello!

Atmega8-hoz szeretnék egy nyomógombot illeszteni és programmal azt számolni, hogy hányszor nyomtam meg.
Nem nagyon tudom hogy ezt hogy kell megvalósítani főleg program szinten!
Ha valaki segítene azt megköszönném.
(#) gtk válasza aquafood hozzászólására (») Máj 5, 2009 /
 
MIlyen nyelven kell? C-ben :
- PB0-an nyomogomb GND fele.

  1. unsigned char n = 0;
  2. DDRB &= ~(1 << PB0); //PB0 bemenet
  3. PORTB |= (1 << PB0); //felhuzo ellenallas bekapcsolva
  4.  
  5. if ( !(PINB & (1 << PB0)) )     //ha le van nyomva
  6. {
  7.   // if(n == 10) { n = 0; } // 11. gombnyomasnal ujra egy lesz n erteke
  8.  n++;
  9. }


(#) Mumtaz hozzászólása Máj 6, 2009 /
 
Félve kérdezem meg, de ez működhet, mint programozó?
Valami olyan, hogy rá lehet kötni a céláramkörre és onnan veheti a tápot, vagy külső táppal fel lehet programozni a DIP foglalatba dugott AVR-t.

stk200.jpg
    
(#) tpeter válasza Mumtaz hozzászólására (») Máj 7, 2009 /
 
biztos fog menni a stab. IC 5V-ról?
(#) zsuscsinyo válasza tpeter hozzászólására (») Máj 7, 2009 /
 
Annak legalább +2V-tal többnek kell lennie a kimeneti fesznél, tehát min 7V kell neki, úgytudom 32V-ig működik.
(#) Mumtaz válasza tpeter hozzászólására (») Máj 7, 2009 /
 
A stab IC külső áramforrásnak van. Egy egyszerű szabályozható hálózati adapterrel - ami tud 6-7.5-9-12 Voltot - akkor lehetne használni?
Következő: »»   121 / 840
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