Hirdetés

2024. április 28., vasárnap

Gyorskeresés

Téma összefoglaló

Téma összefoglaló

  • Utoljára frissítve: 2023-03-11 00:46:52

LOGOUT.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.

Összefoglaló kinyitása ▼

Hozzászólások

(#2751) tvamos válasza DrojDtroll (#2748) üzenetére


tvamos
nagyúr

Ha egy csatornán kezeled a felfutó éleket, akkor 400Hz. Ha mindkettőn mindkét élet, akkor 1600Hz. Én nem hiszem, hogy ez gond lehet. Megszakításból csinálnám...

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2752) DrojDtroll válasza tvamos (#2751) üzenetére


DrojDtroll
addikt

Rendben van köszi.

Amikor érték változás van akkor megszakítás, és egy globális változó írására gondolsz?

(#2753) Janos250 válasza Teasüti (#2733) üzenetére


Janos250
őstag

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.

(#2754) Teasüti válasza Janos250 (#2753) üzenetére


Teasüti
nagyúr

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 ]

(#2755) Gergosz2 válasza DrojDtroll (#2752) üzenetére


Gergosz2
veterán

Én úgy csináltam. Ha jött egy megszakítás, akkor növeltem egy változót , loopban pedig X ms elteltével fordulatszámot számoltam belőle.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#2756) DrojDtroll válasza Gergosz2 (#2755) üzenetére


DrojDtroll
addikt

Szerencsére akkor nem olyan vészes. :R

(#2757) fpeter84 válasza Teasüti (#2754) üzenetére


fpeter84
senior tag

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 ]

(#2758) Teasüti válasza fpeter84 (#2757) üzenetére


Teasüti
nagyúr

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. :W

[ Szerkesztve ]

(#2759) fpeter84 válasza Teasüti (#2758) üzenetére


fpeter84
senior tag

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 ]

(#2760) távcsőves


távcsőves
senior tag

Üdv mindenkinek!

Kérdésem lenne. Arduino UNO ISP használható lenne Atmel Studio programmal pl ATtiny13a-hoz kód feltöltésre? Vagy, ha Atmel Studio-t szeretnék használni mindenképp vennem kell programozót? Ha igen, melyik az ami szükséges? (Ár nagyon fontos, abszolút hobby célok. Ezért is kezdenek érdekelni ezek az apróságok, mert pl Arduino Pro mini is overkill az én kis projektjeimhez.) Szintén ehhez kapcsolódik még egy kérdésem, Atmel Studio-ban készített kód kisebb méretű-e, mint az Arduino IDE-vel készített kód?

Elnézést, ha nem jó helyre írtam, de nem találtam kimondott Atmel fórumot. Válaszokat előre is köszönöm!

(#2761) távcsőves válasza távcsőves (#2760) üzenetére


távcsőves
senior tag

Elnézést nem láttam a fától az erdőt.. Szóval lehet. (Kicsit kevés kereső szót használtam.)

(#2762) Teasüti válasza fpeter84 (#2759) üzenetére


Teasüti
nagyúr

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. :D

Köszönöm! :R

[ Szerkesztve ]

(#2763) tvamos válasza Teasüti (#2762) üzenetére


tvamos
nagyúr

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

(#2764) Gergosz2 válasza tvamos (#2763) üzenetére


Gergosz2
veterán

Ne hallgass senkire! Próbáld ki, és meglátod.

Ilyenből szokott sokat tanulni az ember. Én is az mondom, hogy próbálgatni, próbálgatni, és előbb utóbb rájön az ember mi nem jó.

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#2765) fpeter84 válasza Teasüti (#2762) üzenetére


fpeter84
senior tag

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... :)) :W

(#2766) bacus válasza Teasüti (#2762) üzenetére


bacus
őstag

pedig ez sem bonyolultabb mint a tasker :D, 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. :D

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

(#2767) v2_rider


v2_rider
tag

Sziasztok.
Szeretnék némi infót. A terv az lenne, hogy egy 1-5V analóg jelet kiadó szenzor jelét kellen feldolgozni. Ez a jel viszonylag gyorsan változik, mondjuk 1000 hz-es. LCD kijelzőn szeretném az idő és amplitudó diagramot megjeleníteni. Milyen cuccokat lenne érdemes rendelni? Nyilván az analóg szenzor az adott, csak a döbbi cuccra lennék kíváncsi. Előre is köszi.

(#2768) Teasüti válasza Gergosz2 (#2764) üzenetére


Teasüti
nagyúr

Azután rendelhetek egy új Uno-t? ;]

(#2769) Teasüti válasza Gergosz2 (#2764) üzenetére


Teasüti
nagyúr

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? :R

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 ]

(#2770) Teasüti válasza bacus (#2766) üzenetére


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! :R

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. :)

(#2771) zka67 válasza Teasüti (#2770) üzenetére


zka67
őstag

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

(#2772) Teasüti válasza zka67 (#2771) üzenetére


Teasüti
nagyúr

Köszönöm, a lehúzó ellenállás így már világos. :R
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 ]

(#2773) soldi3r válasza Teasüti (#2772) üzenetére


soldi3r
veterán

Esetleg ezeket olvasd at.

E30 (oo=[][]=oo)

(#2774) tvamos válasza Teasüti (#2769) üzenetére


tvamos
nagyúr

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

(#2775) tvamos válasza v2_rider (#2767) üzenetére


tvamos
nagyúr

A kijelzésnek valós idejünek kell lennie? Az 1000 fps elég húzósnak tûnik. Logot is akarsz?

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2776) fpeter84 válasza v2_rider (#2767) üzenetére


fpeter84
senior tag

Mint tvamos kérdezte, fontos pont hogy realtime megjelenítést vagy bufferelést és utána tetszőleges megjelenítést szeretnél? Ha az utóbbi, akkor 1000Hz mintavételezés mellett milyen hosszan kellene felvenni? Ez se mindegy, mert ez a sebesség másodpercenként 2KB memóriát jelent 10-12 bites (tárolva akkor is 2 byte) ADC felbontás mellett... A Nano/Uno atmega328-nek 2, a Leonardo 32u4-nek 2.5, a mega2560-nak 8KB memóriája van "csak". A Due SAM3X8E ARM-ja más kategória, annak már 96KB RAM-ja van. Esetleg a PIC32-k között vannak még fél MB RAM-mal rendelkező típusok is...

(#2777) fpeter84 válasza Teasüti (#2769) üzenetére


fpeter84
senior tag

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 :W

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 :)

(#2778) gyapo11 válasza fpeter84 (#2777) üzenetére


gyapo11
őstag

Mivel a kérdésben a feszosztó egy analóg input bemenetre megy, a lebegésnek itt nincs értelme. 0-5 V között lebeghet. Vagyis nem az a baj, hogy lebeg, hanem az, hogy ha nincs ellenállás a föld felé, akkor 5 V fölé mehet a bemeneten a feszültség.
Mielőtt valaki élesben próbálgatná érdemes bevetni valamelyik áramkör szimulátort, olcsóbban megmutatja a dolgokat.

menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet

(#2779) tvamos válasza fpeter84 (#2777) üzenetére


tvamos
nagyúr

Nem kell... ha mondjuk veletlen generatort csinalsz... ;]

(#2778) gyapo11 válasza fpeter84 (#2777) üzenetére
Ott a vedodioda, majdcsak megvedi. :DDD

(#2776) fpeter84 válasza v2_rider (#2767) üzenetére
Nem tudom, hogy mit szeretsz azon a PIC-en, en inkabb egy Cortex M-et ajanlanek. Van Arduino is. Mondjuk a Teensy 3.2. Ha nem kell az Arduino, akkor ott vannak a STM32 Discovery board-ok. (En azt szeretem. Plane, ha ingyen kapom. :DD )

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2780) v2_rider válasza fpeter84 (#2776) üzenetére


v2_rider
tag

Az 1000hz-el csak hasra ütés szerűen mondtam valamit. Lehet, hogy csak 500hz lesz. Realtime kell mindenképp, de nem kellene hosszan pufferelni. 1, de max 2 sec szerintem. Igazából maga a projekt egy injektor szinkronizáló lenne. Ez annyiból áll, hogy van egy 1-5V-os analog vákuum mérő szenzor, az menne az analog bemenetre. Viszont ez a vákuum elég gyorsan változik. Ennek a változásnak a "görbéjét" szeretném megjeleníteni. Ha mondjuk 1500-as motor fordulatszámmal számolunk, akkor az másodpercenként 25-ször rajzol meg egy fel és lefutási görbét. Tehát akár 1 másodpercenként lehetne törölni a puffert nyugodtan.

(#2781) tvamos válasza v2_rider (#2780) üzenetére


tvamos
nagyúr

Pikoszkop! :DDD

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2782) Gergosz2 válasza v2_rider (#2780) üzenetére


Gergosz2
veterán

Lehet, hogy csak 500hz lesz

Realtime kell mindenképp, de nem kellene hosszan pufferelni.

akkor az másodpercenként 25-ször rajzol meg egy fel és lefutási görbét

Ezt a hármat így nem nagyon sikerült összeraknom. Most akkor mi kell? :D

Nokia 6030 Hardcore User // I Panic Restaurant by Taito

(#2783) Teasüti válasza fpeter84 (#2776) üzenetére


Teasüti
nagyúr

Épp ma filóztam rajta mi fér bele két kilóbájtba. A ram-ba gondolom csak a változók kerülnek, ugye? Tárolja az azonosítót is, vagy csak az értéket? Illetve a konstansok hova kerülnek, a ram-ba vagy rom-ba?
Hogy lehet kalkulálni tárhellyel és a memóriával?

(#2784) Teasüti


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!

(#2785) Teasüti válasza Teasüti (#2784) üzenetére


Teasüti
nagyúr

Mindegy... 5V a max.

(#2786) tvamos válasza Teasüti (#2784) üzenetére


tvamos
nagyúr

Ha az AREF pinre mondjuk 4.096V-ot kotsz, az lesz a maximum, nem az 5V.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2787) Teasüti válasza tvamos (#2786) üzenetére


Teasüti
nagyúr

Köszi!
Amúgy tényleg nem árt, ha összekötöm közvetlenül a portokat próbaképp?

(#2788) fpeter84 válasza Teasüti (#2784) üzenetére


fpeter84
senior tag

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;
}

(#2789) Teasüti válasza fpeter84 (#2788) üzenetére


Teasüti
nagyúr

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! :W

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! :R

[ Szerkesztve ]

(#2790) fpeter84 válasza Teasüti (#2789) üzenetére


fpeter84
senior tag

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...

(#2791) fpeter84 válasza tvamos (#2779) üzenetére


fpeter84
senior tag

Az olcsósága és itthoni könnyű beszerezhetősége és sok típus DIP tokozása szól a PIC-ek mellett, és az Arduino-k által használt procikhoz képest rengeteg opcionális periféria: belső opamp, komparátor, DAC, periheral pin select, belső drótozhatóság a modulok között, stb stb. A DIP tokozással könnyebb breadboard-ozni és a prototípus nyák gyártása (lézeres vasalós) is egyszerűbb feladat. Tudom hogy bizonyos cortex altípusoknak is vannak mindenféle hasznos extra perifériái, de sok smd láb, ha nyákon veszed akkor sokszorosába kerül ugyanaz és a minimális méretet is rendesen megdobja...

Most többek között egy olyan projekten dolgozok, hogy egy hajó trim lap hidraulikus munkahengereinek az induktív pozícióvisszajelzését valamint vezérlését szeretném megoldani. Az induktivitás kissé szélsőséges tartományokban mozog, bőven kilóg az átlagos L-meter projektekből, de azért csak sikerült jó kiindulási alapot találnom egy oszcillátor kapcsolásra, ami a 30-250 mH (nem uH!) tartományban is képes szépen rezgésbe jönni, és pár tized voltos 40-90KHz-es szinusz-szerű jel jön ki belőle. Ha ezt egy mezei arduino uno/nano-val szeretném feldolgozni, akkor az 1 tranzisztorból és pár passzív alkatrészből álló LC körhöz kell először egy komparátor, majd mivel a 90KHz apró elmozdulásaihoz a uC InputCapture-je nem elég ezért kell hozzá egy bináris osztó (74HC590), és mindez 2 csatornára minimum 3 nagyobb csipp plussz a körítésük, és még ez után jön a nano. Ha csak monitorozni szeretném, akkor mindez egyetlen 8 lábú PIC12F1840-essel megoldható, mert a belső komparátor muxolható a lábak között, a komparátornak belülről lehet a programozható DAC-ból negatív referenciát adni, a kimenetét belül át lehet kötni a számlálóba ami képes hardveres osztásra így már lehet vele precízen mérni is, 2 lábra mehet egy kvarc hogy minimalizáljuk a hőfüggőségét, és még marad 2 láb a soros kommunikációnak. Ha ez kevés, akkor a köv fokozat a 14 lábú PIC16F18323 ami még mindig nagyon apró nyákot jelent de sok plussz lábat ad a szivattyú és szelepek vezérlésére is...

Mindennek megvan a maga felhasználási területe... A baltával fát vágunk, a vésővel faragunk - bár lehetne fordítva is, de nem ideális :)

[ Szerkesztve ]

(#2792) tvamos válasza fpeter84 (#2791) üzenetére


tvamos
nagyúr

Nem győztél meg. Én inkább ajánlok egy STM32-t annak, aki nem ragaszkodik az Arduino frameworkhöz. Az ebay-en is van egy rakat Cortex M3 alapú panel.
Ebay-ről gombokért van dip konverter.
Azt nem tudom, hogy te mit, honnan szerzel be. Én azt tapasztaltam, ha nem tudok elsétálni a cuccért, mindegy, hogy a szomszéd faluból, vagy az EU-ból akárhonnan jön a cumó.

Induktivitás mérésre én a Texas új Induktivitás / digitális konvertert próbáltam tavaly, azt nagyon egyszerű használni. Az MSP430-at is imádom.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2793) fpeter84 válasza tvamos (#2792) üzenetére


fpeter84
senior tag

A DIP<>SMD konverter nagy, minek tennék egy 2.5x5cm-es pacát oda ahová elég egy 8-14 lábú apróság is? Mondom, van cél amire a balta jobb és van amire a véső :)

Nyilván a Texas féle LDC1000-re gondolsz - ugyan papíron létezik TSSOP tokozásban ami szintén elég szerencsétlen már, de normális forrást nem találtam ilyen tokozással csak a házilag gyakorlatilag kezelhetetlen WSON meg QFN-el, ezért kerestem saját megoldást rá... Ha csak 1-2-t szeretnék megépíteni akkor nyilván lehetne ügyeskedni és free sample-t kérni, de utánpótlás már nem lesz így belőle és az ilyen játékot sem szeretem mert előbb utóbb tényleg letiltják az országot a free sample lehetőségéről és akkor már azt se kapja meg az ember ami tényleg indokolt...

[ Szerkesztve ]

(#2794) tvamos válasza fpeter84 (#2793) üzenetére


tvamos
nagyúr

Nem ertem mi bajod a TSSOP-vel... de az tuti, hogy nem csak papiron letezik, mert most is itt van az asztalomon.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2795) fpeter84 válasza tvamos (#2794) üzenetére


fpeter84
senior tag

Nagy alkatrész áruházakban / ebayen / aliexpressen nem találtam értelmes áron, csak kész devboard-okat. Te találtál valahol, vagy free sample formájában jutottál hozzá? A TSSOP-vel az a bajom hogy házilag gyártott nyáknál addig a vezeték szélességig már nagyon problémás lemenni, valamint ha nincsen forrasztásgátló lakk akkor forrasztani is nehéz mert mindenhová bemászik az átok ón/forrasztópaszta és nehéz kivadászni. SOIC és TQFP már nem gond, de az alá nem szívesen megyek, csak minőségi gyártatott nyákkal...

(#2796) tvamos válasza tvamos (#2794) üzenetére


tvamos
nagyúr

Na, ezt osszekavartam. LDC1000 nem csak papiron leteszik.

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

(#2797) Janos250 válasza fpeter84 (#2791) üzenetére


Janos250
őstag

Sokáig a PIC-eket használtam, de ma inkább az Arduinot használom.
A PIC kétségtelen előnye, hogy rengeteg féle típus van, rengeteg periféria készlettel. A DIP tokozás előnye a próbapanelok könnyű alkalmazhatósága.
További előnye, hogy a cég által gyártott programok és leírások koherens egységet alkotnak. A fordítók elég jók, de - amikor utoljára használtam - a komolyabbak fizetősek voltak. Nagy sorozatú ipari célra, szerintem is mindenképpen előnyös.
Ezzel szemben az Arduino nyílt rendszer, rengeteg programot találsz rá ingyen, de bizony elég gyakran meg kell nézni a forráskódot, hogy biztonságosan használd. A koherencia álom. Még a beépített ledek címe sem állandó.
Előnye, hogy nagyon sok kész hardvert, kiegészítő panelt is lehet hozzá olcsón venni ebay-en. PIC-re ez nem áll.
Ha a kész panelen (Pl. UNO) bejátszod a programot, akár legyártott nyákba is ültethetsz ugyanolyan csipet, és működik. Előny, hogy minden láb ki van vezetve dugdosható csatlakozóra. Minden rajta van, a táp IC-től kezdve (ez persze gyengus) soros, vagy USB csatlakozásig.
Érdemes az UNO helyett más lapokat használni.
STM32F103C8T6-ARM-STM32-Minimum-System-Development-Board-Module-For-Arduino (850 Ft). Használom, tetszik:
Core: ARM 32 Cortex-M3 CPU. 72MHz work frequency. 64K flash memory, 20K SRAM. 2.0-3.6V power, I/O.
Nagyobb méretben 1400 Ft.
STM32 ARM Cortex-M3 Leaflabs Leaf Maple Mini Module for Arduino 1200Ft.
Ha WiFi is számításba jöhet, akkor ESP8266 (ESP12-E). "It's running at 80MHz 64KBytes of instruction RAM 96KBytes of data RAM 64KBytes boot ROM"
ESP12-E (670 Ft) Hozzá lapka 80 Ft Picike, és nagyszerű :-)
NodeMcu Lua ESP8266 CH340G ESP-12E Wireless WIFI Internet Development Board (1100 Ft)
Kiegészítő panel NodeMcu-hoz egy csomó csatlakozással (Pl. több GND csatlakozás) 1200Ft
OTA WeMos D1 CH340 WiFi Development Board ESP-12E ESP8266 For Arduino IDE (UNO "szerű" panelon) 2000 Ft
Ha több minden kell, pl nem csak ADC hanem DAC is:
STM32F103ZET6 144-PIN Core Development Board For Arduino 2500-5000 Ft.
(Ezt még nem próbáltam, úton van. 2600-ért vettem, de mások 4500 körül adják. Remélem tényleg be is jön)
MCU: STM32F103ZET6 (144pin) Core work at up to 72M frequency 512KB Flash and 64KB RAM

[ Szerkesztve ]

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#2798) Janos250 válasza tvamos (#2792) üzenetére


Janos250
őstag

"Én inkább ajánlok egy STM32-t annak, aki nem ragaszkodik az Arduino frameworkhöz"
Én meg annak is, aki ragaszkodik hozzá! :-)

Az amerikaiak $ milliókért fejlesztettek golyóstollat űrbéli használatra. Az oroszok ceruzát használnak. Én meg arduinot.

(#2799) zka67 válasza Janos250 (#2798) üzenetére


zka67
őstag

Szia, én is mindenkinek inkább az ARM vonalat ajánlanám, csak előnyei vannak neki az arduinohoz képest. És nem kicsik.

A legtöbb ARM proci 3.3V-ról működik, ahogy nagyon sok periféria is manapság, viszont a legtöbb lábuk 5V toleráns. Azaz magyarul szintillesztők nélkül lehet összekötni őket, szemben az arduinoval. (Az STM-nél figyelni kell, mert nem minden lába 5V toleráns, az NXP-nek viszont igen)

A sebességről meg ne is beszéljünk, lásd 8 bit vs. 32 bit, és 16MHz vs. 48-tól a csillagos égig.

A Keil fordítója meg olyan jó, hogy néha én is hanyatt esek tőle.

De ahhoz, hogy ARM procikat használjanak, el kellene szakadniuk az embereknek a delay használatától. A legtöbb gyártó minden procijához ad előre megírt könyvtárakat, külön-külön az összes, a prociban levő perifériájához, demóprogramokat, stb, stb... hogy amíg az emberek nem tanulják meg a perifériákat közvetlenül használni, addig se okozzon nekik gondot. (A közvetlenül alatt értem, hogy sok mindent jóval gyorsabban tud végrehajtani a proci, ha nem a könyvtár rutinokat használják, hanem direktben a perifériákat). Én nem vagyok híve annak, hogy megírunk egy programot úgy, hogy az bármelyik gyártó prociján fusson majd, és legfeljebb gyorsabb procit használunk. Úgysem fog, úgyis bele kell nyúlni a programba, akkor meg miért ne használjuk ki a lassabb proci képességeit maximálisan?

Az arduinoban is lehetne direktben használni ezeket a dolgokat, de itt még egyetlen egy hsz-ban se láttam ilyet. Még megszakítást sem, pedig az alapvető dolog a mikrokontrolleres világban.

Szóval amíg a delay a legfőbb utasítás, addig kár is próbálkozni az ARM vonallal...

Üdv.
Zoli

[ Szerkesztve ]

(#2800) tvamos válasza zka67 (#2799) üzenetére


tvamos
nagyúr

Az IAR is jo! Sot, neha meg jobb is.

Szóval amíg a delay a legfőbb utasítás, addig kár is próbálkozni az ARM vonallal...
Miert? A foprogram megy delay-el, minden masra, amit pontosan kel idoziteni, ott a megszakitas. Kulso, timer, stb. En is szokok ilyen programot irni, ahol kvazi delay-ben var a proci.

No mindegy is, nagyon kenyelmes a framework... de az IAR EWB + STM studo is nagyon faja! Imadom, hogy milyen jol lehet folyamatosan monitorozni a belso valtozokat. Meg ilyesmi... kar, hogy a melohelyen most a Freescale/NXP vonalat nyomjak.

[ Szerkesztve ]

"Mindig a rossz győz, és a jó elnyeri méltó büntetését." Voga János

Copyright © 2000-2024 PROHARDVER Informatikai Kft.