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   735 / 837
(#) csabeszq válasza zombee hozzászólására (») Máj 4, 2016 /
 
A csokiszorító csatkakozásában bízol? Nekem több érintkezési hibám volt eddig csokival, mint tüskesorral. A 16 MHz is probléma nélkül keresztülmegy tüskesoron, sőt az alaplapi USB-t is tüskesorral csatlakoztatod.

Arról a csokiról beszélek, amelyiknél a csavar vége tartja a vezetéket. Nem túl bizalomgerjesztő.
A hozzászólás módosítva: Máj 4, 2016
(#) zombee válasza csabeszq hozzászólására (») Máj 4, 2016 /
 
Amióta egy ilyen csavar szorítás közben 3 részre vágta (!!!) a vezeték végét, csakis lemezes csokiban bízok. Megpróbálom a 6-os tüskesorral úgy, hogy a félhidak vezetékei 2-2 tüskén csatlakoznak párhuzamosan. A mérőmodult mindenesetre fixre forrasztom a vezérlőpanelra, biztos ami biztos.
A hozzászólás módosítva: Máj 4, 2016
(#) freechat hozzászólása Máj 4, 2016 /
 
Ardunio-t használok rPI-vel. Az USB-s változat működik is, a kérdés, hogy meg lehet-e oldani, hogy sima GPIO-n keresztül ezzel az IDE-vel egy mezei ATMega8-as csippet használjak?
Főleg pár lib amire szükségem lenne belőle pl kijelző vezérlés és társai.
(#) freechat válasza freechat hozzászólására (») Máj 4, 2016 /
 
Sikerült megoldani csak az órajellel van gondom, mert 16Mhz-vel fordítja gondolom és én nem szeretnék külső kristályt használni így max 8Mhz-vel tudom meghajtani.
Erre van valami megoldás?
(#) skimen válasza csatti2 hozzászólására (») Máj 4, 2016 /
 
Köszi!
(#) proba válasza freechat hozzászólására (») Máj 4, 2016 /
 
Szerintem a fordítóban van órajel opció. (az arduinoban biztosan)
(#) VePe00 hozzászólása Máj 5, 2016 /
 
Sziasztok!

Egy kis segítséget szeretnék kapni ahhoz, hogy AVR-t mivel érdemes programozni. Rengeteget olvastam minden féléről és nagyon régiek a cikkek. Láttam a programozós cikket itt is.
Aktualitásában melyik programozót érdemes megépíteni vagy megvenni? Vagy csak a szokásos ebay Arduino copy, aztán majd azzal bohóckodjak?
Melyik IDE a megfelelő? Milyen chipekkel kezdjek?
Egy egyszerű kütyüt akarok építeni, ami bluetooth-os telefonos kapcsolattal működtet különböző PWM-el egy motort. A TavIr-on megtaláltam egy kimerítő cikket a motor és Arduino kapcsolatáról, így azzal szerintem nem lesz gond. A többi még nagy kérdőjel, de először el kellene indulnom. Nem akarok nagy bevásárlásokat és gépparkot a programozáshoz, szóval a legegyszerűbb vagy legcélszerűbb megoldásra lennék kíváncsi.
Előre is köszönöm!
(#) kapu48 válasza VePe00 hozzászólására (») Máj 5, 2016 /
 
A legfontosabb, hogy mit tudsz?
Programoztál már valamilyen nyelven? C, Cpp-t ismered?
HW.: ATMEGA-t ismered?
Mire lehet alapozni nálad? Teljesen nulláról indulsz?

Mért nevezed copi-paszte-nak az Arduino programozást?
Kapsz vele 1 kész eszközt, USB soros porti programozóval, botloaderrel, soros monitorral, rengeteg támogatással.

Kezdésnek pont ez a legolcsóbb.

A bluetooth-nak pedig kicsi a hatótávolsága, már elavult!
Wifit javasolnák helyette, most nagyon felkapott a ESP8266 modul.
(#) csatti2 válasza kapu48 hozzászólására (») Máj 5, 2016 /
 
Nem nevezte az arduinozást copy-paste-nek...
A bluetooth nem elavult és azért mert az ESP8266-vel gyorsabban lehet nagyobb mennyiségű adatot küldeni, még nem jelenti azt, hogy mindenhova azt kell beépíteni. A bluetoothal ugyanis sokkal kisebb energiafelhasználással lehet kommunikálni, mint wifin keresztül. Az ESP8266 akár 500-700mA-t is felvehet rövid időkre (nem ez a jellemző, de erre kell méretezni), elemes és akkumulátoros felhasználásnál épp ezért általában jobb választás a bluetooth (különösen, annak takarékosabb 4.0-ás változata).
(#) csatti2 válasza VePe00 hozzászólására (») Máj 5, 2016 /
 
Kezdésnek jó választás egy Arduino klón (UNO vagy MEGA2560). Eleinte érdemes az Arduino IDE-jét használni (gyakorlatilag egy kicsit specializált szövegszerkesztő), majd ha megnőttek az igények, lehet váltani az Atmel Studio-ra (szintén ingyenes szoftver, 7-es verziótól arduino támogatással). Programozáshoz eleinte nincs szükséged semmire, az arduino a rajta lévő USB-soros IC-n keresztül programozható. Igények növekedésével (pl. saját áramkör készítése, arduino mellőzése) két irányba mehetsz (AVR-en belül persze), egy olcsó ISP programozó beszerzése (esetleg építése) vagy egy programozó/debugger vásárlása (pl. atmel ICE). A második értelemszerűen "jóval" drágább (eredetit anno 16e Ft-ért vettem, gondolom vannak klónok is, másik előnye, hogy atmel ARM-okhoz is jó), cserébe a hagyományos módon debuggolható a kód vele (pl. soronként léptethető, nézhető a regiszterek állapota és változása, illetve a memóriatartalom is).
A hozzászólás módosítva: Máj 5, 2016
(#) VePe00 hozzászólása Máj 5, 2016 /
 
Köszönöm a gyors reagálásokat!
Programoztam C/++ban, Pythonban, Pascalban és Basicben.
Ahogy csatti2 írta, alacsony energia igényű bluetooth szükséges, a műkődtetési távolság is kicsi, pár méter, max 10, de az már sok. Esetleg az itt található ISP-t érdemes megépíteni? Vagy azokból mindegy a típus? A lényeg, hogy elkerüljem a tyúk-tojás esetet. Vagy kérjek meg valakit, hogy programozzon fel nekem egy chipet, aztán próbapanelen programozzam a többit?
Az új Arduinok már csak a nagy smd chipekkel vannak nagyrészt szerelve ?
Ezekhez nem használnak már FTDI 232-t ugye? Olvastam a hamisításos/téglásító driverekről is
A hozzászólás módosítva: Máj 5, 2016
(#) csatti2 válasza VePe00 hozzászólására (») Máj 5, 2016 /
 
Ha veszel egy olcsó Arduino UNO-t, arra rátölthetsz egy ISP szoftvert is (része a mintapéldáknak) és onnantól kezdve akár azzal is programozhatsz. Alternatíva lehet még egy olcsó USBASP programozó is (firmware-t általában kell rajta frissíteni, tehát egy UNO még jól jöhet mellé).

UNO-ból kapható SMD-s és DIP-es 328P-vel szerelt verzió is (a DIP-es drágább). Az új klónok már a CH340-es USB-soros IC-kel jönnek, ezért nem érinti őket az FT232-es botrány (cserébe viszont driver-t kell hozzájuk telepíteni).
(#) VePe00 válasza csatti2 hozzászólására (») Máj 5, 2016 /
 
Köszönöm, akkor gondolok a legegyszerűbb, ha megrendelem a nagyot, aztán a többihez lesz mindenem. Azért az árért a chipeket sem veszem meg, nem még az egész lapot
(#) csabeszq válasza csatti2 hozzászólására (») Máj 5, 2016 /
 
Az ESP8266-ról:

Nekem az ESP-01-es szériát nem sikerült megbízhatóan életre keltenem. Bizonytalan volt, mint a kutya vacsorája. Olvastam a neten és valami csávó azt írta, hogy a barátnője javaslatára rövid szigetelt kábelt tett az antennára keresztbe (Itt a link a külső antennáról.).

Próba szerencse megcsináltam és sajnálattal vontam le a következtetést, hogy a dolog működik. Látványosan megnőtt a modul stabilitása, viszont nekem eszem ágában sincs vezetékdarabot tartani a modulra netezés közben.

Van egy nodemcu-m is (ESP-12E), az 100-ból 100-szor felmászik a netre és még vezetéket sem kell tartani neki. Ha esp-zni akarsz, akkor vegyél nodemcu-t. Az megy.
A hozzászólás módosítva: Máj 5, 2016
(#) ThompsoN válasza Kovidivi hozzászólására (») Máj 6, 2016 /
 
Végre tudtam a pákával ügyködni kicsit.
Az AVR belső felhúzó ellenállásait kikapcsoltam, és beforrasztottam 4,7kOhmos külső felhúzókat. Sajnos ugyan az a helyzet: véletlenszerűen megáll, mert lefut a megszakítás rutin.

Szoftveres kerülőmegoldásnak jó lehet az, hogy amikor lefut a megszakítás, akkor elindítok egy timert, ami mondjuk 1ms idő múlva megnézi, hogy a láb még mindig földön van-e, és ha igen, akkor állítja csak meg a motort?
(#) ThompsoN válasza ThompsoN hozzászólására (») Máj 6, 2016 /
 
Sajnos nem engedte már szerkeszteni, de azt elfelejtettem leírni, hogy az optokapuk és a tranzisztor már nem a főtápról kapja az 5V-ot, hanem a Pololu panelról van kivezetve.
(#) csabeszq válasza ThompsoN hozzászólására (») Máj 7, 2016 /
 
Nem tudom, hogy hogyan írtad meg a szoftvert.

Az optokapu úgy megy, hogy mondjuk 38 kHz-es jelet adsz ki és 38 kHz-re szűrsz. Készen kapni 3 lábú 38 kHz-s szűrős infra vevőket. A lényeg, hogy téged frankón nem érdekel, hogy világít-e a lámpa, vagy besüt-e a nap, vagy felkapcsolták-e a villanyt, vagy másegyéb. A lényeg, hogy a 38 kHz-es jelet szűrjed.

Amennyiben kiadod a 38 kHz-t és nem kapcsol be az érzékelő, akkor baj van. Remélem nem felkapcsol/lekapcsol alapon írtad meg, mert garantált, hogy nem fog működni.
(#) proba válasza csabeszq hozzászólására (») Máj 7, 2016 /
 
Azért van némi probléma a "nem érdekel besüt e a nap" dologgal. Ha nincs kódolva a jel, a nap simán csinál impulzusokat, még a legszelektívebb 38Khz-s vevőkön is. nem véletlen, a rendesen megépített TV-ben infraszűrő és fém árnyékolás van a vevők előtt.
Egyszer építeni akartunk ilyen háromlábú vevővel infra sorompót, a napfénnyel szoros összefüggést mutatott a téves érzékelések száma, annyira hogy használhatatlan volt. Ismerősömnél az energia takarékos lámpa blokkolta a TV távirányítóját. Így a zavarok igen könnyen a tévesen érzékelt fény felől is származhatnak.
(#) Gj hozzászólása Máj 7, 2016 /
 
Üdv!

Ezena BT modulon mire lehet használni a UART kapcsolatot? belenéztem a panelon használt IC adatlapjába, de csak az SPI-ről találtam információt. Nincs ennek valami olyan módja, amiben egyszerű módon lehet vele UART-on kommunikálni, és amit kommunikál egy másik BT modullal, a UART porton megjelenik? (mint pl. egy FTDI chipnél, csak az ugye USB-vel köti össze a UART-ot, ez meg Bluetooth-szal)
A hozzászólás módosítva: Máj 7, 2016
(#) kapu48 válasza Gj hozzászólására (») Máj 9, 2016 /
 
Ehez még kel:
ttl to rs232 converter

Viszont kissebb távolságra, a SPI nyorsabb és nem kel hozzá semmi!
A hozzászólás módosítva: Máj 9, 2016
(#) zombee hozzászólása Máj 10, 2016 / 2
 
Sziasztok!
Egy gyors teszt erejéig összedobtam egy mérleget. Soros elrendezéssel, 4 darab tappancsos szenzorral és HX711 modullal (lásd: képek). A szenzorok alá 2-2 panelcsíkot ragasztottam hogy a mérő rész szabadon tudjon mozogni. Az eredményt egyelőre Híper Terminal-ban jeleníti meg (USB-n küldi át - ezt gyorsabb volt leprogramozni), de majd lesz LED-kijelzős programváltozat is. A program jelenleg 5 darab 24 bites értéket átlagol össze, az eredményből a felső 16 bitet konvertálja és jeleníti meg.

Kis súlyokkal (max. 3kg) kb. 2%-os pontosságot sikerült elérni, feltéve ha bízhatok a Hauser konyhamérlegben. A 1,2,3 tejesdobozzal a linearitás +/- 1 digit, a váltószám 11.83g/digit (szintén konyhamérleggel megállapítva). Aztán kicsit "ráültem", az eredményeket átszámítva kb. 42kg erővel. Ezután a mérleg már nem állt vissza az eredeti értékre, kb. 9 digittel magasabbat mutatott. Gondolom ez lehet a mérőmodulok hiszterézise. Hozzáteszem, a breadboard nem épp a legjobb csatlakozási pont, a vezetékeket dugdosva akár 2 kg-ot is változhat a kiírt érték.

Ami nagyon tetszik: a mérlegen akármelyik oldalra pakolom a súlyokat, mindig pontosan ugyanannyit mutat (0 digit eltérés).
A hozzászólás módosítva: Máj 10, 2016
(#) yohnsee hozzászólása Máj 14, 2016 /
 
Sziasztok!
Ez lehet, inkább elméleti kérdés lesz. Egy if ciklus végigfut-e, ha a ciklusba lépés után hamissá válik a feltétel, ami miatt belelépett abba?
Pl.:
  1. int x=10;
  2. if (x>5){
  3. parancs1;
  4. parancs2;
  5. x=1;
  6. stb;
  7. }
(#) edison14 válasza yohnsee hozzászólására (») Máj 14, 2016 /
 
Igen.
(#) yohnsee válasza edison14 hozzászólására (») Máj 14, 2016 /
 
Köszi!
(#) zombee válasza yohnsee hozzászólására (») Máj 14, 2016 /
 
Ez nem ciklus, ez programelágazás; pontosabban feltételes végrehajtás.
(#) yohnsee válasza zombee hozzászólására (») Máj 14, 2016 /
 
mindig tanulok valamit
(#) minimodel hozzászólása Máj 16, 2016 / 1
 
Most kifejezetten nem egy problémát, hanem annak sikeres megoldását szeretném közzétenni. Sikeresen feltöltöttem életem első ATmega8-16PU-jára a Bootloadert. Persze, hogy a rengeteg leírás alapján azt gondolja az ember, csak feltöltöm az Arduino ISP-t, összekapcsolom a programozandó mikrokontrollerrel, és kész is lesz a tyúkból a tojás. Na ez nem így ment. Először is nem óhajtottam külső kristályt használni, hanem a 8Mhz-es belső órajelet de ez még nem is lenne probléma. Mindent a leírások szerint kötöttem össze, beállítottam a programozandó chip-et, rákattintottam a Bootloader égetésére....és csak hiba. Először módosítani kellett a boards.txt-t, hogy egyáltalán a belső órajeles Atmega8-ast ki tudjam választani, + a hozzá tartozó fájlokat is be kellett másolni. Ismét rákattintok az égetésre...hiba: nincsen definiálva a bootloader-t feltöltő eszköz. Sikerült kikeresni a neten, hogy az ATmega8-as utasítások közé a boards.txt-be mit is kell még beszúrni: "bootloader.tool=avrdude". Ismét mentés, újratöltés, kattintás... ismét hiba. Ezúttal egész más: Az un. e-fuse nem volt definiálva. Kis keresgélés után tudtam meg, hogy az ATmega8-nak nincs is ilyenje. A megoldás az volt, hogy le kellett tiltani ezt. De csak ennél, tehát egy új eszközt kellett előbb definiálni a "platform.txt"-ben. Ez is meg lett...másolgatás, újratöltés, kattintás...villogó zöld kis LED jelezte a programozást...és most végre sikerült feltölteni.

Szóval bocsánat, ha kicsit kusza voltam, csak az utókornak szerettem volna ezeket az infókat átadni, ha valaki, kristály nélkül, sima Arduino-val szeretne tiszta üres ATmega8-at felprogramozni.

Persze angol nyelvű linkekkel tudok szolgálni. Lehet érdemes lenne egy magyar tutorial-t írni belőle.
(#) FDAssasin hozzászólása Máj 17, 2016 /
 
Sziasztok!
Kicsit összezavarodtam az ebayes arduino klónok láttán, szóval szeretnék egy kis segítséget kérni. Egy UNO R3 klónt szeretnék, lehetőleg ugyanolyat mint az eredeti, hogy ne legyen probléma a szoftverekkel/programozással.
Van is fent ezer meg ezer termék. Az SMD chipeseket hanyagolnám. Viszont, ahogy elnézem még így is nagyon sok variáció van. ATmega328p lap és egyből írják is utána, hogy ATmega16U2... Most melyik? Vagy ez a két chip nem is ugyanazt a célt szolgálja? Illetve miben különbözik a CH340G az FT232-től?

Itt a 2 hirdetés linkje amiken gondolkozom:

Link

Link

Őszintén szólva a második szimpatikusabb, mert abban nincs ez az ATmega16U2 chip és +300Ft-ot csak megér hogy ne kelljen állandóan azzal szívni, hogy portoljak mindent amit neten találok. Melyik lenne jobb szerintetek? Persze ha valaki tud egy ,,jobbhoz" linket adni, azt is megköszönöm.
(#) proba válasza FDAssasin hozzászólására (») Máj 17, 2016 /
 
Nem igazán tudok angolul, de a magyarázatban a másik panelnél is valami változtatásról beszélnek. ( utána viszont már a két panel azonos)
(#) minimodel válasza FDAssasin hozzászólására (») Máj 17, 2016 /
 
Szia!

Az enyém eredeti és SMD-s, de én nem kockáztattam inkább, személyesen vettem. Igaz volt is 23 Euró. Ha ez segít abban ATmega328 van. Nekem csak annyi bajom van vele, hogy nyilván az SMD-set nem lehet kivenni, de ez legyen a legkevesebb.
Következő: »»   735 / 837
Bejelentkezés

Belépés

Hirdetés
Lapoda.hu     XDT.hu     HEStore.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