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
Vagy használj olyan AVR-t, amiben több USART is van...
Köszi,utánanéztem és tényleg van ilyen. Jó irány
Kicsit nagyobb méretű, de az ATMega164 (/324/644/1284) rendelkezik kettő USART-al a DIP tokkal (is) rendelkező szériában, ha SMD kell akkor ATMega128 alá nem mennék.
A másik lehetőség, hogy szoftveresen oldod meg az egyik UART működését - a feladat nem bonyolultabb mint egy másik AVR-t betenni és I2C/UART konverterként használni. De kétségtelen hogy a nagyobb IC használata a legegyszerűbb...
Mindenkinek kösz.
csatti2: 868MHz-el kapcsolnám össze a szerveremmel hogy ne terhelje a WiFi sávot és átlásson 1 köztes emeleten. Tudsz olyan magyar nyelvű listát ahol valaki sikeresen összekötötte már az efféle eszközét valamelyik home automatzation progival? killbill: Hú de jó, hogy írtad! Mérnem kellene az akkut. Akkor dobom a Attiny2313-at.
Én home automation-höz Wifit használnék.
Az RF transmitter akkor jó, ha hordozni akarod az eszközöket ide-oda és nem mindig elérhető a Wifi hálózat (távirányítós rc autó). Szerintem, ha mindig ugyanott csücsülnek az eszközeid, nem éri meg RC-zni. A WIFI garantálja, hogy a csomagok rendesen átmennek (bár komoly késleltetés lehet), nem kell újra megírni a zajszűrést / sérült csomagok eltávolítását / ... Emellett simán lehet hálózati eszközzel nyomkövetni azt, ami történik (Wireshark), sőt a web-en is megnézheted, hogy mi újság és minimálisan kerül többe.
Akkumulátoros szenzoroknál, ahol fontos, hogy ne kelljen őket állandóan töltögetni nem jó választás a wifi mert viszonylag energiaigényes (a kapcsolatot felépíteni és adatot küldeni/fogadni összességében pedig jóval tovább tart). Szerencsésebb egy internetre kapcsolt központi egység, ami valamelyik szabadon használható frekvencián dolgozik emellett pl. 315Mhz, és utána már csak egy ilyen adóvevőt kell beépíteni a szenzorokba (adó is elég ha csak küldi a mért értéket). Ezek sokkal energiatakarékosabb megoldások. Természetesen kell vmi protokollt írni a rádiós kommunikációra de ez nem bonyolultabb mint egy hálózati protokoll elkészítése.
Nem kell feltétlenül dobnod. Egy komparátorral (lehet használni az uC beépített komparátorát is), TL431 ref IC-vel, pár ellenállással és egy mosfettel könnyedén készíthetsz olyan áramkört, ami 3V-nál lekapcsol és nem terheli tovább az akkut. A referenciafesz IC (ha csak nincs saját refje az uC-nek) és a mosfet akkor is kell ha uC-vel oldod meg a védelmet. Egyedül arra kell ügyelned, hogy a mérőáramkör is már a mosfet után legyen, hogy ne szívja tovább az akkut, miután lemerült (egy pici kapcsolóval áthidalhatod a mosfet-et, ez funkcionál bekapcsológombként).
Nem ismerek ilyen projektet, de nem azért mert nincs, hanem mert még nem kerestem.
Egy olyan eretnek gondolatom volt, hogy uC-vel figyelem az akkut. 3V-nál bekapcsolom a 230Vos hálózatot és feltöltöm. Aztán kikapcsolom a 230V-ot. Így nincs készenléti fogyasztás. Nincs áramkimaradás csak nagyon szerencsétlen esetben. Amúgy is egy Honeywell 230-as szelepet vezérelne a radiátoron.
De ettől még jó ötlet. Lerajzolom magamnak. Ebay-on kívül hol lehet jó áron beszerezni Atmel uC-t? a 88V-re vagy 328-asra gondoltam mint központi egység. Az Ebay-on van jó eladótok? Egy RTC az azt hiszem i2c-s, egy DS1820 az 1wire, Egy UART csak hogy legyen, 2 relé, egy olcsó LCD, és a rádiós adóvevő ami talán SPI. A télen mehetne rádió nélkül csak helyi termosztátként. Oszt' ha okosabb leszek csatolni kellene a linux szerveren valamilyen okosotthon progihoz. Onnan átadnám annak a szabályzást. Aztán álmodtam már pince páratartalom mérést, mert egyszer már megindult ott a penész, stb. A hozzászólás módosítva: Nov 18, 2015
Aliexpressen kaphatók még olcsón. Ha sürgősen kell, akkor pedig tme.eu (itt a viszonylag nagy választék és egész elfogadható ár melett viszont figyelembe kell venni a szállítási költséget).
A 230V-al óvatosan, a radiátoron keresztül odacsaphatsz mindenkinek a házban. Én maradnék tisztán akkus megoldásnál és készítenék egy külön töltőt (labortáp is jó lehet erre a célra), gondolom nem csak egy szelepet akarsz majd vezérelni. Ha ADC-s uC-t használsz, akkor küldhetsz előre jelzést, hogy merül az akku. Az akku kiválasztásánál vedd figyelembe, hogy a szelep tűjét benyomó mechanika motorja azért komolyabb áramot is felvehet, illetve érzékelni kell a két végállapotot is (ez esetleg megoldható a motoráram figyelésével).
Nekem van hasonló szelepem, az áramfelvétel minimális, mert rengeteg áttétellel van megoldva a szelep benyomása. Jó sok idő kell, mire végigtekeri teljesen azt a pár mm-t. Úgy van megcsinálva, hogy 2 vagy 3 ceruzaelemmel már 1 éve megy. Persze nyáron nincs semmi dolga, mert max-ra van állítva, a kijelzőn mégis megjelenik a beállított hőmérséklet.
Én az Üllői úton az Elektrokonthában szoktam vásárolni. Az Ebay-hez képest 2-3 szoros áron, de nem mindig van kedvem ülni és várni. A 328P-t árulják.
www.elektrokontha.hu
Hali!
Én a Kontel-től szoktam venni. Elég sok cuccot be tudnak hozni 7-10 napos átfutással és nem rossz árban. Nem is rég hoztak nekem AtMega1284 uP. De rendeltem korábban már 88-ast is.
Nekem is van. 2db ceruzaelemről mennek, kb. 2 évet bír ki az elem. Emellett rádión keresztül kommunikál egy központi egységgel, illetve külön termosztátokkal (MAX eq3 termékcsalád).
Mivel viszonylag ritkán pozicionál ezért nehéz ebből megmondani a pontos áramfelvételét ilyenkor, de azért gondolni kell rá az akku kiválasztásakor (a ceruzaelemeket azért lehet terhelni). A hozzászólás módosítva: Nov 19, 2015
Hali!
AVR assembly és c kevert nyelven írtam egy progot avr studio -ban és nem fordul le, mert a portf értéke nagyobb mint 32. Az IO.h -ban van ez definiálva, atmega128 -nál. Eddig c-ben írtam minden ilyen részt, de most muszáj lenne assembly-ben. Köszi előre is.
CBI/SBI 0x1F-ig, IN/OUT 0x3F-ig ,e felett STS/LDS.
Köszi, itt volt a hiba a deklarációnál!
Még sohasem dolgoztam ATMega uC-vel csak Attiny-vel. Ez mit jelent:
"ATmega48A/PA/88A/PA/168A/PA/328/P support a real Read-While-Write Self-Programming mechanism. There is a separate Boot Loader Section, and the SPM instruction can only execute from there. In ATmega 48A/48PA there is no Read-While-Write support and no separate Boot Loader Section. The SPM instruction can execute from the entire Flash"? Tudom programozni a Studióval, meg az MKII klónnal?
Ennek a bekezdésnek semmi köze az ISP-hez, csupán a bootloader-es önprogramozáshoz.
Így van, tudod vele programozni. Sőt ha a programozód támogatja a debugwire-t, akkor még rendesen debugolhatod is a programodat.
A dolog lényege hogy a bootloader szekcióban képes az IC "önmagát" írni. Ennek nem sok köze van az ISP-hez és mkII-höz, az ISP programozás lehetősége az ATTiny-hez hasonlóan adott. Először csak azt fogod észrevenni hogy egy ATTiny-hez képest jóval több lábon állsz, elkezdheted a feladatokat a láb képességeihez és elhelyezkedéséhez igazítani(panelterv optimalizálás). És megengedheted azt a luxust hogy a programozólábakra az ISP csatin kívül nem kötsz rá semmit, minimalizálva a programozás alatti hibás működést.
A hozzászólás módosítva: Nov 19, 2015
Köszi!
LDS -el hogy gondoltad? Itt a kód:
Az 5 és 15 soroknál ír hibát.
A 3. és 8. sor üti egymást, a 3.-ba cbi kell.Bár nem értem,hogy ehhez miért kell asm. A hozzászólás módosítva: Nov 21, 2015
Szerintem 5. sorban pint kellene olvasnod,nem portot.Gondolom nem HD44780-ról van szó,mert akkor így nem fog működni.
A hozzászólás módosítva: Nov 21, 2015
Sziasztok!
Tudnátok abban segíteni, hogy miért jár pontatlanul egy óra? Atmega328 AVR-rel építettem egy ébresztőórát. Az óra 32768Hz kvarcról üzemel 2 22pF kondenzátorral van a kvarc két lába testre kötve, ha a panelt leteszem az asztalra, vagy az ujjammal akár megközelítem akár a kvarcot, akár a kondenzátorokat a számlálás lelassul.
Valószínűleg kisebb kondikat kellett volna beépítened. Pontosabbat a kristály adatlapja ismeretében lehetne számítani, de próbálkozzál inkább 10-12pF körül.
Szerintem maga a kondi jelenléte a hiba forrása. Úgy tudom, hogy az AVR-eknek az órakvarcokhoz nem kell kondi. Még a 328p-nél sem, mert ilyenkor nem XTAL-ként üzemelnek a lábak, hanem TOSC-ként.
Ahhoz képest, hogy nem kell, még egy képletet is megadott a kiszámításához az erről szóló fejezet (8.5).
Én is kondi nélkül használom, Atmega328, Timer2-n órakvarc, és profi pontos. Mondjuk ez kvarctól is függ. Ha kondi nélkül is pontatlan, akkor keresni kell másikat, vagy szoftverből kell kalibrálni.
A hozzászólás módosítva: Nov 21, 2015
Sziasztok!
A mellékelt kódban erre:
Minden ötletet szívesen fogadok, a segítséget előre is köszönöm! Iván A hozzászólás módosítva: Nov 22, 2015
|
Bejelentkezés
Hirdetés |