On mitmeid viise, kuidas saada rohkem sisendeid ja väljundeid, millel on erinevad tagajärjed. Ja see sõltub andurite tüübist ning teekidest või koodijuppidest, mida soovite kasutada.
Esimene asi, mida peate tegema, on loetleda soovitud andurid koos iga kasutatava liidese tüübiga. ; Ma kasutan arvutustabelit.
Näiteks võiks leegiandur kasutada ainult ühte digitaalset väljundit (minnes Arduino digitaalsisendisse), kusjuures lävi on moodulil seatud potiga. Või võib see väljastada analoogsignaali, mis läheb Arduino analoogsisendisse, võimaldades koodil tuvastada intensiivsust või määrata erinevaid künniseid ilma, et oleks vaja potti liigutada. Igal lähenemisel on erinevad tähendused.
Peale nende kahe (lihtne digitaalne ja analoog) on veel muid anduri ja ajami liideseid. Mõned annavad muutuva väärtuse (nagu analoog), kuid põhinevad impulsi ajastamisel digitaalsignaalil; nii töötavad kõige odavamad ultraheli kaugusmõõtjad. Muidugi on ka andureid, mis kasutavad standardseid (I2C või SPI) või patenteeritud (ühe juhtmega protokolli või DHT-xx temp & niiskuse andureid).
Samuti vajavad mõned väljundid PWM-i või muud signaali, kaugemale lihtsast sisse- ja väljalülitamisest.
Eriti lihtsaid digitaalseid sisendeid või väljundeid saab I2C pikendajate või nihkeregistritega üsna lihtsalt kasutada. Näiteks digitaalse väljundanduri kontrollimine või valguse sisselülitamine.
Täiendavaid analoogsisendeid saab teha analoog-multipleksimisega (nagu elektrooniline lüliti) või I2C või SPI abil väliste ADC-moodulite kaudu. / p>
Kui on vaja ajastust, on potentsiaalseid probleeme suurem. Sageli kasutaksite selliste asjadega toimetamiseks raamatukogu.
Raamatukogud. Enamik andurite ja ajamite teeke kirjutatakse Arduino otsese sisendi ja väljundi tihvtide kasutamiseks. Initsialiseerimise ajal võite küll anda PIN-koodi, kuid kui kasutate nihkeregistrit või laiendajat, pole kuidagi võimalik teegile öelda, kuidas kohandatud laiendit kasutada. Sellisel juhul peate meie oma koodi rullima ilma teeki kasutamata või tegema teegi muudetud versiooni, mis teeb teie riistvaralaienduse riistvara kaudu sisse / välja.
Spetsiaalsed tihvtifunktsioonid. Teine probleem on spetsiaalsed tihvtifunktsioonid; kui teek või koodilõik, mida soovite kasutada, loodab kasutada tihvti erifunktsiooni (nt tihvti katkestus või taimeri sisendi hõivamine), mis ei pruugi teie laienduse riistvarast saadaval olla või võib olla lisatöö. Näiteks võivad mõned laiendajad anda märku Arduino katkestusnõelast, kui mõni nende sisend muutub - kuid selle tabamiseks peate kirjutama oma katkestuse käitleja ja asendama otsese tihvti katkestuse funktsionaalsuse. p>
Ajastus. Ja kolmas probleem on see, et mõnikord on kitsast ajastust keeruline hallata laiendusriistvara kaudu.
Enamikku neist saab lahendada asjakohaste jõupingutustega, mõnikord lihtsalt ja vahel ka mitte. Vaadake oma andurite ja ajamite loendit; Selgitage välja, milliseid saab hõlpsamini laiendusriistvara külge kinnitada (näiteks vahetuste register) ja millised tuleks lihtsuse või jõudluse huvides otse Arduino külge kinnitada. Teil võib olla vedanud.
Soovitused
1) Kui saate hakkama kõigi väljamõeldud andurite või otsese tihvtiga täiturmehhanismidega ja katta kõik lihtsad nihkeregistritega või I2C pikenduskiibid, see on otstarbekas variant. Näiteks kui teie kood soovib aeg-ajalt kontrollida, kas leeki on tuvastatud (digitaalne versioon), või soovite mootorit sisse lülitada, pole otsese tihvtijuurdepääsu asemel vahetuste registri läbimine nii keeruline.
2) Kui lähete sellest kaugemale ja otsite tihvtid asjadest, mida on otse ühendades palju lihtsam käsitseda, soovitan minna Megale või Mega2560-le. Sellel on rohkem digitaalseid tihvte ja rohkem analoogsisendeid ning rohkem PWM-i väljundid. Enamik (ka mitte kõik) raamatukogud kohanevad lihtsalt PIN-koodide muutmisega. Väliste digitaalsete ja analoognõelte kasutamist on palju lihtsam kui raamatukogude ümberkirjutamisel.