Küsimus:
Kasutage kõiki tihvte digitaalse I / O-na
cocco
2015-08-21 16:36:00 UTC
view on stackexchange narkive permalink

Digitaalsete tihvtide arvu suurendamine

On palju postitusi, mis selgitavad, kuidas kasutada erinevatel arduinos rohkem kui ainult tavalisi tihvte, kuid ükski neist ei seleta piiranguid ja proplemid korralikult.

enter image description here

Arduino Uno:

1.Võite kasutada analoognõelad

  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. Te ei saa kasutada mõlemat SDA, SCL & A4, A5, kuna need on põhimõtteliselt samad (18,19 ).

3.Võite kasutada ka TX / RX-i.

"Ärge tehke seda, katkestate seeriaühenduse ..."

"Ärge kunagi kasutage nööpe 0 ja 1" ei saa TX / Rx tihvte kasutada "

Saate ... aga peate võtma ettevaatusabinõusid. Millised?

Sellel peaks olema tarkvara USB kaudu jada?

Või katkestan USB-seeria?

Kas TX / RX-i kasutamisel on sisemisi kiibiprobleeme?

Kuna kasutan neid TX / RX-nööpnõelasid kood, mida ma ilmselt ei peaks kasutama Serial.print()?

Mis juhtub, kui unustan pärast koodi üleslaadimist eemaldada Serial.print () mis kasutavad tihvte 0,1?

Kuidas arduino / bootloaderit riistvara lähtestada, kui midagi valesti läheb?

Kuna leidub veel mitmeid erinevaid kiipe kasutavaid Arduino'sid, siis kas ülaltoodu kehtib kõigi Atmeli kiipide kohta?

Niisiis, mida ma tean enne nende TX / RX-i kasutamist või võib-olla ka teised analoognööpnõelad?

Teie I / O laiendamiseks on olemas odavad vahetuskastid, pwm-draiverid, led-draiverid, spi, i2c ja muud ic


Kui aga suuri probleeme pole, tähendab see, et arduinol on 20 sisend- / väljundnõela ...

Teoreetiliselt saaksite kontrollida:

  17x3 = 51 = 17 RGB-led (multipleksimine, pwm hankimine &sinking); 14x6 = 84 led (multipleksimine, pwm 6 real / veerul);
10x10 = 100 LED-i (multipleksimine, kõrge madal); 20x (20-1) = 380 led-i (charlieplexing, kõrge madal); // jah, see väreleks  

Parandage mind, kui olen vale. See tähendab, et saate dioodide ja ühe arduino abil juhtida 380 "ükskõik mida".

Kolm vastused:
Majenko
2015-08-21 19:33:27 UTC
view on stackexchange narkive permalink

Põhiline probleem on tihvtides 0 ja 1.

Paljudel tihvtidel on neile määratud mitu funktsiooni, näiteks A4 ja A5 on ka I2C tihvtid, samuti on tihvtid 10/11/12/13 SPI-nööpnõelad jne. Kuid nööpnõelad 0 ja 1 on ainsad multifunktsionaalsed tihvtid, millel on tahvlil tegelikult midagi kinnitatud.

Kõigil teistel tihvtidel on oma funktsioon, olles samal ajal mitmefunktsioonilised määratletakse põhimõtteliselt sellega, mida neile kinnitate. Kuna nööpnõelad 0 ja 1 on juba tahvlil USB-liidese kiibi külge kinnitatud, on nende kasutusvõimalused mõnevõrra piiratud.

  • Niipea kui lubate oma visandis ( Serial. begin () ) neid kahte tihvti ei saa enam digitaalse IO jaoks usaldusväärselt kasutada.

See tähendab, et saate kas kasutada riistvara jadaporti või võite kasutada digitaalse IO jaoks nööpnõelu, kuid mitte mõlemat.

  • Pistikutega 0 ja 1 ühendatud seadmed võivad jadaühendust häirida

See hõlmab visandite üleslaadimist. Teil on seeriaandmeid arvutist, samal ajal kui muud nendega seotud asjad mõjutavad samu tihvte. Kõige tavalisem on sellised asjad nagu GPS-moodulid, mis ühenduvad nende tihvtidega ja saadavad pidevalt jadaandmeid. Need seeriandmed lähevad vastuollu arvuti seeriandmetega ja kumbki ei jõua õigesti.

  • Kuidas visandeid üles laadida, kui teie visand segab jada? Kuidas tahvlit "lähtestada"?

