Kérdés:
Használjon minden csapot digitális I / O-ként
cocco
2015-08-21 16:36:00 UTC
view on stackexchange narkive permalink

Növelje a digitális csapok számát

Sok olyan bejegyzés található meg, amelyek elmagyarázzák, hogyan kell a szabványos csapok mellett többet használni a különféle arduinókon, de egyikük sem magyarázza a korlátokat a proplemek megfelelően.

enter image description here

Arduino Uno:

1. Használhatja az analóg csapok

  Pin 14 = Analog in 0Pin 15 = Analog in 1Pin 16 = Analog in 2Pin 17 = Analog in 3Pin 18 = Analog in 4Pin 19 = Analog in 5digitalWrite (14, HIGH); ordigitalWrite (A0, HIGH);  

2.Nem használhatja az SDA, az SCL & A4, A5 elemeket, mivel alapvetően megegyeznek (18,19 ).

3. Használhatja a TX / RX-t is.

"Ne csináld, megszakad a soros kommunikáció ..."

"Soha ne használd a 0 és 1 csapokat"

"te nem használhatom a TX / Rx csapokat "

Használhatja ... de óvintézkedéseket kell tennie. Melyiket?

USB-s soros szoftverrel kell rendelkeznie, igaz?

Vagy megszakítom az USB sorozatot?

Vannak belső chip problémák, ha TX / RX-t használok?

Mivel ezeket a TX / RX tűket használom a azt a kódot, amelyet valószínűleg nem szabad használni: Serial.print()?

Mi történik, ha a kód feltöltése után elfelejtem eltávolítani a hogy használja a 0,1-es csapokat?

Hogyan állítsuk vissza hardveresen az arduino / bootloadert, ha valami nem stimmel?

Mivel számos más Arduino létezik, amelyek különböző chipeket használnak, a fentiek érvényesek az összes Atmel chipre?

Tehát, mit tudok, mielőtt használnám ezeket a TX / RX vagy esetleg a többi analóg csap?

Vannak olcsó váltók, pwm meghajtók, led meghajtók, spi, i2c és még sok más, hogy bővítsék az I / O-t


De ha nincsenek nagy problémák, az azt jelenti, hogy az arduinónak 20 I / O csapja van ...

Elméletileg irányíthatnád:

  17x3 = 51 = 17 RGB led (multiplexelés, pwm beszerzés&sinking); 14x6 = 84 led (multiplexelés, pwm 6 soron / oszlopon);
10x10 = 100 led (multiplexelés, magas alacsony); 20x (20-1) = 380 led (charlieplexing, magas alacsony); // igen, villogna  

Javítson ki, ha vagyok rossz. Ez azt jelenti, hogy diódák és egy arduino segítségével vezérelheti a 380 "Bármi" -et.

Három válaszokat:
Majenko
2015-08-21 19:33:27 UTC
view on stackexchange narkive permalink

A fő probléma a 0-as és az 1-es csapokkal van.

Sok csapnak több funkciója van hozzárendelve, például az A4 és az A5 is az I2C csap, a 10/11/12/13 tűk is az SPI csapok stb. De a 0 és 1 csapok az egyetlen olyan többfunkciós csapok, amelyekhez valójában valami kapcsolódik a táblán.

Az összes többi tüskének ugyan sokfunkciós funkciója van alapvetően az határozza meg, amit hozzájuk köt. Mivel a 0 és 1 csapok már a táblán vannak rögzítve az USB interfész chiphez, a felhasználási lehetőségek némileg korlátozottabbak.

  • Amint engedélyezi a vázlatban a Serialt ( Serial. begin () ) ezt a két csapot már nem lehet megbízhatóan használni a digitális IO-hoz.

Ez azt jelenti, hogy akár használhatja a hardver soros portját vagy a digitális IO-hoz használhatja a csapokat, de mindkettőt nem.

  • A 0. és 1. érintkezőhöz csatlakoztatott eszközök megzavarhatják a soros kapcsolatot

Ez magában foglalja a vázlatok feltöltését. Soros adatok érkeznek a számítógépről, miközben ugyanazokat a csapokat más, hozzájuk kapcsolódó dolgok befolyásolják. A leggyakoribb olyan dolgok, mint a GPS modulok, amelyek csatlakoznak ezekhez a csapokhoz, és folyamatosan soros adatokat küldenek. Ez a soros adat ütközik a számítógép soros adataival, és egyik sem érkezik jól.

  • Hogyan tölthet fel vázlatokat, ha a sorozatot zavarja a vázlata? Hogyan "állíthatja vissza" a táblát?

