-
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
-
fpeter84
senior tag
válasz Teasüti #2704 üzenetére
Egyben nem rémlik ilyen megoldás...
Melyik Arduino-d van és kínai vagy eredeti? Az eredeti Uno (MC33269) és Mega2560 (NCP1117) LDO-ja papíron absolute max rating 20V, a Nano (UA78M05) pedig 35V, tehát rákötheted az autó hálózatára. A kínai Uno/Mega/Due mind olyan gagyi (AMS)1117-es LDO-t kapnak ami még a bő 12V-tól is néha elfüstöl, az autóban órák/napok kérdése csak a döglés - gyakorlati tapasztalat. A Due eredeti és kínai másolata egy és ugyanaz (a legtöbb, ellenőrizni nem árt azért) és egy LM2734 DC-DC step-down van rajta ami 20V-ig küldhető terhelhető...
Ha olyan kínai Arduino-d van amit nem köthetsz direktben a 14V-ra, akkor pl: [link]
PWM csatornából mennyire lenne szükséged? A Due-nak pl alapból is 12 csatornája van címkézve, de alternatív lábakon még további 4-5 csatorna elérhető. Ilyen shield persze nem lesz hozzá, lehet kénytelen leszel forrasztgatni kicsit - prototípus nyák, FET, ellenállások, tranzisztor...
Milyen LED-eket szeretnél meghajtani? Natúr LED, vagy kész szalag/modul amiben van áramkorlátozó ellenállás is? Utóbbi lehet problémás, mert ha nagyon ki van centizve az árama akkor 12V-on lehet jó, de a 14V már megölheti... Ha bízol az áramkorlátjában akkor egyszerűbb megoldással is rá lehet adni a tápot (esetleg még plusszban sorbakötni adott méretezésű ellenállást):
Ha biztosra akarsz menni, akkor áramkorlátozós PWM meghajtás:
Az utóbbinál az R2 méretezését majd matekozni kell, hogy jól legyen beállítva a maximális áram, itt írják le az elméletét... Ez a kör nem engedi megfutni az áramfelvételét és PWM-el kapcsolgatható is (a szürke rész egyébként el is hagyható, akkor csak fixen áramkorlátoz vezérlés nélkül)...
[ Szerkesztve ]
-
fpeter84
senior tag
válasz Teasüti #2708 üzenetére
Hát a 30 csatorna már igen magas elvárás - ugyan a dsPIC családban látok olyat amiben van ennyi, de 144p TQFP tokozásban - nem lehetetlen beforrasztani jobb minőségű gyártatott nyákra kézzel, de lehet nem ezzel kellene kezdened
Akkor ha még semmit nem szereztél be, lehet érdemes más vonalon elindulni mint a rengeteg PWM csatornás forrás: keress rá hogy WS2812 led strip - ezek egyedileg pixelenként címezhető láncot alkotnak és cirka bármivel meg lehet hajtani - max a címzési sebességben számíthat hogy Nano/Uno vagy valami izmosabb procit választasz... Létezik belőle 5 és 12V verzió is - de az utóbbi nem tudom elviseli e a 14-et - lehet szerencsésebb az 5V-ost választani és egy jó hatásfokú kapcsüzemű tápról adni neki ezt.
Más hasonló vezérlőcsippes RGB láncok is léteznek, keresgélj kicsit ebben a témakörben hogy milyen alternatívák léteznek még...
@tvamos:
Nyilván a legprofibb megoldáshoz kell keresni egy PWM vezérelhető áramgenerátor cél-IC-t
szerk: egyébként én bátran ajánlom a filléres kínai arduino változatokat mert eddig csalódnom egyben sem kellett, max vannak apró módosításokból származó korlátaik (esetleg előnyeik is) amivel jó tisztában lenni. Az alap Due-k eddigi tapasztalataim alapján 100% azonos klónok, és azért nem teljesen mindegy hogy 50$ az eredeti, vagy 12$ free shipping az Aliexpress-ről
[ Szerkesztve ]
-
tvamos
nagyúr
válasz Teasüti #2714 üzenetére
Ha a mechanikus potit kicsereled SPI-s digitalista, akkor az Arduinorol sokat vezerelhetsz.
nem célszerűbb és egyszerűbb egy relét használni erre?
A rele mechanikus, azon a PWM eleg lassu lesz.[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
fpeter84
senior tag
válasz Teasüti #2730 üzenetére
A csomagból a könyv nekem nem érne egy fillért sem - szerintem minden ilyen anyag elérhető online is. A többi dolog jópofa, de az Uno erősen alap cucc - pl egyik nagy fogyatékossága hogy csak 1 sorosportja van, ami egyben a programozó portja is, valamint a flash/RAM se sok, könnyű olyan lib-eket találni, amelyek kilógnak az erőforrásaiból. Természetesen van amire ez is elég, csak a 28e-et picit soknak érzem érte
A Mega2560-nak 4 sorosportja van amiből csak 1 osztozik a programozó funkcióval, az Atmega32U4-et használó Leonardo és Pro Micro-nak ugyan csak 1 sorosa van, viszont a programozó felület az USB-n megy így ez szabadon marad. Ráadásul az utóbbit könnyebb egy breadboard-ba belebökni és körbeépíteni...
Jól látom, hogy UK-ba rendelnéd? Ez helyben van, és a szett árából 13 darabot házhoz visz belőle Neked a postás
Eredeti vs kínai: egyrészt bizonyos típusok a tápjukban különböznek, másrészt van olyan aminél az eredetin egy USB-s atmel adja az USB>soros programozó illesztést, a kínaiakon meg általában a CH340g chip, de az utóbbi szerintem igen keveseknek okoz gondot. Pár egzotikus projektben ugyan láttam olyat pl hogy az eredeti UNO-n a segédcsippnek lecserélték a firmware-jét és befogták USB host/device célra, pl billentyűzet, egér, stb, de ez tényleg perverz megoldás, hiszen ott van a fenti 32U4 ami önmaga USB-s típus. Mostanra már az Androidos IDE is támogatja a CH340g-t, úgyhogy már tényleg nem tudom hol nem elég ez is. De a 32U4-en a natív USB miatt biztosan nem lehet probléma. Mellesleg a kínai többnyire nem "hamisítvány" mivel OpenSource - max akkor lehet hamisítványnak nevezni, ha minden felirat rajta azt állítja hogy eredeti Made in Italy...
Breadboard, LCD kijelző, minden van EU-n belülről is ha nem akarsz várogatni a még olcsóbb kínaira - érdemes az ebay.co.uk-on nézelődni (EU only szűréssel) valamint az eu.banggood.com -on is nagy a választék az Arduino SCM rovatban.
Ha egyesével címezhető RGB LED sort veszel (WS2801 gyors de drágább, WS2812 lassabban címezhető de olcsóbb) akkor nem is nagyon kell más hozzá mint az alap Arduino deszka - max azért érdemes breadboard-ot is beszerezni meg még ezt azt hogy legyenek gombjaid is a vezérléséhez, ne csak a soros konzolon utasíthasd. Illetve ha hosszabb a LED sor akár ajánlott egy tápegység beszerzése is, mert az USB-ből kinyerhető áram erősen limitált... Ez lehet akár egy normális mobiltöltő is - ehhez is lehet kapni pl Micro USB csatlakozó kivezetést, de lehet egy mezei 5.5/2.1-es hengeres végű csati is ha éppen ilyened akad otthon 5V-os.
-
tvamos
nagyúr
válasz Teasüti #2733 üzenetére
Talán az a 25 év, amióta elektronikát fejlesztek megzavarta az agyam, hogy nem értem, ha nem irod le pontosan.
Nem a TX-et kell befogni a címezhető szalag vezérlésére?
A TX aszinkron soros, a LED szalag nem az. Persze meg lehet oldani.[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
fpeter84
senior tag
válasz Teasüti #2734 üzenetére
A szépséghibája az Uno-nak hogy ez az egyetlen sorosportja, és ezt használja a bootloader programfeltöltője is
(TXD)PD1
(RXD)PD0Amikor az IDE a segédcsipp TX lábán ad a proci bootloadere felé az RX lábára, akkor a külső passzív módon adó forrás - mint pl egy GPS vevő ami másodpercenként küldi magától az NMEA 0183 mondatokat - bezavarhat a programozásba, amikor pedig a proci bootloadere a TX lábán válaszolgat a segédcsipp RX-e felé, akkor azt meg fogja kapni a külső eszköz is, és bezavarhat annak a viselkedésébe. Ezt elkerülendő célszerű a külső eszközt minimum kikapcsolni, de esetleg le is húzni a vezetékeit. Macera, soros célra jobb egy olyan kontrollert használni aminek vagy több portja van (Mega2560), vagy natív USB-n megy a programozás (32U4 család) vagy mindkettő egyszerre (Due)...
Ha címezhető LEDsort használsz, akkor nincsen szükséged semmi kapcsoló áramkörre. Egyszerűen rácsatlakozol a buszrendszerére - a gyorsabb WS2801 ha jól láttam akkor SPI felületen, a lassabb WS2812 pedig tetszőleges szoftverből kapcsolgatott IO lábra megy, tehát egyik sem üti a sorosportot. Viszont több összekapcsolásánál, vagy ha pl mobilról elérhetőre szeretnéd megcsinálni - kékfog, wifi, stb ezekre is vannak pár dolláros kínai megoldások - akkor már szükség lehet arra is...
Többek között pl itt is jól látszik az Uno lábkiosztása: [link]
Az 1 vezetékes LEDsornak csak egy tetszőleges digit kimenet kell. A 2 vezetékes gyorsabb az SPI-re megy, ami az SCK/MOSI/MISO, de ebből csak 2-t használ, az órajelet meg az adat kimenetet, olvasni nem lehet őt sem[ Szerkesztve ]
-
fpeter84
senior tag
válasz Teasüti #2738 üzenetére
Ha nem esik nehezedre ennyit kiadni akkor hajrá, hülyeségnek semmiképpen nem nevezem a kit-et mert tanulásra, indító rúgásnak tényleg lehet jó - csak én úgy viszonyítok, hogy abból a pénzből úgy 36db Uno-t küld a kínai
Azért nézz utána az Arduino oldalán, hogy mi is van abban a csomagban, és hasonlítsd össze ezzel: [link] - ha csak a könyv a különbség, akkor az nem biztos hogy megér +18e-et
-
fpeter84
senior tag
válasz Teasüti #2740 üzenetére
ezekre a cuccokra rákeresve remek tutorialokat lehet találni netszerte, én nem félnék belevágni...
- arduino stepper motor ULN2003
- arduino 1602 LCD
- arduino IR remote receiver
...stb... egyébként ezt találtam hozzá: [link] továbbá a sparkfun, adafruit stb oldalakon érdemes nézelődni
szerk: de tényleg megveheted az eredetit is - nem akarok turkálni a zsebedben, ha neked nem fáj ekkora összeg akkor nyugodtan! csak ha én összeszámolnám hogy az utóbbi 7-8 évben hány ezer dollárt fizettem ki kína felé, és ha azokból mind eredeti/márkás/drága verziót vettem volna akkor hány tízezer $-ra rúgna, hát inkább már az ezrekbe se akarok belegondolni
[ Szerkesztve ]
-
Janos250
őstag
válasz Teasüti #2733 üzenetére
Nem tudod csak úgy "felemelni". Nincs 12V-os mikrokontroller.
Helyette az Arduino lábával egy "villanykapcsolót" tudsz kapcsolni, ami be- illetve kikapcsolja a 12V-ot.
A "villanykapcsoló" relé, illetve FET.
FET-ből az IRL típusjelűek általában megfelelőek.
[link]
http://www.hqelektronika.hu/hu/category/tranzisztor_fet
Kulcsszó legyen IRL.
vagy ebay.
Reléből ebayen olyat is találsz, amit az Arduino tud kapcsolni.
Itt egy alapszintű leírás:
http://kkft.bme.hu/~johnny/Diplomamunka_OcskoSzabina_2011.pdf
30, 34. oldal
14, 18. ábra
Itt a PIC helyére gondolj Arduinot![ Szerkesztve ]
Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.
-
fpeter84
senior tag
válasz Teasüti #2754 üzenetére
Szerintem ne relékben gondolkodj, nettó önszivatás - lassú, zizeghet (prell), csattog, fogyaszt, drága - félvezetőkkel sokkal egyszerűbb megoldani, de tényleg!
Kimenet: a fogyasztó pozitívja fixen a tápon (biztosíték persze kell valahová), a MOSFET pedig földre húzza és ezzel kapcsolja be
Ha egyéb félvezetős áramkört akarnál bekapcsolni arra nem feltétlenül használható, mert ha valami egyéb bekötésén keresztül kezd földelni az minimum parajelenséget okozhat, de akár tönkre is mehet. De LED/izzó/relé/motor stb stb ilyesmik kapcsolására ideális mert minimális a szivárgó áram, alig melegszik...
Digit és analóg bemenet: a kulcsszó a feszosztó! 2 ellenállás az egész, itt van egy kalkulátor hozzá... Ha autóról, vagy valami más külső jelforrásról van szó akkor ajánlott még 2 schottky-t is betervezni - ezek megeszik a túlfeszt, tüskéket...
Izolált digit bemenethez pedig opto:
A felhúzó ellenállás az arduinok bizonyos lábain el is hagyhatóak, mert van bekapcsolható belső felhúzó rajta...
[ Szerkesztve ]
-
fpeter84
senior tag
válasz Teasüti #2758 üzenetére
A relét se ingyen adják, sőt!
Egyébként első nekifutásra ezeket találtam: [link], [link] - kínából nyilván olcsóbb, csak arra többet is kell várni
Nincsen egy elektronikai alkatrészbolt a közeledben? Úgyis kellhet még sokminden - ellenállások, kondik, ilyesmik - nem tudom mit kapsz a starter készletben...
Egyébként digitális bemenetnek az opto-s leválasztás a legegyszerűbb... [link] - ehhez már csak egy soros ellenállás kell a bemenő oldalra - kb 0.68-1K 12-14V mellett
szerk: az még lemaradt hogy kimenet esetén a reléből csak a legkisebbeket tudná meghajtani közvetlenül a uC lába, de oda is kell 1 schottky mert a tekercs hajlamos nagyfesz tüskéket generálni ami kiütheti az egész procit. Átlagos autós relét már nem is tudna behúzni, ahhoz mindenképpen kell az előzőekben linkelt N-MOSFET vagy tranzisztoros (a FET jobb, kevesebb a szivárgó áram, nagyobb a terhelhetősége, kevésbé melegszik) kapcsolás + schottky a relével párhuzamosan. Ilyen paneleket egyébként lehet kompletten is venni 1-2-4-8 relével - ezeken elvileg rajta van minden [link]
[ Szerkesztve ]
-
tvamos
nagyúr
válasz Teasüti #2762 ü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?
A Kirchhoff-törvényeket kéne először!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.
Ne hallgass senkire! Próbáld ki, és meglátod.[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
fpeter84
senior tag
válasz Teasüti #2762 üzenetére
Fel/lehúzó ellenállás: anélkül "lebeg" a láb amikor a kapcsoló nyitva van - nem garantálható hogy tényleg 0 vagy 1 lesz rajta, viszont egy pár K ellenállással biztosra lehet menni. Az ATMEGA328P doksijából ki kellene túrni hogy minden lába tudja e, de elvileg van olyanja hogy szoftverből bekapcsolható internal pull-up, tehát az adott láb biztosan logikai 1-re kerül, a kapcsolóval meg földre lehet húzni - így elkerülhető a plussz alkatrész. (kivéve a prell/bounce jelenség, de ez még ráér)
Feszosztó: a feszosztó az 2 ellenállás, 1-el csak áramot tudsz korlátozni, de az adott kötési mód a bejövő feszültséget is arányosan letöri. Most csak hasraütésből - ki kéne ezt is túrni a manual-ból - de úgy 2-3V-tól már biztosan logikai 1-nek tekinti olvasáskor a digit láb állapotát. Tehát ha mondjuk az autóból érkező 12-14V-os jelet szeretnéd detektálni, akkor R1=100K, R2=33-47K, akkor a lábra érkező jel biztonságosan mindig a 3-5V-os tartományba fog esni...
Közvetlenül egybként akkor sem illik összekötni 2 áramkört, ha egymástól független tápról mennek. Pl ha 2 arduino beszélget egymással sorosporton vagy akárhogy máshogy, akkor illik a lábak közé berakni egy-egy soros 1-10K ellenállást, különben ha egyik oldalt kikapcsolod, akkor a digit lábon keresztül próbálhat egy kis áramot szipkázni magának a másiktól. Elég bolondbiztosra tervezték ezeket a kontrollereket, leginkább csak jelentős túlfesszel lehet kárt okozni bennük, de ez nem boldogít ha a tiéd éppen mégis megsérül...
"Ilyenből szokott sokat tanulni az ember"
Na ja, amikor véletlenül követed el a hibát, és már napok óta szívsz vele hogy miért nem azt csinálja amit vársz tőle...
-
bacus
őstag
válasz Teasüti #2762 üzenetére
pedig ez sem bonyolultabb mint a tasker , az időjárás taskod évek óta használom.
A lényeg, egy digit bemenet ne tudjon lebegni, ezért vagy le kell kötni a földre, vagy fel 5V-ra. Így, ha máshonnan nincs semmi jel, akkor is van határozott bemenete. Ne feledd, itt nem jó a nem értelmezett tartományba engedni egy bemenetet.
Nézzünk egy lehúzó ellenállásos példát. Adott egy bemenet, amire egy gombbal kapcsolsz 5V-t.
Amikor lenyomod a gombot, a bemenet határozottan 5V lesz, hiszen a gomb egy rövid zár. De mi van, ha nem nyomod a gombot? Akkor "lóg" a levegőbe, és ki van téve sok mindennek (csernobiltól barátnő hisztije), és hol 1V lesz rajta, hol 4V, hol 0V. Olyan ez mint egy nem inicializált változó, aminek nem adsz értéket, lekérdezed, számolsz vele és nem várt viselkedést kapsz. Itt jön képbe a lehúzó ellenállás, egyszerűen a bemenetet lekötjük a földre. Azért kell az ellenállás, hiszen a gomb lenyomásával nem szeretnénk a tápot rövidre zárni. Ezen az ellenálláson gomb lenyomása alatt áram folyik, Ohm bácsi akinek azért elég széles körben ismert a törvénye meg is határozta az összefüggést, ami alapján számolható.
A gomb felengedett állapotában az ellenálláson nem folyik áram (amíg bemenetnek van deklarálva a láb, meg amíg belül van még a füst az ic-ben, mert ha már kiszabadult onnan, akkor ez nem feltétlen igaz)Egy szó mint száz, az ellenállás meghatározásához figyelembe kell venni, hogy mennyi áramot akarunk átfolyatni az ellenálláson, ezt bírnia kell a tápnak, a kapcsolónak, a vezetéknek, és persze az ellenállásnak is. Nem érdemes sem túl kicsire méretezni, sem túl nagyra. Ha nincs kedved számolni, akkor 5V nál használj 10KOhmost.
Azt, hogy mikor le, mikor felhúzó ellenállást kell alkalmazni, az függ, hogy mi legyen pl az alapértelmezett bemenet. Ha gomb nyomáskor 0V-t akarok, akkor felhúzó kell, alapértelmezett 1 lesz, mikor nem nyomod a gombot. Vannak alkatrészek, pl egy 3 lábú hőmérő ic, aminél megmondja a gyártó, hogy a digit lábat fel kell húzni 5V-ra, hogy működjön..
Az analóg bemenethez nem feltétlen kell le v. felhúzó ellenállás, ez függ attól amit rákötsz. Ott nincs nem értelmezett szint, de ott sem jó, ha nincs jel !
A feszültség osztóhoz minimum elő kell venni egy 8. osztályos fizika könyvet és átlapozni soros, párhuzamos, vegyes kapcsolás, eredő ellenállás. Röviden: Adott egy egyszerű soros áramkör, amire feszültséget kapcsolva, az áram megindul, átfolyik mindkét ellenálláson. Megint csak Ohm bácsi tv szerint számolható, hogy adott ellenálláson mekkora feszültségek lesznek, de a sorba kapcsolt ellenállásokon eső feszültségeket összeadva megkapod a rá kapcsolt feszültséget, mondhatjuk fordítva is, hogy a rá kapcsolt feszültség megoszlik az ellenállásokon.
Miért kell két ellenállás? Az egyszerűbb válasz, hogy nem kell minden esetben. Az áramkörödnek (annak a résznek amit így bekötsz) is lesz egy ellenállása, ha ezt ismered, akkor a másik ellenállást ehhez méretezve is lehet feszültséget osztani. Példa, az áramköröd (fekete doboz, nem tudjuk mi az) 10KOhm ellenállású, 6V-t szeretnél rákapcsolni a 9V-os elemről. 5KOhmot sorba kötsz, feszültség megoszlik, áram folyik, happység van, a 9V táp 15KOhmot kap, le tudja adni az áramot elég tartósan, nem melegszik, stb.Általában azonban nem így van ! Egyrészt nem tudod az ellenállást, másrészt pl egy arduino bemenete nem úgy működik mint egy rezisztiv rész, pl egy analóg bemenetre akarsz adni 2-3V-t (ezt akarod tudni, hogy mekkora, de nem akarod, hogy ott áram folyjon). A csak sorba kötsz egy ellenállást, akkor oda igen nagy ellenállást kell sorba köss, és ráadásnak maga a bemeneti fesz sem lesz stabil, stb.
A párhuzamos kapcsolásnál, ha a két ellenállás nem egy nagyságrendbe esik, akkor bár a feszültség esés ugyanakkora a nagyobbik ellenálláson nagyságrenddel kisebb áram folyik, ami azt jelenti, hogy ez többé kevésbé elhanyagolható. (100x aránynál ugye 1% lesz). Nos ebből kifolyólag a méretezésnél nem foglalkozol vele, tisztán rezisztiv alkatrészekkel méretezed a feszültség osztót, majd a bemenetre kötöd az így osztott feszültséget, ami azonnal beleszól mindenbe, de jó méretezésnél csak 1% eltérés lesz...Kössünk egyezséget, megegyezős egyezséget... https://www.paypal.me/engiman/30
-
zka67
őstag
válasz Teasüti #2770 üzenetére
Szia, azt hiszem a lényeget nem mondták el, és ezért nem érted a dolgot.
A manapság gyártott procikban MOS tranzisztorokat használnak. Ezek "térvezérlésű" tranzisztorok, azaz nem árammal, hanem feszültséggel vezérlik őket. A bemenetük a GATE, ami rendesen el van szigetelve a tranzisztor többi részétől, azaz kapacitást képez. Ez a kapacitás képes töltéseket összeszedni a "levegőből" is, ha nincs semmi a GATE-re kötve, és ha megfelelő mennyiség összegyűlt, akkor kinyithat a tranyó. Csak úgy, a "semmitől". Ezért kell valamelyik potenciálra kötni a "lógó" bemeneteket egy nagyobb értékű ellenállással. Azért használnak nagyobb értékűt, hogy ha aktiválod a bemeneteket, ne zabálja feleslegesen a tápot. Használhatnál pl. 100 ohmos ellenállásokat is, de több tíz bemenet esetén ha kiszámolod, akár amperes nagyságrend is lehetne a feleslegesen elfolyó áram. Túl nagy értéket (>1Mohm) sem szoktak használni, mert ha hosszabb vezeték megy a lábra, akkor az képes annyi töltést összeszedni, hogy még az ellenálláson keresztül is kinyit a tranyó. Ahogy valaki írta is, a 10kohm-os ellenállás tökéletes választás otthoni használatra, kísérletezésre.
Üdv.
Zoli -
tvamos
nagyúr
válasz Teasüti #2769 üzenetére
Olyasmi, mint amikor az oszcilloszkóp probjának a végét megfogod az ujaddal ott lesz egy jel a levegôbôl. (Te vagy az antenna.)
A kimenetben van egy csomó tranzisztor. Azok akkot is ott vannak, ha bemenetnek konfigurálod. Mind szivárog kicsit. Nem tudod, hova áll be. Ez mind a hômérséklettel változik. Ráadásul, mind kondenzátor is, amiket töltöget, meg kisütöget. Tehát az idôvel minden változik, folyamatosan.De én még mindig azt mondom, érdemes ezt kipróbálni akkor, amikor van egy kis idô próbálgatni.
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
fpeter84
senior tag
válasz Teasüti #2769 üzenetére
Azthiszem zka67 foglalta össze legjobban a lebegő bemeneti láb problémáját: a lényeg hogy mindig határozott potenciálra kell húzni a digit bemenetet, különben érhetnek meglepetések és rejtélyes hibákkal fogsz küzdeni...
A feszosztóra is nehéz lenne az Ohm törvénynél, és az itt lévő rajznál és kalkulátornál egyszerűbb magyarázatot adni.
Próbáltam kitúrni a doksijából hogy mi a minimum feszültség az 1 jelszinthez illetve a maximum a 0-hoz, de sugárban hányok ezektől az ömlesztett doksiktól amiket összetákoltak az Atmelnél - a PIC-ek doksijai nagyságrendekkel rendezettebbek és átláthatóbbak
Mindenesetre 5V tápfesz esetén saccra 3V felett már biztosan 1, 1V alatt már biztosan 0 a digit beolvasás értéke... Szóval a feszosztót úgy kell méretezni, hogy az autó 12-14V-ja (és még biztonsági ráhagyás) 3-5V nagyságrendűre csökkenjen vissza - erre írtam a 100K / 33-47K párosokat példának. Áramot is lehetne számolgatni, doksiból turkálni, de ökölszabálynak szerintem jó az hogy 10-100K nagyságrenden maradva jól fog működni... Ennél aprólékosabban akkor érdemes vele foglalkozni, ha pl gombelemről kellene évekig elműködnie a kapcsolásnak
-
fpeter84
senior tag
válasz Teasüti #2784 üzenetére
AREF: csökkenteni lehet vele az analóg mérés tartományát, ezáltal növelni a pontosságot. Alapból a 10bit, 1024 lépcsős felbontás kb 5mV-os felbontást ad, de ha mondjuk csak pár száz mV-ot szeretnél vele mérni akkor egy külső referenciával (akár feszosztó is lehet) beállítod 0.5V-ra az AREF-et, és 0.5mV-os felbontással számolhatsz... Okosabb típusoknál lehet akár külön AREF+ és AREF-, amivel még szűkebb tartományt is ki lehet jelölni a tápfesz és föld között tetszőlegesen...
A változók biztosan a RAM-ba, de már egy tök üres program is bekajál 9 byte-ot - ne kérdezd hogy mit tesz oda a fordító... De játszhatsz vele, és nézd hogy fordítás után milyen statisztikát ír rá az IDE... Valószínűleg van itt ott optimalizálási hibákból adódó pazarlás is, pl: ugye az alaphelyzet 9 byte használt
char x;
void setup() {
x = 1;
}
void loop() {
}ez 10 byte-ot eszik, de ha annak az x-nek ugyanezt az értéket már inicializáláskor is megadom, akkor meg 11 byte-ot ír, pedig elméletben ugyanarról változóról beszélünk - erre tud itt valaki magyarázatot adni?
char x = 1;
void setup() {
x = 1;
}
void loop() {
}A konstansok pedig elméletben a flash-be kerülnek, de most ahogy próbálgatom, 1 byte-al se nő ettől a program mérete...
const char y = 10;
char x = 1;
void setup() {
x = 1;
}
void loop() {
x = y;
} -
fpeter84
senior tag
válasz Teasüti #2789 üzenetére
Az EEPROM használata irtó egyszerű: [link]
Azért arra figyelni kell vele kapcsolatban, hogy ~100e írási ciklust emleget a doksi - ez elég soknak tűnik első körben, de ha valaki mondjuk másodpercenként ír 1 adott byte-ot, akkor bő 1 nap üzemmel ki lehet végezni - tehát ezt elsősorban a ki/bekapcsoláskor, dinamikus paraméterváltoztatáskor illik írni, de nem állandó loggolásra használni pl...
-
fpeter84
senior tag
-
-
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 ]
-
happy555
aktív tag
-
fpeter84
senior tag
válasz Teasüti #2852 üzenetére
Azért a tápot ugye nem I/O lábról adod a LED-nek, hanem az 5V feliratúról? Az összes kimenet limite az belső, az az I/O lábakra vonatkozik csak mint current sink/source, az 5V láb az más tészta
Ha csak az USB portról kapja a tápot, akkor annak az elméleti maximuma 500mA - vannak portok amelyek jóval kevesebbtől is kifekszenek, letiltanak, vannak amelyek a dupláját is ki tudják engedni magukon. Ez átmegy az F1 polyfuse "öngyógyuló" biztosítékon ami viszont szintén csak 0.5A, tehát ha a port többet is tudna, ez a biztosíték idővel akkor is leold - lehet pont ez történik, nagyon a határán billeg és épp csak villanásokra szaggat még amit a fedélzeti elkó kondik valamennyire még kisimítanak de anomáliákat okoz...
Alternatív tápolása, ha a DC csatiba beledugsz valami 1-2A terhelhetőségű 9-15V egyenáramú tápot. Ekkor a T1 P-csatornás MOSFET nyit, az USB 5V-ja leválasztódik, és az U1 NCP1117ST50 LDO adja az 5V ágra a kakaót, ami papíron 1A terhelhetőségű - ezt csökkentheti a magas VIN tápfesz, vagy az esetleges elégtelen hűtés miatti túlmelegedés.
Mindenesetre dugj rá külső tápot, akkor jóval nagyobb lesz a terhelhetősége. Hosszú távon, ennél több LED-hez viszont érdemes lesz egy pár A-es 5V-os tápot is beújítanod
-
fpeter84
senior tag
válasz Teasüti #2874 üzenetére
Az elhasznált töltések mennyisége valóban arányos, de a LED-ek az áramkorlátozásuknak megfelelő maximális áramot veszik fel impulzusokban! Tehát maximálisan a végsőkig feszítik az USB portból nyerhető, illetve a polyfuse által átereszthető áramot - a polyfuse mondjuk nem olyan nagyon gyors és precíz, tehát egy villanásnyi 0.51A nem fogja azonnal megszakítani, de ha kitartóan bombázod ezzel a határértékhez közel, akkor idővel elmelegedhet a belseje és szaggathat picit.
A 9V elem kevés lesz, hamar leszívja a LEDsor. Bármilyen 9-15V DC táp jó lesz hozzá, a legtöbb routerhez is ilyeneket osztogatnak de sok más műszaki cikk alól is ki lehet ilyesmit termelni, vagy boltban venni... Ha van egy asztali PC ATX tápod akkor abból is ki lehet nyerni a jól terhelhető 5/12V-ot...
-
fpeter84
senior tag
válasz Teasüti #2881 üzenetére
"USB breadboard" alatt nem tudom pontosan mit értesz - mindenesetre az ilyenek hasznosak, érdemes idővel felszerelkezni belőlük: 830p breadboard, tápmodul breadboardhoz, 12V/5A táp, 5.5 tápcsati Y splitter, 5.5 tápcsati bekötő stb stb
@ DrojDtroll
ismerős jelenség, párszor már én is belefutottam ilyenekbe hogy valamit jól elképzeltem előre, aztán a gyakorlatban rájöttem hogy de ott valami még plusszban kilóg, belóg, nem fére el úgy a csati ahogy elképzeltem, stb - eztért mostmár igyekszem minden előre beszerezni, lemérni, esetleg 3D studio-ban modellezni...
[ Szerkesztve ]
-
fpeter84
senior tag
válasz Teasüti #2885 üzenetére
Kékfog: előszöris, mekkora hatótávra? Van a class 1 aminek az elméleti hatóköre 100m - gyakorlati tapasztalat alapján egy jóféle BTM-22x akár 2-300m-re is elvisz jó rálátással és alacsonyabb baudrate-el (4800-9600) - természetesen a másik oldalnak is hasonlóan táposnak kell lennie ehhez. Vagy az átlagos class 2, ami papíron 10m-t ígér - ez is sokszor elvisz több 10m-re is, leginkább az antennákon és a zavaró körülményeken múlik. Ha az autó környékére kell, akkor valószínűleg elég lesz egy olcsó class 2 is, feltéve hogy mondjuk nem az első lökhárító fémje alá elrejtett modullal akarsz adni a hátsó lökhárító alá elrejtett másiknak
A másik kérdés, hogy elég e a slave eszköz, elég e ha csak a nevét, PIN-t és baud-ot tudod állítani, vagy kell a master/slave váltás, több állítgathatóság. Slave akkor, ha a géped/telefonod/tableted csatlakozik hozzá, master akkor ha két ilyen modul képes egymás között egy transzparens csatornát felépíteni - a slave a szerver, és ahhoz csatlakozik a master kliens...
itt van egy jó összefoglaló és howto az ebay-en népszerű HC-05 és HC-06 modulokról, hogy melyik mit tud és hogyan éleszthető. Valójában csak firmware különbség van köztük, megfelelő külső író hardverrel akár a butább is felokosítható, csak nem biztos hogy megér annyi küzdelmet
I2C: ez így elég tág fogalom. Hőmérő, barométer, gyorsulásérzékelő, gyroszkóp, GPIO expander - millió féle hardver van hozzá. A legtöbb népszerű, modul formájában elérhetőhöz általában van kész arduino library, de ha tudni szeretnéd hogy valójában mi történik a színfalak mögött, akkor lehet a saját írás/olvasással is küzdeni...
A WS2812 amúgy is elég lassúcska (400Hz rémlik?), szerintem nem lesz vele gond. Ha meg esetleg váltasz WS2802-re az meg úgyis a hardveres SPI buszra kerül, ami a nagy tempó mellett (20-40MHz?) elég sokat levesz a hardver válláról, úgyhogy úgy is működhet. Ha mégis kevés, akkor ott a Due vagy valamelyik másik nagytesó. De arra hogy próbálgasd, tanulj, arra biztosan elég az Uno is...
-
fpeter84
senior tag
válasz Teasüti #2887 üzenetére
Ha az ABS jeladóból jövő frekvenciát szeretnéd mérni, akkor arra nem is annyira a mezei megszakítások és timerek szoftveres lekezelését érdemes használni, hanem az Input Capture témára érdemes rákeresned! Ez ugyanaz csak hardverből: futtatja a timert, és ha esemény van a lábon akkor lemásolja a timer regisztereit és generál egy megszakítást > precízebb mérést ad, és ha valamelyik library letiltja a megszakításokat ideiglenesen akkor sincsen gond, legfeljebb majd a következő eseménynél kapod meg az eredményt, de nem lesz elszalasztott trigger mert a hardver addig is számolja...
MPU6050-el és sok mással küzdöttem már én is, jobbára kész lib-ekből indultam ki, a cél az egy 9DOF gyro és gyorsulásérzékelővel kompenzált iránytű lenne, de eddig nem találtam semmi valóban működőt - a borogatás, rázás előbb utóbb mindet megbolondította eddig sajnos, márpedig hajós környezetbe kellene ahol időnként kapná az áldást rendesen... Ettől függetlenül ha csak egyik másik érzékelő nyers értékeivel akarsz valamit számolgatni az működhet, csak erre az összetett, egymást kompenzáló 3x3 értékre nem találtam még kielégítő megoldást - pedig a telefonokban csak működik valahogy
Valóban, a WS2812 sem olyan lassú - annak a doksijában nem találtam ugyan a LED PWM órajelére utalást - de az adatokat picit zavarosan ugyan, de valóban valami 400-800kbps körüli ütemen várja, amit bitbang módon szoktak adni neki a lib-ek.
A WS2801 órajel+adat busza viszont teljesen megfelel az SPI hardver paraméterezhetőségének (max 25MHz-et ír a doksi, de úgy rémlik hogy RPi-s projektnél láttam 3xMHz-et is emlegetni), így meghajtható azzal is. Ha jól van megírva a lib - ami egyáltalán nem biztos - akkor amíg kiad a bufferből 1-1 byte-ot, addig a proci mással is tud foglalkozni. Bár a bitbang-et is elméletben meg lehetne oldani timerekkel és megszakításokkal nem blokkolósra, de tartok tőle ennyie nem foglalkoztak vele, így elég sok prociidőt elpazarolhat. De ugye ez is majd a gyakorlatban jól kiderül, hogy mit bír a vas...
Nekem is van egy hasonló félbemaradt projektem: a colorduino-t próbáltam másolni, csak nálam nem 8x8 hanem 2 modulból 16x8 RGB LED van. Idő híján erősen akadozik sok hasonló félkész projektem, de ha nagy lesz, valami ilyesmi lesz... Gondoltam én is arra is hogy akár WS2801/2812 LED sorral is meg lehetne oldani, de ezekből még nem vásároltam próbálgatásra...
[ Szerkesztve ]
-
fpeter84
senior tag
válasz Teasüti #2889 üzenetére
Azért van "6 tengely", mert ez egyszerre gyro + gyorsulásérzékelő. Természetesen ezek a 3 dimenziót írják le, csak a gyorsulásérzékelő a tengelyeivel párhuzamos elmozdulásokat mutatja ki, a gyro pedig a tengelyei menti elfordulás gyorsulását. Ha bekerül a képbe még egy digit iránytű is, akkor emlegetik 9DOF-nak, esetleg vannak még a 10DOF modulok ahol egy légnyomásmérő is van, amivel a tengerszint feletti magasságot lehet megállapítani. Az iránytű azért nem elegendő önmagában, mert elmozdulhat. Amíg tökéltesen vízszintesen nyugalomban van, addig elvileg elég lenne egyetlen, a függőleges tengelyéről leolvasott adat. Viszont ha megmozdítod, akkor tudnod kell hogy merre van a le/fel - erre használják a gyorsulásérzékelőt: a gravitációs lefelé mutató 1g megmondja merre van a lefelé. Viszont ez még szintén nem elég a teljes képhez, tudni kell azt is amikor éppen valamelyik tengelye körül fordul, erre van ugye a gyro. A végén elméletben a 9 nyers adatból ki lehet matekozni egy szöget, égtájat ami maga az iránytű már...
Input Capture: az Uno-n lévő Atmega328-on egyetlen ICP láb van csak, így legfeljebb mux útján lehetne több forrást mérni...
SPI: delay valami van, de azt inkább a szoftveres feldolgozásod fogja okozni, mint a buszrendszer késlekedése
I2C: vannak valamiféle elméleti korlátai, de gyakorlatban akárhány eszközt felfűzhetsz egyetlen drótra. Próbálgattam, és akár a csillagpont közepén lévő uC körül 30m-es UTP kábelek végén is simán tudtam olvasni 4-5 forrást hiba nélkül. Rövidebb vezetékkel max az I2C címek száma és maga az adatátviteli tempó limitál...
LED asztal: tömörítetlen wav-ot játszattam már le PIC PWM-jével SD kártyáról és egészen tűrhetően szólt - nyilván nem zenei minőség, de az emberi beszéd szép tiszta érthető volt, szóval akár ez se tűnik lehetetlennek, de bejövő hang feldolgozásával, elemzésével még sosem foglalkoztam. Elsősorban engem azok a videók fogtak meg, ahol egy kontrollerrel pl tetrist játszottak rajta
-
őstag
-
fpeter84
senior tag
válasz Teasüti #2899 üzenetére
A byte típusú változót kezelje ezalkalommal úgy mintha int lenne. Ez olyan esetekben praktikus, amikor pl egy egész számot akarsz osztani, és a végeredmény float lenne, pl x = (float)y/z - ekkor az y bár egész, de az x-be szép float fog kerülni, nem kerekítet szétvagdalt eredmény. Mi az, ami csak byte-ot kaphat? Lehet ott is működne ez a trükk csak fordítva: (byte)int - csak azt nem tudom, hogy mi van akkor ha az int változóban nagyobb érték van mint 255? Kékhalál arduino módra?
-
tvamos
nagyúr
válasz Teasüti #2909 üzenetére
Nem tudom, csak tippelek, de lehet, hogy itt a byte alapertelmezesben nem elojeles? (uint8_t)
probald igy: int buffer[...... bla-bla-bla...Megkockáztatom, hogy szar a fordító?
Szerintem ez nem szar benne, de ingyen van, ugyhogy akar szar is lehet, akar...Ezt meg simán visszaadja a helyes egészrésszel cast nélkül...
buffer2(i) = buffer2(i)*light/255
Ahol byte light < 255.(/I)
Lehet, de az is lehet, hogy csak te azt hiszed, hogy jo. a light-nak hogy adsz erteket?[ Szerkesztve ]
"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János
-
Teasüti
nagyúr
válasz Teasüti #2914 üzenetére
Oké, user error.
Eleinte rögtön a byte-ként deklarált pufferbe raktam vissza a képlet eredményét, majd debuggoláskor a Serial.print-ben a puffer maradt benne, nem pedig az int temp.
Szóval jól számol a progi, csak a negatív számot mikor visszarakta a pufferbe, ott ment el az egész és én csak a legvégét láttam a monitorban.
A cast is működik, sőt megcsinálja cast nélkül is az int = byte - byte kivonást negatív eredménnyel hibátlanul.Hát ez jó lecke volt.
Új hozzászólás Aktív témák
- Autós topik
- Mozilla Firefox
- HP notebook topic
- Azonnali VGA-s kérdések órája
- Azonnali informatikai kérdések órája
- A Gigabyte is visszaveszi alaplapjainak alapértelmezett tuningját
- Nintendo Switch
- A fociról könnyedén, egy baráti társaságban
- Milyen videókártyát?
- TCL LCD és LED TV-k
- További aktív témák...
- LG NanoCell 55NANO766QA Halvány píxel csík
- Philips 58PUS8545/12 1 ÉV GARANCIA Játék üzemmód
- Tyű-ha! HP EliteBook 850 G7 Fémházas Szuper Strapabíró Laptop 15,6" -65% i7-10610U 32/512 FHD HUN
- Bomba ár! HP EliteBook 840 G5 - i5-8G I 8GB I 128GB SSD I 14" FHD I HDMI I Cam I W10 I Gari!
- The Last of Us Part I Ps5