Fórum témák
» Több friss téma |
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Sziasztok!
Egy szakdolgozat témához szeretnék ötleteket gyűjteni. A feladat egy hőmérő olvasása PC-s adatgyűjtéssel, hálózati kapcsolattal és azon gondolkodtam, hogy építenék egy kis áramkört a PC köré. A választásom az Arduino-ra esett, mert viszonylag könnyen és gyorsan lehet rá szoftvert készíteni. A feladat körébe tartozik áramkör tervezés is. Az lenne a kérdésem, hogy szerintetek az Arduino-s hardveres környezetet rá lehet-e tervezni áramkörre? Az Arduino elvileg tudomásom és olvasataim szerint nyílt forráskódú és nyílt hardverű eszköz, de hogyan lehet beépíteni egy nyomtatott áramkörre? Nem a technikai megvalósítása érdekelne, hanem inkább az, hogy szoftveresen hogyan lehet feléleszteni az Arduinos oldalt? A válaszotokat előre is köszönöm!
Elég könnyű megvalósítani. Kell egy olyan mikrokontroller, amit az arduino lehetőleg natívan támogat. Pl. ATMEGA328p (Arduino Uno, ebből kapható DIP-es kivitel is), ATMEGA2560 (Arduino Mega). Ezután köré tervezhető az áramkör (lehetőleg 16MHz-es külső kristályt használj, akkor nem kell módosítani az alapkönyvtárakat). Amire szükség van, az egy olyan programozó, amit támogat az Arduino és akkor egy ICSP csatlakozón keresztül feltöltheted a programodat a mikrokontrollerre.
Kicsit jobban átgondolva, mivel a PC-s adatkapcsolat is fontos ezért rátennék egy soros illesztő chipet is (pl. az olcsó CH340, vagy egy drágább de natívan támogatott FT232-t), a bekötését pedig lekoppinthatod egy publikus arduino rajzról. Ha ezután ráégeted a bootloader-t az ICSP-n keresztül, akkor onnantól akár hagyományos módon is programozhatod az Arduino fejlesztőszoftverből. A hozzászólás módosítva: Nov 2, 2015
Sziasztok. Azt hogy tudom meg oldani, hogy LM35-el mérek és csak 5 percenkét legyen mérés?
Előre is köszi
Úgy, hogy öt percenként olvasod csak az analog inputot, amire kötötted...
Picit több infót, enélkül nehéz jobb választ adni.
Időzítesz.
Ha mást is szeretnél csinálni akkor nem várakozó függvényt használsz. akkor mást nem fog csinálni a uController. Hanem azt amivel a rendszer power on időt lehet lekérdezni. Aztán meg eltárolod az értékét. Ha ennek a következő olvasásnál az értéke több mint az 5percnyi akkor olvasod a hőmérőt. Visszább olvasva megleled a jó függvény nevét. valami millis meg a párja a delay ezek egyike nem jó csak a másik.A millis lesz jó !!! A hozzászólás módosítva: Nov 2, 2015
Ez a delay miatt méri másodpercenként. Hogy lehet beolvastatni 5 percenként?
Wifi-vel csinálnám és tennék bele Androidos elérhetőséget is.
Hát ha jó ez az egyszerű megoldás akkor beleteszed a delay-t egy for ciklusba, ami 300 -ig számol és kész is van. Ha igényes(ebb) megoldást akarsz, akkor pedig a millis függvény értékét veszed és amikor az 300000-el nagyobb, mint az utolsó frissítésnél tárolt értéke, akkor frissítesz egyet.
Beviszel egy ido változot.
Annak adsz értéket millis fügvénnyel. Ezt az értéket hasonlítod össze az előző millis lekérdezéssel és komparálod , eltelt e 5 percnyi idő ha nem akkor kilépsz a ciklusból.ha meg igen akkor hívod a mérést
delay-t nem akarok használni mert fut mellette más is. Ezt csak példának tettem be.
Ha for ciklusba teszek egy számlálót akkor minden mást csinál mellette?
Dehogy is. Akkor a millis megoldást kell használnod (vagy megszakítást). A mérést viszont végezd el többször is, és dobd el az első értéket, különben elég pontatlan lesz ha mást is csinálsz (feltételezve más analóg értéket is).
A hozzászólás módosítva: Nov 2, 2015
Ezért kell a millis -t
.Mellette más is futhat közben.
Köszönöm mindenkinek millis-el sikerült megoldanom.
A hozzászólás módosítva: Nov 2, 2015
Ennél egyszerűbb megoldás egy ESP8266 WiFi modul használata, ami - a rátöltött firmware-től függően - Lua vagy Arduino/Wiring nyelven programozható, s PC nélkül is képes a hálózaton kommunikálni.
Kedves Csatti2!
Köszönöm a válaszod! Tehát ha jól értem, akkor csak egy ICSP programozót kell vennem, amivel rátöltöm a bootloader-t? Most jelenleg rendelkezek egy UNO fejlesztővel, valamint a hozzá tartozó perifériákkal és USB kábellel (még régebben vettem). Erre már elég sok programot írtam, kicsit gyakorlott vagyok benne. A bootloader-t le lehet tölteni a gyártó honlapjáról? Köszi! Szia
Ha van egy UNO-d, akkor nem kell venned semmit. Nyisd meg a példák között az ArduinoISP progit, töltsd rá az UNO-dra. Kösd be a saját áramköröd az utasításoknak megfelelően az Arduino-ba. Válaszd ki a programozó eszköznek (Tools/programmer) az "Arduino as ISP"-t. Innentől maga az UNO az AVR programozód.
Írd fel a saját áramkörödben lévő mikrokontrollerre a bootloader-t a "Burn bootloader" menüponttal (Tools menü). Innentől ha van USB-s kapcsolatod az áramköröddel (arduino módra bekötve persze), akkor máris Arduino-ként működik az áramköröd és innentől direktbe programozhatod az UNO nélkül.
Az Arduino-val betöltöd a bootloadert az üres IC-be, eléteszel egy USB-UART modult és van egy saját gyártmányú Arduinó-d. Bővebben: Link
Sziasztok
Nemregiben rendeltem az ebay-rol egy par Atmega328-ast (na jo 5 darab 328-as helyett kuldtek 2 db. 328-ast es 3 db. 8-ast). Ettol eltekintve, amikor a 328-asra akarom feltolteni a bootloadert, az IDE a kovetkezo hibavallaszt adja: Idézet: „avrdude: Expected signature for ATmega328P is 1E 95 0F Double check chip, or use -F to override this check. Nem megfelelő mikrokontroller lett kiválasztva. Pontosítani az Eszközök > Alappanelek menüben lehet. ” Mi a gond ?, valamit en rontok el ? Kulomben arra amit itthon vettem jo penzert arra felmegy ugyanazzal a modszerrel a bootloader. Pedig mindketton „Atmega328P-PU” felirat van. A hozzászólás módosítva: Nov 3, 2015
Zárd be az Arduino-t. Keresd meg a c:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf fájlt. Készíts róla biztonsági másolatot. Keresd meg benne a "0x1e 0x95 0x0F" részt. Írd át 0x1e 0x95 0x14-re. Indítsd el az Arduino-t. Próbáld meg újra feltölteni. Ezután viszont a rendes Arduino-id nem mennek majd. A fájl visszaállításával tudod majd azokat feléleszteni.
A hozzászólás módosítva: Nov 3, 2015
Sziasztok!
A lent említett modulhoz kell bármilyen szint illesztes vagy csak ra kotom az arduino unora és mukodik is? Bővebben: Link
Ok
Mukszi, koszonom. De egy kis magyarazat lehetne melleje ?, miert van ez, hogy tanuljak is valamit. A hozzászólás módosítva: Nov 3, 2015
Ennyiért kettőt vennék Bővebben: Link
Mert az egyik picopower kivitel a másik pedig nem. Egyéb tekintetben ugyanolyanok, viszont a hardware azonosítójuk különbözik és ezért nem tetszett az Arduino-nak.
Koszi. Kapisgalom a dolgot.
Meg egy kerdes, ez: „0x1e 0x95 0x0F” lenne a PicoPower es a: „0x1e 0x95 0x14” nem PicoPower ? (pedig mint irtam mind a ketto P jelzesu, az olcso = made in China) A hozzászólás módosítva: Nov 4, 2015
Olyan kérésem lenne hogy ebbe a program kódba a for ciklust végtelenné tenni hogyan kell ? Megadott idő közönként mondjuk a delayal késleltetve idő közönként fusson le generáljon új számot .
Szerintem ha nem hasznalsz for ciklust, csak siman a „randNumber1 = random(1, 1000);” -t.
De az csak egyszer generál 1 számot a legelején vagy tévedek ? mert 100-1000ig kellene kb .
Több sebből vérzik ez a kód. A setup() függvény a loop() első lefutása előtt hívódik meg. Tehát amikor a setupban felhasználtad a randNumber1 változót, akkor az értéke nulla volt (mivel inicializálatlan globális változó). Ezután a loop() végtelenszer hívódik, de te azon belül is nyolcszor felülírod a randNumber1 tartalmát, hogy aztán fel se használd semmire. Az már csak szőrszálhasogatás, hogy erre az értéktartományra pazarlás a long típusú változó. A syntax highlighting pedig azért nem működik, mert lezáratlan kommenttel kezdődik az egész kód.
Ezzel meg az a baj, hogy a véletlenszámgenerálás a setup() függvényben történik, ami ugye csak egyetlen egyszer fut le, az egész program elején, ezért nem változik a szám értéke.
|
Bejelentkezés
Hirdetés |




ezek egyike nem jó csak a másik.