Sa ei tee seda. Seeriat segab mitte teie visand, vaid see, mis on füüsiliselt ühendatud nende kahe IO tihvtiga, mis segavad. Lahutage lihtsalt need kaks tihvti kõigest, mis on ühendatud, ja saate sketše uuesti üles laadida. Paljud kilbid hakkavad nüüd nende tihvtide lahtiühendamiseks lisama neile väikese lüliti, et saaksite visandeid üles laadida ilma kilpi lahti ühendamata. Sama nippi saate kasutada ka teiste seadmetega, mille ühendate nende tihvtidega - lisage kahepooluseline ühe- või kahepooluseline-topeltvise (ja ärge kasutage ühte asendit), et mõlemad tihvtid hõlpsasti ülejäänud üksustest eraldada oma riistvara, kui vaja.

  • Kas see mõjutab kõiki Arduino plaate?

Ei, ainult need, kes kasutavad USB to Serial Bridge kiipi - see on asi nagu Uno, Due, Mega jne. Plaadid, millel on otsene USB-ühendus, ei kasuta visandite üleslaadimiseks TX- ja RX-kontakte - nad kasutavad selleks spetsiaalseid USB D + ja D- tihvte. See on sellised lauad nagu Leonardo, mõned väiksemad (mini? Mikro? Ma unustan millised) lauad jne.