Nem. Nem a vázlata zavarja a sorozatot, hanem az, ami fizikailag kapcsolódik ahhoz a két IO csaphoz, amely zavar. Csak válassza le ezt a két csapot bármi csatlakozóról, és újra feltöltheti a vázlatokat. Sok pajzs most kezd egy kis kapcsolót elhelyezni rajtuk, hogy leválasszák ezeket a csapokat, így vázlatokat tölthet fel a pajzs kihúzása nélkül. Ugyanazt a trükköt használhatja más eszközökkel is, amelyekhez ezekhez a csapokhoz csatlakozik - adjon hozzá egy dupla pólusú, egy dobású vagy egy dupla pólusú, dupla dobást (és ne használjon egy pozíciót), hogy mindkét csapot könnyen el lehessen szigetelni a hardver, amikor arra szükség van.

  • Ez érinti az összes Arduino táblát?

Nem, csak azokat, amelyek USB-től Serial Bridge-ig terjedő chipet használnak - ez a dolog mint a közvetlen USB-csatlakozással rendelkező Uno, Due, Mega stb. alaplapok, a vázlatok feltöltéséhez nem használják a TX és RX tűket - a dedikált USB D + és D-tűket használják. Ez olyan tábla, mint a Leonardo, néhány kisebb (mini? Mikro? Elfelejtem melyik) tábla stb.

