Fórum témák
» Több friss téma |
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
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.
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.
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.
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
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
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.
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.
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).
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....
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.
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.
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?
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.”
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.
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).
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.
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.
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.
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.
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?
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.
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.
Koszonom a valaszod! (kozben leesett nekem is..)
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
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.
MIlyen nyelven kell? C-ben :
- PB0-an nyomogomb GND fele.
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.
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.
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?
|
Bejelentkezés
Hirdetés |