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
Szerintem a TRMS(U)*TRMS(I)*cos(fi) helyett a valós teljesítményt(TRMS(P)) és fogyasztást úgy kéne kiszámolni hogy az AVR-el minél sűrűbben(1 ksps már jó lehet) mintát veszel a feszültség és áramerősség pillanatnyi értékéből majd összeszorzod, az eredményeket pedig összeadod. Biztos hogy lesz valamilyen mérési zaj, de fogadok hogy nem NASA-műszert építesz.
Még megpróbálok venni egy másikat. Ez most a 32lábú smd de szerintem megpróbálok egy simát. Az ATmega128-at meg az ATtiny45-öt tök jól feltudtam programozni. Innen a hobbielektronikáról építettem a programozómat "Első AVR programozóm". Az avr dopert azért nem csináltam meg mert van benne egy IC amit nem tudtam beszerezni. De ez is jl működik, a panel másik oldalára raktam egy áramkört ami 4MHz-et ad ha kizárnám magamat. Újpesten is van egy elektronikai bolt a 3mas metro végálomásától 1 percre azt hiszem az a neve hogy Kontel. Valaki vásárolt már náluk?
Alapvetően három fajta teljesítményt lehet (érdemes) kiszámítani egy korrektül működő teljesítmény mérő esetében. Ezek:
Látszólagos teljesítmény U*I (VA) Hatásos (valós) teljesítmény U*I*cos(fi) (W) Meddő teljesítmény U*I*sin(fi) (VAr) Természetesen mindenhol TRMS feszültség és áram értékek értendők, mivel feltételezhetjük, hogy nem ideális a szinusz görbe. A látszólagos teljesítmény meghatározásával semmi gond nincs, mivel rendelkezésre áll az RMS feszültség és áram értéke. A hatásos és meddő teljesítményhez viszont kellene a cos(fi) és sin(fi). Ha összeszorzom az AVR-el mintavételezett feszültség és áram értékek pillanatnyi értékét, akkor ezeknek az átlagából megkapom a hatásos (valós) teljesítményt? Ez nem lenne rossz, ha működik és kellően pontos. Amúgy a mintavételezés 4,8Khz -el történik és 4095 db mintát gyűjtök össze, mielőtt kiértékelem.
Én a Konthát tudom ajánlani, sokszor vásároltam náluk. Legfeljebb egy kis várakozás(hát igen ha valami jó akkor jönnek) amiért szót emelhetnék, illetve nem árt ha jó előre, pontosan tudod hogy mit akarsz venni mert elég nagy az árukészlet és az eladó mégsem nem kérdezhet rá minden tételnél hogy most ezt vagy ezt kéred.
Volt már olyan hogy a tokozás eltérő volt, de amikor visszavittem szó nélkül kicserélték!
Szerintem elegendően pontos a teljesítménymérés ha a pillanatnyi feszültség*áram értékekkel dolgozol,
mivel a cosfi kiszámítása(FFT és társai) legalább akkora hibát visznek be a rendszeredbe. Egyedül az átváltásoknál kell nagyon vigyázni, illetve nem árt, ha minél nagyobb felbontású változóban(uint32_t uint64_t) tárolsz mindent! A legnagyobb zajt úgyis az viszi be a rendszerbe hogy diszkrét időben mintavételezel diszkrét értékeket, de pl. egy mechanikus mérő esetében minden folytonos időben történik folytonos értékekkel így szinte lehetetlen becsapni! Ennél pontosabb már csak akkor lehetsz ha analóg áramkörökből építesz meg szinte mindent, kezdve az analóg szorzókkal, csúcsegyenirányítókkal, nullpont-átmenet detektorral, integrátorokkal, DAC-átalakítókkal, stb. Szerintem ezek nincsenek benne a 2-4 ezer forintos aldis-teszkós-spáros mérőkben, az E.ON mégis ezeket ajánlja(illetve adja kölcsön) a háztartási készülékek fogyasztásának mérésére!
Köszi a segítséget, akkor beépítem a kódomba a pillanatnyi feszültség és áram szorzatán alapuló teljesítmény mérést is. Ez fájdalommentesen beilleszthető, mivel az RMS számítás is hasonló, csak ott a pillanatnyi értékek négyzetét kell eltárolnom. Majd beszámolok róla, hogy mennyire lett pontos a szerkezet.
Ja igen még egy apróság: a mintavételezett jel négyzetre emelése a zajt is négyzetre emeli.
Érdemes mindig körülnézni az application note-ok környékén. Sokszor lehet hasznos dolgokra találni.
AVR465: Single-Phase Power/Energy Meter with Tamper Detection Bár csak átfutottam, de úgy tűnik kalkulál a cos(fí) -vel, tehát szerintem érdemes lehet átolvasnod.
Sziasztok
Ha egy váltakozó feszültség szintet akarok figyelni egy avr bemenetén, hogy van-e feszültség vagy nincs. Arra jó ez a megoldás?
Hogyne , csak az előtét ellenállás lehetne nagyobb. Mondjuk 4,7k, mert semmire nem kötöd, csak a feszültségszint a lényeg. 100 ohm-mal elég nagy áramok fognak folyni.
Az ingadozás jelen lesz a avr-nél is? Ha igen akkor célszerűbb belső feszültségreferenciát használni, és ennek fényében kisebb feszültségű zener-t bekötni.
Arra ügyelj, hogy egy 4,7 es zéner nem feltétlenül max 4,7V-ot enged át az AVR lábra. Erősen nemlineáris állatok ezek.
A biztonság kedvéért a 100 ohmot cseréld le nagyobbra, ahogy a kolléga is írta pár kOhmra. Persze nem muszáj zénert használni, elég lenne egy 1k 1k fesz osztó pl. Ha pedig félsz, hogy a max fesz 10V-nál több is lehet, akkor köss sorba egy min. 10k-s ellenállást a bemenettel.
Az avr stabil 5v-ról megy. Az 1k-1k fesz. osztóban gondolkodtam én is de azzal az nem baj, hogy 7v-nál csak 3,5v van azt meg már nem biztos magasnak értelmezi a kontroller - ha jól tudom.
Ja, hogy te nem AD-zni akarsz? Mi akadályoz meg abban, hogy AD-z? Ezt a zenerről közvetlenül egy logikai szintet fogadó áramkörre kötés elég érdekes elgondolás.
Átolvastam a ap note -ot és megnéztem a kódot is. Pontosan olyan módszerrel méri az ő kódjuk is a hatásos és látszólagos teljesítményt, mint amit mi itt zombee -val megbeszéltünk. Ők sem vacakolnak a cos fi számítgatásával, hanem a pillanatnyi feszültség és pillanatnyi áram minták szorzatán illetve ezek RMS értékén alapul az egész. Mondjuk az ő kódjuk elég korrekt, abból a szempontból, hogy a bemeneteken jelenlévő zavaró DC-t leszűrik szoftveresen illetve, amire én nem is gondoltam, hogy az áram és feszültség minták fázis eltérését is korrigálják. Azaz az AVR fizikailag csak egymás után képes 2db bemeneti csatorna AD-zását elvégezni és nyilván a 2 művelet között idő telik el. Ezt ők a mintákon korrigálják, mintha egyszerre történt volna a feszültség és áram mérése.
Ez mondjuk igaz, ha jól rémlik 0,8xVCC a magas bemenetre a küszöb.
Egyébként a legegyszerűbb az , hogyha egyszerűen rákötöd egy nagy ellenállással az AVR-re a bemenetet. Ez legyen szerintem min 50k. Az AVR lábain van egy védődióda a tápra, illetve egy a földre kötve. Ha tehát a bemenetre sorba kötsz egy nagy áramkorlát ellenállást, ami emlékem szerint jóval 1mA alá viszi az áramot, akkor direktbe rá lehet kötni nagy feszültségeket. Egy app note taglalja, hogy direktbe akár rákötheted a 230V RMS fázist is 1MOhmos ellenállással. AVR182: Zero Cross Detector Azért előtte nézd meg az adatlapodat, hogy tényleg van benne védődióda. Ha mondjuk nincsen, akkor magad is tehetsz rá. Annyiban jobb megoldás ez a zéneresnél, hogy energiát spórolsz, mivel a zéneren, vagy akár az ellenállásosztón folyamatosan szökik az áram. Ez ráadásul a legkevesebb alkatrészt igényli.
Egy Atmega8-ról lenne szó. Egy három állású kapcsolóval azt akarom, hogy egyik állás kikapcsolva, egy állás egyféle dolgot csinál, harmadik állás másféle dolgot csinál. Mellékelek egy rajzot talán érthető.
Esetleg figyelhetnéd a 9V-os vagy 5V-os feszültséget egy AD lábbal is. Egy sima ellenállás osztó kell. Ennek a megoldásnak van egy olyan extra lehetősége, hogy meg is mérheted a konkrét bemeneti feszültséget is. Elemes táplálásnál hasznos lehet.
Őő, kövezzetek meg de számomra az két állású kapcsolónak tűnik.
Felső pozícióban 9V megy a zéner felé, ami ~5V-ot eredményez az AVR PB5 lábára. Alsó pozíciójában viszont ha jól látom kvázi csak lebeg a PB5 bemenet, mindenesetre versenyeznek a diódák, hogy melyiknek győz a szivárgási árama, ami szerintem bizonytalan feszültség állapotot eredményez majd a PB5 bemeneten. Szóval ez szerintem nem nyerő így. Vagy legalábbis nem értem. Egyébként írd le konkrétan mit szeretnél, hátha tudunk tanácsot adni hozzá egy harmadik módszerrel, ami ugyanarra az eredményre vezet.
Viszont egy akkora ellenállással, ami nem terheli le a zenert, leköti a földre, akkor abban az állásban is stabil állapot lesz, azaz "0".
zsozsoX: 100 ohm-t semmiféleképpen se felejtsd el kicserélni nagyobbra.
zsozsoX !
Nincs véletlenül egy szabad analóg bemeneted? Azon könnyedén meg lehet csinálni a 3 (vagy akár több) állapotot egyszerűen !
Jó, ez persze természetes, csak gondoltam amíg nem derül ki, hogy mi lenne a harmadik pozíciója a kapcsolónak, addig ez eleve mindegy.
Szóval várjuk, hogy mit is szeretne, mert van egy olyan érzésem, hogy arra kíváncsi, hogy honnan kap tápot éppen, de majd kiderül.
Hali mindenki!
Webszervert szeretnék építeni EZT néztem ki. Véleményetek, esetleg tapasztalatok érdekelne! Teljes kérdésem itt már megtalálható.
Hali!
Én próbálkoztam ilyesmivel ezzel is ha jól emlékszem de nekem valahogy bug-os volt a kommunikáció. ha jól emlékszem a fejléc csomag hosszal voltak a bajok. De már nem most volt, viszont lehet előszedem csak én c-ül nem tudok csak próbálgattam ráfaragni, bascomban egerésztem vele sokat.
Üdv mindenkinek!
Nem teljesen AVR-es a kérdés, de végeredményben AVR-t használok szóval bátorkodom itt megkérdezni. Egy CAN-es megjelenítőt készítek BL12864GERNHn-es OLED-es kijelzővel. Minden megy már rendesen, csak a kontraszttal van gond. Alapból szép a képe, de ha növelem a kontrasztot, akkor ahogy nő a kijelző fénye, úgy elkezd szivárogni a fény az elvileg sötét pixeleken. Próbáltam már minden beállítást állítani, hogy, lassabban hajtatom meg... de már vibrál és még szar(nem gyorsan küldöm a képeket, hanem--Display Clock Divide Ratio/Oscillator Frequency--t állítottam)... Végeredményben, amikor napfényben nagy kontraszttal megy akkor nem látszik, h szivárog, csak kicsit sötétebb helyen már látszik. Ja és ami furcsa,h a fényét a kontraszt-al tudom csak csökkenteni, mert a fényerőt állító bájt változtatására nem reagál. A meghajtó IC SSD1303. Üdv: Márió
Mire szeretnéd használni a webszervert?
Ez jo kerdes. Amikor nekem nagy pontossagra volt szuksegem, akkor belefert, hogy veszek olyan AD atalakitot amiben van precizios referencia, igy kulon az AVR-hez pedig nem szoktam, mivel alt. csak tapfeszt merek, aminek nem kell nagyon pontosnak lennie. Arban nagyon meg tudnak szaladni(tobb ezer Ft), igy javaslom, hogy valamelyik kereskedonel nezd meg mennyiert mi van. De peldanak, ha 4.096V-os referenciat nezel ki, es feltesszuk, hogy minden buveszkedessel egyutt van 14 effektiv bited, akkor a referencianak nem kell 125 uV-nal pontosabbnak lennie. (1/2 LSB)
Amire most kellene az egy távoli rack szekrényben lévő dolgok felügyelete, vezérlése (áramok, tápfeszültségek, hőmérsékletek figyelése, átkapcsolások megvalósítása)
De ha kiokosodok a témában, akkor szeretnék egy időjárás figyelő rendszert illeszteni hozzá(ha lehet). Szélerősség és irány mérése egy ilyennel: La Crosse TX20 hogy végre ne egy dobozban pihenjen, hőmérséklet, páratartalom, esőérzékelés, meg amit még kitalálok.
Látom, itt is éppen avr doper építés is téma. Én is ott tartok, hogy egy ATmega8-at szeretnék életre kelteni hozzá.
Páthuzamos porton én már sikerrel programoztam, de az avr doper nem indul. Részletesen a "Topi-féle AVR programozó Linux alatt"-ban írtam le a problémámat.
8051 kompatibilis ATMEL mikrokontrollert szeretnék programozni az AVRISP MKII klónommal. Találtam egy olyan 8051-es ATMEL chipet ami ISP felületen keresztül programozható. (AT89S52)
A kérdésem az lenne, hogy ezek szerint valóban be tudom programozni ezt a szerkentyűt az MKII klónommal? MISO, MOSI, SCK, RST, meg ami kell meg van neki. Továbbá a programot AVR Studio-val is tudom írni? Mert nézegettem, hogy a Keil gyárt header file--okat a 8051-es kontrollerekhez, csakhogy ha letöltöm a neten található REGX51.h file-t és lementem header file-ként, majd include-olom valamely más fájlból, akkor csomó hibát ír ki. Azt sem értem a header file-ban, hogy pl. van egy ilyen sor (sok más mellett persze) : sfr P0 = 0x80; az sfr az valami olyanra utal, amit csak a Keil a saját uVision szoftverén keresztül ért meg? Mármint ez a sor tulajdonképpen csak azt jelenti, hogy #define P0 0x80 Mert header file-t még nem elemeztem, de akkor elvileg a katalógusból kiindulva #define utasításokkal meg lehet írni egy teljen header file-t a név/cím meghatározással? És ha pl. a fent említett programrészlet után P0=10; értéket adok, akkor a kontroller tudni fogja, hogy a P0 portra ki kell írni a 10 értéket? Lehet hogy nagyon primitív vagy zagyva dolgokat kérdeztem, de még az életben nem láttam olyan file-t amiben meghatározzák a portok neveit a címeken keresztül. És ha valóban így működik a dolog, akkor tudnék magamnak írni egy saját header file-t az AT89S52-höz.
Szerintem AVR Studio-val nem lehet írni, mert a definíciós fájlt(*.inc) nem találni benne. Szerintem az utasítások sem kompatíbilisek az AVR-el, de ezt majd megmondja valamelyik okosabb fórumtársunk. Én a Keil-t ajánlom. Igaz hogy korlátos, de hamar meg lehet azt is tanulni, nekem gyorsabban ment,
mint az AVR Studio még anno. Illetve van még a "Bascom-8051", talán ez is tudja, ismeri. Programozás: az AVRISP-mkII biztosan támogatja(MOSI/MISO/SCK/RST), de a klónokkal csak vigyázva próbálkozz! Ugyanis ha megnézed az adatlapot, a RST láb magas-aktív, nem úgy mint a többi AVR-nél! A LUFA meghajtóprogram szerencsére tartalmazza a polaritásválasztást, egyes bufferelt klónoknál gond lehet, de az ellenállás-leválasztásos típusoknál elvileg ebből nem lehet probléma. Ha klónod van, kérdezd meg az mkII példányod gyártóját! |
Bejelentkezés
Hirdetés |