"Sok pajzs most kezd hozzáadni egy kis kapcsolót" cool. A Micro rendelkezik "USB - Serial Bridge chip" -nel? Ez azt jelenti, hogy a 0,1-es csapokat használhatom az uno-n, a mikro-n nem?
Használhatja azokat, amelyeken nincs USB-Serial Bridge. Az Uno-nak van egy, a Megának egy, a Mininek nincs, azonban a programozáshoz külsőleg kell csatlakoztatnia a TX / RX csapokhoz. Mindezek kint vannak. A Micro és a Leonardo nem rendelkezik ilyennel, így használhatja ezeket.
Amiről az @Nick Gammon beszél? Uno-nak és a többieknek, akiket leírtál, vannak olyan ellenállások, amelyek nem teszik lehetővé a 0-as és 1-es tű megfelelő használatát, de a Micro-nak nincs húzóellenállása, így a 0-as és 1-es csapok működnek megfelelően, és az usb is új vázlatok feltöltésére szolgál?
Nick egyszer téved ezen a ponton. Nincsenek húzóellenállások. Mi van egy pár kis inline ellenállás a problémák megelőzésére, ha a fő MCU és az USB chip is megpróbálja ugyanazt a vonalat egyidejűleg ellentétes szintekre vezetni. Az Uno vázlatán láthatja őket RN4A és RN4B néven.
Ha az USB chip megpróbálja meghajtani az RX-tűt (csatlakoztatva van az USB-port és megnyitja a soros kapcsolatot [vagy esetleg csak be van dugva, nem biztos]), akkor ez függetlenül befolyásolhatja az RX-tű feszültségét a vázlatodban csinálod, ezért nem biztos, hogy ezt a csapot olyan dolgokra használod, mint a charlieplexing.
szóval tudok charlieplex 380-at vagy váltani Uno-val, ha nem használok soros, i2c, spi-t. ha az usb-t nem sorosként használják. akkor ha új vázlatot akarok hozzáadni, akkor csak le kell húznom a cuccokat a 0 és 1 tűről. A másik oldalon a mikróval nem is kell kihúznom a 0,1-es csapokat, mivel azok nincsenek csatlakoztatva az usb-hez?
Ez majdnem helyes. Lehet, hogy 0 és 1 értéket használhat a charlieplexeléshez, de az USB chip * továbbra is zavarhatja a legnagyobb erőfeszítéseket. A különböző USB chipek különböző módon működnek, és attól függ, hogy milyen firmware van betöltve az USB chipre azokon, amelyek MCU-t használnak egy dedikált chip helyett, mint például az FT232 stb.
Még akkor is, ha az usb nincs csatlakoztatva, de csak vin-t vagy dedikált tápegységet használok? Miután beprogramoztam, külső tápegységet használok, az usb nincs csatlakoztatva. a vázlatok módosításához távolítsa el a pin0,1 dolgot
Ez nem olyan kérdés, amelyre egyszerű "igen" vagy "nem" válasz adható. Teljesen attól függ, * mit csinál az USB chip *, és ez attól függ, * mi az USB chip *, ami attól függ, * mi az alaplap, honnan vásárolta, ki tervezte és építette * stb. A legjobb feltételezzük a legrosszabbat, és ne használjuk ezeket a csapokat ilyen műveletekhez.
Nem világos ... vagy működnek, vagy nem ... ha valami igen, akkor ez a charlieplexing funkcióval működik, mivel az interferenciák alacsonyak ahhoz, hogy vizuális hatást gyakoroljanak a ledekre, míg a kapcsolók használata nem megfelelő sok rossz olvasmány. btw eredeti Arduinókról beszélek .. Uno rev 3 és microalso legújabb ... az "igazi" arduinókról. Talán azt jelenti, hogy a chip firmware is változik, és így véletlenszerű adatokat írhat ezekre a csapokra? mint mondtam az usb nincs csatlakoztatva programozás után. van-e valamilyen hurkja a chipnek azon a csapon, hogy ellenőrizze, hogy csatlakozik-e vagy sem?
mi történik, ha 2 ledet fordítottan (ellenállásokkal) teszek a 0 és 1 csapra, 0 tűt állítok 1 magasra 1 alacsony késleltetés 1 másodpercre, és 0 tűt állítok alacsonyra és 1 tűt 1 késleltetésre? ugyanazt a kérdést tettem fel Nicknek.
Folytassuk [folytassuk ezt a beszélgetést a csevegésben] (http://chat.stackexchange.com/rooms/27266/discussion-between-cocco-and-majenko).
Kibróbáltad? Nem fog kárt okozni azzal, hogy elindul. Igen, a firmware idővel megváltozhat (és valószínűleg változni is fog).
megpróbálom később közzétenni a frissítéseket .. remélem, hogy az arduinóim nem fognak felrobbanni. AAAA És hogy később más vázlatokkal is be tudom programozni ...
Az Arduino Uno-on tesztelve 2 fordított LED a 0,1-es csapon megfelelően villog, nincs látható interferencia, még akkor sem, ha pc-ről USB-vel tápláljuk. a vázlatok általában a csatlakoztatott ledek mellett is betöltődnek. Valójában a tx rx valószínűleg pontosan úgy van bekötve, mint a teszt, amint azt a tx rx kommunikáció be- és kimenetén láthatja ... tehát ha uno-on működik ... az arduino micro-nak teljesen nem kellene lennie probléma.
Petrus
2017-02-17 16:59:18 UTC
view on stackexchange narkive permalink

Nem tudok megjegyzést adni az elégtelen hírnév miatt, de szeretném felhívni a figyelmet arra, hogy az OP pinout-nak legalább egy tűje hibás!

PB6 legyen PB5

Elég sok időt töltöttem azzal, hogy rájöjjek, miért nem láthatom az SCK-t a hatókörön (SPI busz). Alacsony szinten dolgoztam, nem az IDE-vel.

Mivel ez az első kép, amely a guglizás során megjelenik, el akartam kerülni ugyanezt a bajt másokkal ...

Nick Gammon
2015-08-22 02:58:23 UTC
view on stackexchange narkive permalink

20x (20-1) = 380 led (charlieplexing, magas alacsony); Javíts ki, ha tévedek. Ez azt jelenti, hogy diódák és egy Arduino segítségével vezérelheted a 380 "Bármit" -et.

Először is, a 380-as érték helyes 20 csapnál (20 2 - 20) azonban a 0 és 1 érintkezõk az Atmega16U2 húzóellenállásaihoz vannak csatlakoztatva, így soha nem állnak 0 V feszültségen. Ha üres vázlatot tölt be, akkor 5 V-ot mér a 0 és 1 érintkezőkön.

Másodszor, nem vezethet 380 "mi", 380 LED t vezethet a Charlieplexing segítségével . A LED tulajdonsága, hogy az áram csak egy irányban folyik rajta keresztül, fontos a működése szempontjából.

Kapcsolódó kérdés Van-e mód arra, hogy 14-nél több kimeneti tű legyen az arduino-n?

Először: mi történik, ha 2 ledet fordítottan (ellenállásokkal) teszek a 0 és 1 csapra, a 0 tűt magasra 1 az alacsony késleltetés 1 másodpercre állítom, a 0 tűt pedig alacsonyra és az 1-es tűt 1 késleltetésre állítom?
Másodszor: a "mi" alatt a kapcsolókat értem ... kattintson a kapcsolókra, a nádkapcsolókra, az érzékelőkre vagy a bemeneti kimenetek minden típusú kombinációjára, amelyek támogatják a magas alacsony szintet. archívum / electronicdesign.com / files / 29/18652 / fig_02.jpg diódákkal.
Nos, nem igazán. A charlieplexing a multiplexelés egyik formája, így hacsak nem akarja, hogy a kapcsolói őrülten kattogjanak, ez nem igazán fog működni náluk. És ez egy kimeneti helyzet, így nem fogsz bemeneteket végezni, mint amilyennek látszik. Azt javaslom, olvassa el a többi linket. A műszakregiszterek vagy a portbővítők praktikusabbak, mint itt a Charlieplexing.


Ezt a kérdést és választ automatikusan lefordították angol nyelvről.Az eredeti tartalom elérhető a stackexchange oldalon, amelyet köszönünk az cc by-sa 3.0 licencért, amely alatt terjesztik.
Loading...