-
GAMEPOD.hu
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
Teasüti
nagyúr
Sziasztok!
Ismertek olyan shield-et, amivel járművek 12-14,4 voltos rendszerére lehet közvetlenül kapcsolni az Arduino-t (táppal együtt)? 12V led szalagokat szeretnék vezérelni PWM-el.
(Meg egyéb világításokat.)
Tehát ilyen feszültségű input és output kellene, a kimenetnek el kéne bírnia egy-két ampert.
Extrának ha esetleg még bővítené a PWM csatornák számát, az volna a tökéletes 2in1 számomra.Analfabéta vagyok a témában - ez lesz az első mikrovezérlős projektem - így jó volna egy out-of-the-box kész megoldás.
Köszönöm! -
Teasüti
nagyúr
válasz fpeter84 #2705 üzenetére
Még egy se, csak most szeretnék belevágni az egész műfajba. Maplin-ben láttam először egy Uno személyében, gondolom ott nem gagyit árulnak.
Szóval van benne buck converter a tápnak, de a be- és kimenetre gondolom ne küldjek 12 voltot... Igen, készre szerelt áram korlátolt rgb led szalagokat szeretnék működtetni, színenként külön csatorna ha jól sejtem, szóval jól jönne úgy kb 30 csatorna, hogy könnyű dolgom legyen megtanulni a C++-t... -
Teasüti
nagyúr
válasz fpeter84 #2710 üzenetére
Épp akartam írni mit fedeztem fel.
Ezzel már az Uno 6 csatornája is elég lehet.
A proci ha szóba került, az Arduino szoftvere nem tud véletlenül szimulálni? Futási sebességre esetleg? -
Teasüti
nagyúr
Bevallom elég nehéz követni. Mire is kell a poti?
Szerk: jaah, értem. De én nem kézzel szeretném vezérelni a ledeket, effektezni szeretném.Keresgéltem I/O shield-et, de nem találok megközelítőleg sem olyat, ami kezel 12 voltot mindkét irányba.
Ha már jármű, akkor a szalagból is inkább 12V legyen, mivel más feladatot is szeretnék még adni a vezérlőnek.
Olyan nincs, ami az Uno összes kivezetését 12V-hoz illeszti (az se volna baj, ha tápot is adna)? Tehát a bemeneti és a kimeneti oldalon is.Laikusként kérdezem, sajnos nem elektronikai végzettségem van.
Keresgéltem az illesztésről és bemenetre találtam pár megoldást. Az egyik vmi optocoupler volt, ami leválasztja a nagyobb feszültségű kört a bemenetről.
Kérdésem az volna, hogy nem célszerűbb és egyszerűbb egy relét használni erre? Az is leválasztja az autó elektromos rendszerét, majd az Arduino saját lábait (5V, gnd, pin, etc.) kapcsolná a relé össze.Köszönöm!
[ Szerkesztve ]
-
Teasüti
nagyúr
Ez a része ok, de mikor került potméter a képbe? Mit akarok én kézzel állítani?
A relé csak a digitális bemenethez (és kimenethez). Pwm kimenetre mosfet?
Illetve a led szalagokra adatot kellene küldeni, a többi portot meg a jármű más berendezéseihez használnám.
[ Szerkesztve ]
-
Teasüti
nagyúr
Jah hogy jah! Ok, leesett.
(Technikailag az nem PWM vezérlés, vagy igen? Hisz a buck konverter feszültséget szabályoz.)
Viszont a címezhető led szalagokkal nem lesz szükség PWM vezérlésre, csak adatbuszra. Az Uno 6 PWM csatornája meg több mint elég az egyéb feladatokra.Így a továbbiakban a kérdésem az volna, hogy létezik-e olyan kész megoldás, amivel lényegében 12V-ra lehet illeszteni az összes portot? (Nem csak néhányat.)
[ Szerkesztve ]
-
Teasüti
nagyúr
-
Teasüti
nagyúr
Miért nem tudom megértetni magam veled?
Unon van 6 analóg bemenet és 14 digitális ki- és bemenet ha jól látom.
Mindegyik 5V-os.
A cél, hogy az összes portot 12V-os feszültségre emeljem, a bemeneteket és kimeneteket is, mindegyiket a saját funkciójának megtartásával.
Hol írtam olyat, hogy 20 kimenet kell?
Nekem egy 12V-os Uno kéne, így ahogy írom, slussz. -
Teasüti
nagyúr
válasz fpeter84 #2732 üzenetére
Őőő amatőr kérdés: az Unon az RX és TX portok nem adat közvetítésre valók?
Nem a TX-et kell befogni a címezhető szalag vezérlésére?Szeretnék egy starter kit-et, hisz a mostani elektronikai ismereteim egy óvodás szintjén vannak (nos, volt elektro tárgyam a gépész szakon, de csak fizikai szinten, ami nem is érdekelt), szeretnék megismerkedni azokkal az alkatrészekkel, amik a csomagban vannak.
Meg végigmenni a könyvben lévő projekteken.
Ha ezen átrágom magam, utána lehet csak egy ujjgyakorlat lesz összerakni amit szeretnék.[ Szerkesztve ]
-
Teasüti
nagyúr
Nekem nem ez a szakterületem, valószínűleg én nem tudom kifejezni magam rendesen. Próbálom több megközelítésből leírni, de úgy érzem elbeszélünk egymás mellett. Ettől függetlenül nagyra értékelem a segítséget, köszönöm!
A NeoPixel egyetlen Data pin-jére mivel kellene csatlakozni?
Ez nem csak egyirányú kommunikáció?Ahha, ok. Ez a cucc közönséges digitális kimenetre csatlakozik, abból meg van egy pár...
Akkor tárgytalan.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2737 üzenetére
Azt hiszem értem.
Viszont nagyon szimpatikus nekem ez a kezdő készlet, lehet akkor azt csinálom, hogy veszek mellé külön egy jobb felszereltségű vasat, hacsak nincs tipped véletlenül egy kezdő csomagra Due-val Uno helyett.
Nekem izgalmasnak tűnnek azok a jópofa kis tutorial-ok a sok kacattal. -
Teasüti
nagyúr
válasz Janos250 #2753 üzenetére
Köszönöm!
A kimenet egyszerű. A digitális bemenetre is relét tervezek (12V behúzza a relét, ami kapcsolja a deszka 5V és pin2-13 lábait), hacsak nem indokolja vmi a bonyolult megoldást (optocoupler és pár ellenállás).
Az analóg bemenetre nincs megoldásom még, azon hogy lehetne 0-1x Volt közti feszültséget mérni?[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2757 üzenetére
Még úgy se éri meg relézni a bemeneten, ha csak kapcsolónak kell? Teszem azt figyelni egy világító berendezés bekapcsolását. Ehhez mindegy, hogy lassú, vagy csattog. A drága meg relatív, mikor 4 db Schottky diódáért elkérnek több, mint egy fontot...
Ebay-en se filléresek sajnos.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2759 üzenetére
Ahhoz, hogy megértsem a lehúzó ellenállás létjogosultságát, ahhoz ismernem kéne a digitális áramkörök lelki világát? Hiába kutakodok a neten, még nem leltem kielégítő válaszra, hogy tényleg megértsem. A működése se nagyon érthető, hogy lehúzza a földre, mert az "közelebb" van, meg hasonló magyarázatok. Meg a high/low inverz mibenléte...
Ugyanez a feszültségosztónál: miért kell tovább vinni a földre a második ellenállással az áramot? Ahelyett, hogy csak az első ellenállásom volna meg utána az alacsonyabb feszültségű áramkör, amibe be akarok csatlakozni.
Vagyis a leágazást nem értem a földre, ahelyett, hogy egyetlen ellenállással menne tovább elágazás nélkül.Meg a projektekben sem értem, hogy miért kell a mindenféle speciális ellenállás és kapcsoló után lehúzó ellenállás ahelyett, hogy közvetlen az analóg bemenetre kötnénk az 5V-ot? Tehát 5V -> kapcsoló/szenzor -> bemenet. Ez így miért nem jó? Vagy ha az 5V-ot ha közvetlen rádugom a bemenetre? Mi azzal a baj? Azt hinném mér rajta egy 5V-ot az ADC, aztán mindenki örül.
Köszönöm!
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Gergosz2 #2764 üzenetére
Fpeter84:
Olvastam a lebegésről, ez ugyanaz a jelenség, mikor a PWM kimenetre mérnek rá multival terhelés nélkül és mindig közel 5V-ot kapnak eredményül?
Feszosztó: az áramkör egésze nem egy [második ellenállásnak] felel meg az első után? Tehát ugyanaz az áram megy arra, mint ami a leágazás felé a tényleges második ellenálláson, vagy ez bullshit? Bár nem, mert csomóponti törvény... Szóval gondolom ti ránézésre tudjátok szimulálni fejben mi történik az áramkörben?Illetve analóg bemenetnél a map(x, 12, 0, 5, 0) elektronikai megfelelőjére volna szükség.
Tvamos:
A Kirchoff törvények lényege megvan, meg elvileg a potenciálkülönbségből eredő áramlási irányok is érthető, csak azután ránézek egy kapcsolási rajzra és wtf...[ Szerkesztve ]
-
Teasüti
nagyúr
De ha a kapcsoló nyitva van a bemenet előtt, akkor miért is lebeg? Nincs rajta semmi egy darab dróton kívül, max zajt szedhet össze azon a pár centin, nem?
Ha bármiféle bekötés nélkül beolvasok egy bemenetet, akkor is lebegni fog? A felhúzó és lehúzó különbsége gondolom csak annyi, hogy a földre vagy tápra van-e kötve az ellenállás túlsó vége.Hmm, ez segített kicsit a megértésben, köszönöm!
Az a task tiszta szégyen, mikor az egész letöltés pár sor javaszkriptben az XML tábla natív kiolvasásával mindenféle buta split helyett.
Mondjuk épp ezért az IDE kódolása egy kis könnyű olvasmány volt csak a projekt könyvben. -
Teasüti
nagyúr
Köszönöm, a lehúzó ellenállás így már világos.
A feszosztó is kezd letisztulni; csak egy gondolat: a leágazás egyik szerepe a második ellenállással a közös GND volna? Az egyik projektnél láttam ilyet, ahol a motort egy 9V-os elem hajtotta és a negatív pólusát kellett összekötni a földdel. Bár magyarázat nem járt mellé, csak egy előírás, hogy több táp esetén ezt kell csinánié'.[ Szerkesztve ]
-
Teasüti
nagyúr
-
Teasüti
nagyúr
Uhm erre kérhetnék némi magyarázatot?
"The Uno has 6 analog inputs, labeled A0 through A5, each of which provide 10 bits of resolution (i.e. 1024 different values). By default they measure from ground to 5 volts, though is it possible to change the upper end of their range using the AREF pin and the analogReference() function."
Köszönöm!
-
Teasüti
nagyúr
válasz fpeter84 #2788 üzenetére
A konstansokat az Arduino.org learning szekciója szerint egy progmem flag-gel kell bélyegezni, hogy a flash-be kerüljenek és ránézésre elég bonyolult behívni a ram-ba futás közben.
Ezt megoldhatták volna intuitívabban is... De van egy eeprom is, az még érdekes lehet adatot tárolni, majd arra kíváncsi leszek. Remélem egyszerűbb használni az idevonatkozó library-vel, mint a flash olvasós függvényeket!Az ám! Ram-ot üríteni hogy lehet? Mármint megszabadulni az ideiglenes adatoktól.
Valamint van-e bármilyen szerepe a globális és helyi változóknak? [Globális ami a setup() előtt deklarált és lokális ami a loop()-ban?]
Gondolok itt pl arra, hogy a ciklusban létrehozott változók törlődnek a ciklus végén?
Köszönöm![ Szerkesztve ]
-
Teasüti
nagyúr
Bluetooth modulból jó a HC-06? Android-dal szeretném összehozni, kéne vmi Tasker beépülő is. Tud jól bevált alkalmazást vki? Úgy nézem keresőben ez némi kutatómunkát igényelne; hátha van vkinek rá válasza.
Köszönöm!Más: az AREF az összes bemenet jelszintjét megváltoztatja, vagy ez programozható?
Analóg accelero miatt kérdem, ami 3,3V-os jelet ad. Ezen kívül viszont nem kéne a 3,3 a többi porton.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz DrojDtroll #2809 üzenetére
5V. Gondolom.
-
Teasüti
nagyúr
Basszus, egész délelőtt a Nulsom Neopixel stick-et próbáltam életre kelteni, de a saját library-jét nem tudom letölteni (hibás zip), az Adafruit library példájában az összes függvényre undeclared identifier-t ír az Android IDE.
Próbáltam egy alternatív WS2812B library-t, de azzal se kelt életre.
Meg tudná nézni vki a Nulsom library-t, hogy hibás-e?[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2825 üzenetére
Erről volna szó.
Adafruit nem volt Prime szállítással... -
Teasüti
nagyúr
válasz fpeter84 #2826 üzenetére
Na, masodik nekifutasra az Adafruit library eletre keltette. Megvolt a Hello World.
Szereztem gyorsan egz laptopot, a windows-os IDE gond nelkul leforditotta.
Probaltam konytar atnevezest is, a readme is irta mi kell neki.
De ugy se ment.Neztem a forraskodot, es meglepett, hogz assembly-ben van minden.
Ez az optimalizacio miatt kell, vagy magas nyelven eleve mukodeskeptelen lenne ez a szuk idozites?
Lehetseges egyaltalan mikroszekundumra kesleltetni C++ alatt?Assembly-t en biztos nem fogom tudni elsajatitani, viszont erdekelne a library-bol az a ket alapveto fuggveny, ami a ledeket frissiti. Semmi mas, csak ami megcimezi az egyiket, vagy az osszeset egyszerre.
Az effektezest magam keszitenem el, viszont ez a library lefoglalja a memoriat foloslegesen.
Meg keresgelek kicsit, hatha vannak alternativ WS2812 library-k is, az a minimalista verzio talan most mukodni fog.Koszonom a tamogatast!
[ Szerkesztve ]
-
Teasüti
nagyúr
-
Teasüti
nagyúr
Serial monitorban a kimenet tele van hibával. Ez normális?
Println(byte + " " + byte + " " + byte) a parancs, persze széttagolva, mert így összeadva nem ismerte fel.
De a monitorban meg ilyeneket látok:
255 0 0
255 0 0,#55 0 0
255 0 0
És így tovább...
De nem néhány hibával, hanem elég sűrűn hibázik.
A gyári usb kábelt használom, talán azt kéne kukázni?
Gyorsabb átvitelnél (kisebb delay vagy anélkül) meg az első pár adatcsomag teljesen kuka, és csak egy tucat sor után kezd értelmes adatot küldeni...Selejtes az Uno-m?
Szerk: a delay a ledek frissítése után van, azzal állítom be az fps-t.
Talán kéne egy delay a küldés után is? Így hirtelen nem emlékszem a könyvre.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz Teasüti #2852 üzenetére
Nem tudtam ma reprodukálni a soros kapcsolat szemetelését.
Viszont szabadna feltennem egy C-vel kapcsolatos kérdést?
Deklaráltam az alábbit:
int numPixels = 85;
byte buffer1[3*numPixels] = {}; //R, G, B csatornák ledenként
#define RED(x, i) x[i]
#define GREEN(x, i) x[i+1]
#define BLUE(x, i) x[i+2]Majd:
RED(buffer1, i) = akármi;A problémám az volna, hogy vmiért nem fut le a program az UNO-n, ha 85-nél többet adok meg a numPixels változóban. Ez arra enged következtetni, hogy a tömbbe nem tudok berakni 256-nál több elemet, ha jó a tippem.
Van erre vmi ötlet, hogy mi lehet a gond?
Vmi C fogyatékosság, amiről nem tudok?[ Szerkesztve ]
-
Teasüti
nagyúr
válasz happy555 #2855 üzenetére
Ezt konkrétan a zárójelben lévő vessző utáni szóközre érted?
Aha, köszi!Rájöttem menet közben, teljesen máshol volt a bug.
Az egyik függvényben a számlálót bájtban deklaráltam, ami így nem tudta megcímezni a tömb elemeit 256 után. Marha... Csak két órát nézegettem a kódot ott, ahol nincs is hiba. -
Teasüti
nagyúr
válasz fpeter84 #2864 üzenetére
5V pin-en van a ledsor, természetesen. Szóval 0,5A max. Az tetszik. A ledek elméletileg 480 mA-nél többet nem vesznek fel, de amúgy lecsavart fényerővel használom - különben kiégeti a szemem -, így elvileg nem kéne gondot okoznia. Úgy tudom az áramfelvétel arányos a (programozott) fényerővel.
Nem tudom miért szemetelt korábban, de holnap veszek egy 9V-os elemet az Uno-hoz. Azóta a monitorban csak nagyon ritkán fordul elő hiba, viszont a programfeltöltés gyakran hibával leáll, de második nekifutásra mindig jó. -
Teasüti
nagyúr
válasz fpeter84 #2875 üzenetére
Ohh erre nem is gondoltam, hogy PWM esetén áramból is a maximumot veszi fel. Akkor kár is fényerővel kalkulálnom, 60mA-rel kell méreteznem ledenként.
Adafruit Neopixel oldala szerint lehet számolni az átlaggal is, ha jól értelmeztem. :S
Már úton van egy 15A-es buck konverter, de az majd a járművön fog kelleni.Veszek szerintem egy usb breakboard-ot, vagy mit, aztán addig usb töltőről fog üzemelni. :-)
-
Teasüti
nagyúr
válasz fpeter84 #2883 üzenetére
Usb kivezetés, breakout board. Mea culpa.
Bluetooth modulból melyik ajánlott?Illetve most ismerkedek az I2C adatbusszal, ehhez van esetleg vkinek egy jól bevált interface-e, ami nem shield?
Fizikailag akár légszerelve is össze lehet drótozni több eszközt az SDA/SDC portokra?
Jah és a lényeg: a WS2812 ledek vezérlése és UART (bluetooth kommunikáció) + I2C (szenzor adatok) + interrupt mennyire mission impossible?
A kódot még összerakom vhogy, csak hogy működni is tud a dolog?
A megszakítást csak számlálóként használnám, az se életbevágó probléma, ha addig nem számol, amíg a ledekre ír a program - tekintve, hogy addig kilövi a led library a megszakítást.A kacatokat köszönöm szépen, már megy is a kosárba!
[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2886 üzenetére
A BT csak számítógépes kommunikációra kell, nincs szükség master/slave csatornára.
Class 2 is elég belőle. Szal HC 5 és 6 megfelelő... Tele van vele az ebay, akkor ez pipa.I2C: első körben egy MPU 6050 gyro szenzor érdekel, de csak játszani. Ha működik a megszakítás (abs jeladót szeretném monitorozni), akkor nem lesz szükségem accelero-ra.
A lednél hogy érted azt, hogy az SPI levesz a hardver válláról?
WS2801 és 02 nem bit bang-gel működik?
Hmm, akkor talán utána kéne néznem az SPI-nek is, hogy miként lehet több eszközt használni róla.
Még az is lehet, hogy kevesebb porttal kijönnék 5 db ledszalag meghajtása esetén (mindegyik külön adattal természetesen).WS2812-nél én úgy tudom a 400 hz a PWM frekvencia. A komminukáció 400/800 Khz-en zajlik.
A másiknál a 20 KHz is PWM frekvenciát jelent.[ Szerkesztve ]
-
Teasüti
nagyúr
válasz fpeter84 #2888 üzenetére
MPU 6050-nél én pl abszolút nem értem hogy kéne értelmezni a 6 tengelyes mérés kimenetét 3 darab értékkel, amit ad a DMP. Ha ezt elhelyezem egy koordinátarendszerben, akkor is csak egy vektort kapok 3 dimenzióban.
Amúgy nem értem miért jó a gyártónak a "discouragement policy", hogy nincs rendesen dokumentálva a DMP.
De mindegy is, nekem elég 1D a jármű gyorsulására, lassulására. Ezt váltaná ki az abs jeladó.
Lehetne vacakolni még dőlésszögekkel (motorról lesz szó amúgy), de nem én fogom újrafeltalálni az egykerekezés gátlót, vagy kanyar abs-t.Hardveresen lehet számolni mindkét megszakitót egymástól függetlenül?
SPI-nél akkor elméletileg nincs delay()?
I2C:
több eszköz összedrótozása akkor nem probléma?
Egy SI1145 fényérzékelőt viszont be szeretnék vetni.Az az asztal nagyon beteg!!
A hangot is a mikrokontroller dolgozza fel, vagy stream-elik az adatokat pc-ről?
Szeretnék hangérzékeny effekteket is majd.[ Szerkesztve ]
-
Teasüti
nagyúr
Uhm, hol a probléma itt???
uint16_t = byte * 255 / int
Hibás eredményt kapok, még a long is átfordul tőle.
Kikisérleteztem, hogy a byte-ot legfeljebb 128-al szorozhatom, különben hibázik. Ebből nekem nem esik le a tantusz, szóval van vkinek vmi tippje?
Köszönöm! -
Teasüti
nagyúr
válasz razorbenke92 #2894 üzenetére
Az a gond, hogy a byte az kellene a képletbe, mert nem deklarálhatom másként. Vagy erőforráspazarló módon át kéne másolnom másik változóba? Az egészrésznél nem is kell több. Sőt, az eredmény is elférne egy byte-ban, mert az osztó mindig nagyobb 255-nél.
Amúgy mit jelent, amit írtál?
Ez az (int)byte?Köszi!
-
Teasüti
nagyúr
Vmi gond van a cast-olással.
Tudna vki segíteni?int temp;
byte buffer1[] = {};
byte buffer2[] = {};
temp = (int)buffer2[i]-(int)buffer1[i];Ahol ha 0-ból kivonok mondjuk 25-öt, akkor 236-ot kapok -25 helyett.
Miért?
A cast-ot végigpróbáltam többféle változóval is, mint float, long, stb.
Az eredmény mindig hibás.szerk:
Ezt meg simán visszaadja a helyes egészrésszel cast nélkül...
buffer2[i] = buffer2[i]*light/255
Ahol byte light < 255.Korábban meg egy ugyanilyen képletben hibázott, mikor az osztó és osztandó fel volt cserélve, vagyis 255/int.
Lásd korábban.Megkockáztatom, hogy szar a fordító?
(Amúgy korábban az (int)byte nem működött. (uint16_t)byte már igen. Ez is kérdőjeles számomra... )Így elég szar programozni, hogy alkotás helyett csak azzal szopok, hogy miért nem tud kiszámolni egy kib@szott képletet...
[ Szerkesztve ]
-
Teasüti
nagyúr
Byte 0..255 között vehet fel értéket; a light = analogRead(A0)/4.
Úgy érted, hogy nem előjeles, hogy a pl. a +25 értékről "nem tudja a fordító" hogy ez pozitív egész szám, cast ide vagy oda? Nem erre való a cast? Az implicit konverzió nem arról szól, hogy matekos analógiával élve egy értéket áthelyezek egy másik halmazba (pl egész számok halmaza -2^8 és 2^8 között) a számítás erejéig? Értem, hogy a motorháztető alatt konkrétan átkonvertálja a változót, de azt nem tudom pontosan hogy váltja át.Csak byte-ként deklarálhatom a buffer1 és 2 tömböket, mert a LED library csak bájtot fogad el.
[ Szerkesztve ]
Új hozzászólás Aktív témák
- Monitortató plexi konzol több elérhető készletről MONITORCENTER
- -51% HP EliteBook 840 G8: i7 1165G7,32GB RAM,1TB NMVe SSD,Iris Xe,IR kam.+ujj.olv.,vil.MAGYAR bill.
- 1.250.000 FT helyett 940.000 FT !! MacBook Pro 16" M3 Pro 12CPU / 18GPU / 18GB / 512 SSD
- RTX 2080TI ROG STRIX GAMER PC
- AKCIÓ !! M3 Chip - MacBook Pro 14" 8C CPU / 10C GPU / 8 GB/ 1 TB / Bontatlan / Magyar