"Paljud kilbid hakkavad nüüd väikest lülitit lisama" lahe. Mikrol on "USB to Serial Bridge chip"? Kas see tähendab, et saan 0,1-nööpnõelad kasutada uno-l, kuid mitte mikrol?
Saate neid kasutada kõigil, millel puudub USB to Serial Bridge. Unol on üks, Megal on üks, Minil pole, kuid selle programmeerimiseks peate selle siiski väliselt TX / RX-tihvtidega ühendama. Kõik need on väljas. Mikrol ja Leonardol pole seda, nii et saate neid kasutada.
Millest @Nick Gammon räägib? Unol ja teistel, kelle üles kirjutasite, on tõmbetakistid, mis ei võimalda teil korralikult kasutada tihvte 0 ja 1, kuid mikrol pole tõmbejõutakisti ja nii töötavad tihvtid 0 ja 1 korralikult ning ka USB laadib uusi visandeid üles?
Ükskord eksis Nick selles küsimuses. Puudumistakisteid pole. Mis seal on, on paar väikest sisetakisti, et vältida probleeme, kui mõlemad peamised MCU ja USB-kiip proovivad sama joont samal ajal vastandtasanditele juhtida. Näete neid Uno skeemil RN4A ja RN4B.
Kui USB-kiip proovib juhtida RX-tihvti (USB-pesa on ühendatud ja avate jadaliitmiku [või võib-olla on see lihtsalt ühendatud, pole kindel]), võib see mõjutada RX-tihvti pinget sõltumata sellest teete oma sketšis, nii et võib-olla pole ohutu seda tihvti kasutada näiteks charlieplexi jaoks.
nii et ma saan charlieplex 380-d või Unoga vahetada, kui ma ei kasuta seeriat, i2c, spi. kui usb-d ei kasutata jadana. siis, kui ma tahan uut visandit lisada, pean lihtsalt kraami pistikupesast 0 ja 1. Eemaldage mikroga teisel küljel isegi tihvtid 0,1, kuna need pole USB-ga ühendatud?
See on peaaegu õige. Võib-olla saate * kasutada charlieplexi jaoks 0 ja 1, kuid USB-kiip * võib teie parimatest pingutustest hoolimata siiski sekkuda. Erinevad USB-kiibid töötavad erineval viisil ja see sõltub sellest, milline püsivara on USB-kiibile laaditud neile, kes kasutavad MCU-d spetsiaalse kiibi nagu FT232 jms asemel.
Isegi kui USB pole ühendatud, kuid ma kasutan ainult vin'i või spetsiaalset toiteallikat? Pärast programmeerimist kasutan välist toiteallikat, USB pole ühendatud. visandite muutmiseks eemaldage pin0,1 stuff
See ei ole küsimus, millele saab vastata lihtsa jah või ei. See sõltub täielikult * sellest, mida USB-kiip teeb * ja see sõltub * sellest, mis on USB-kiip *, mis sõltub * sellest, milline plaat on, kust te selle ostsite, kes selle kujundas ja ehitas * jne. Parim on eeldada halvimat ja mitte kasutada neid tihvte seda tüüpi toiminguteks.
See on ebaselge ... või nad töötavad või mitte ... kui see on midagi jah, siis töötab see charlieplexingiga, kuna häired on madalad, et LED-idele visuaalset mõju avaldada, samas kui lülitite kasutamisel ei pääse palju halbu lugemisi. btw räägin originaalsetest Arduinodest .. Uno rev 3 ja microalso latest ... "päris" arduinos. Võib-olla tähendab see, et ka kiibi püsivara muutub ja nii võiks see nendele tihvtidele kirjutada juhuslikke andmeid? nagu ma ütlesin, et USB pole pärast programmeerimist ühendatud. kas kiibil on mingi tihvt nende tihvti peal, et kontrollida, kas see on ühendatud või mis iganes?
mis juhtub, kui panen tihvtidele 0 ja 1 2 tagurpidi (takistitega) ledi, panen tihvti 0 kõrge tihvt 1 madala viivitusega 1 sekundi ja seadistan tihvti 0 madalale ja tihvti 1 kõrge viivitus 1 sekund? küsisin sama küsimuse Nickilt.
Jätkame [jätkame seda arutelu vestluses] (http://chat.stackexchange.com/rooms/27266/discussion-between-cocco-and-majenko).
Kas olete proovinud? Teil pole kahju, kui teil on minna. Jah, püsivara võib (ja tõenäoliselt ka muutub) aja jooksul muutuda.
proovin, postitan värskendused hiljem .. loodan, et mu arduinos ei plahvata.
Testitud Arduino Unol, 2 pööratud juhet tihvtil 0,1 vilguvad õigesti, pole nähtavaid häireid isegi siis, kui toiteallikaks on arvuti USB. visandid laadivad tavaliselt ka ühendatud pistikupesade korral. Tegelikult on tx rx juhtmestik täpselt sama test, nagu näete tx rx-i sise- ja väliskülge ... nii et kui see töötab uno ... ei tohiks arduino mikrol täielikult olla probleem.
Petrus
2017-02-17 16:59:18 UTC
view on stackexchange narkive permalink

Ma ei saa kommenteerida ebapiisava maine tõttu, kuid tahan juhtida tähelepanu sellele, et OP pinoutil on vähemalt üks tihvt vale!

PB6 peaks olema PB5

Veetsin üsna palju aega, et välja selgitada, miks ma ei näinud SCK-d ulatuses (SPI-buss). Töötasin madalal tasemel, mitte IDE-ga.

Kuna see on esimene pilt, mis guugeldades ilmub, tahtsin vältida sama häda teistele ...

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

20x (20-1) = 380 LED-i (charlieplexing, kõrge madal); Parandage mind, kui ma eksin. See tähendab, et saate dioodide ja ühe Arduino abil juhtida 380 "ükskõik mida".

Esiteks on joonis 380 20 kontakti jaoks õige (20 2 - 20) tihvtid 0 ja 1 on ühendatud Atmega16U2 tõmbetakistitega, nii et need ei ole kunagi 0 V pinges. Kui laadite tühja visandi, mõõdate tihvtidel 0 ja 1 5 V.

Teiseks, te ei saa juhtida 380 "mis iganes", saate juhtida 380 LED-i Charlieplexingu kaudu . Valgusdioodi omadus, et vool voolab läbi selle ainult ühes suunas, on selle toimimise seisukohalt oluline.

Seotud küsimus Kas arduinol on võimalus omada rohkem kui 14 väljundnõela?

Esiteks: mis juhtub, kui panen tihvtidele 0 ja 1 2 tagurpidi (takistitega) ledi, määran tihvti 0 kõrge tihvt 1 madala viivitusega 1 sekund ja seadistan tihvti 0 madalaks ja tihvti 1 kõrge viivitus 1 sekund?
Teiseks: "mis iganes" all mõtlen ma lüliteid ... klõpsulülitid, pillirooglülitid, andurid või igasugused sisendväljundite kombinatsioonid, mis toetavad kõrgeid madalaid tasemeid. Http: //electronicdesign.com/site-files/electronicdesign.com/files/ arhiiv / electronicdesign.com / files / 29/18652 / fig_02.jpg tehtud dioodidega.
Noh, tegelikult mitte. Charlieplexing on multipleksimise vorm, nii et kui te ei soovi, et teie lülitid hulluks klõpsaksid, ei tööta see nende jaoks tegelikult. Ja see on väljundsituatsioon, nii et te ei tee sisendeid, nagu arvate, et arvate. Soovitan teil lugeda teisi linke. Vahetusregistrid ehk pordi laiendajad on siin praktilisemad kui Charlieplexing.


See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...