Piny Arduino Uno – praktický sprievodca

arduino-uno

Ak začínate s Arduino, alebo ak už ste vývojárom softvéru a chcete sa dozvedieť viac o moste bridgemedzi softvérom a hardvérom na doske Arduino, ste na správnom mieste!

Tento príspevok je zameraný na dosku Arduino Uno, ale väčšina vysvetlení (okrem čísel kolíkov na doske s obvodmi) platí aj pre akúkoľvek inú dosku Arduino.

Napríklad :

Arduino Uno piny :

arduino-uno.piny

IOREF / RESET / 3,3V / 5V GND / VIN / A0 / A1 / A2 / A3 / A4 / A5 / AREF / GND / 13 / 12 / ~11 / ~10 / ~9 / 8 / 7 / ~6 / ~5 / 4 / ~3 / 2 / 1 / TXO→1 / RXO←0

Ak existuje jedna vec a iba jedna vec, ktorú by ste si mali pamätať so zemou a Arduinom, je to:

Že vždy spojte všetky uzemnenia vašich obvodov dohromady

a uistite sa, že všetky komponenty sú správne spojené so zemou. Uzemňovacie kolíky sú na schémach často reprezentované ako GND.

Zem je nevyhnutná pre dosku Arduino na meranie a nastavenie akéhokoľvek napätia. Napätie je v podstate rozdiel potenciálu medzi 2 bodmi: tu vezmete zem a ďalší bod. Ak je teda všetko vo vašom obvode pripojené k rovnakej zemi, všetky napätia je možné porovnať a ich hodnota je relevantná.

Je to ako meranie výškového rozdielu medzi 2 osobami: ak jedna z nich stojí na krabici, potom nie je referenčná zem rovnaká. A nemôžete získať hodnotné meranie, ak neumiestníte 2 osoby na rovnakú úroveň.

arduino-uno-napájacie-piny

Na napájanie dosky Arduino Uno máte rôzne možnosti. Prvým je jednoducho pripojiť dosku Arduino k počítaču pomocou kábla USB. Môžete tiež použiť DC napájací konektor na napájanie vašej dosky Arduino 7-12V. Ak používate nejaké hobby servomotory poháňané vaším Arduinom, možno budete chcieť použiť DC napájací konektor.

Napájanie z USB kábla je nižšie. Je to skvelé pre komunikáciu medzi vašou doskou a počítačom (alebo inými doskami Arduino), ale nebude to stačiť na napájanie motorov.

krokový-motor-arduino

Takže už máte 2 spôsoby, ako napájať dosku Arduino Uno. Ak sa teraz pozriete na napájacie kolíky na okruhu, uvidíte Pin Vin. Tento Pin môžete použiť na dodanie 7-12V na vašu dosku. Veľmi praktické, keď potrebujete použiť externý zdroj energie a pripojiť ho priamo k vašej doske. A ako môžete hádať, ak používate Vin, musíte tiež správne použiť uzemnenie, a to tak, že ho pripojíte k zemi externého zdroja energie.

arduino-uno-digitálne-piny

Na doske Arduino Uno nájdete 14 digitálnych pinov. Sú ľahko rozpoznateľné, od 0 do 13 na doske plošných spojov.

Digitálne kolíky budete používať na čítanie údajov z niektorých komponentov (senzorov) a zapisovanie údajov do iných komponentov (aktorov). Digitálny kolík môže mať iba 2 stavy:

  • NÍZKY (LOW)
  • VYSOKÝ (HIGH)

Môžete ich považovať za binárne kolíky. LOW znamená, že napätie na pine je 0V. HIGH znamená Vcc, čo je 5V pre Arduino Uno.

  • V režime INPUT ho budete používať na čítanie údajov.
  • V režime OUTPUT ho budete používať na zapisovanie údajov.

Po nastavení režimu pre pin – zvyčajne vo funkcii setup() vášho programu Arduino pomocou pinMode() – budete môcť čítať alebo zapisovať stav pinu vďaka digitalRead()/digitalWrite(). Ak ste nastavili pin do režimu INPUT, môžete si prečítať jeho stav, ktorý bude buď HIGH alebo LOW.

Pri čítaní bude akékoľvek napätie privedené na kolík nižšie ako 0,8 V považované za NÍZKE a každé napätie vyššie ako 2 V bude považované za VYSOKÉ. Preto znova zdôrazňujem, že by ste mali správne spojiť všetky uzemnenia vo vašom obvode, inak Arduino Uno nebude môcť prečítať cenné informácie! Ak nezískate spoľahlivé a stabilné údaje, vždy najprv skontrolujte ZEM, je veľmi pravdepodobné, že problém pochádza odtiaľ.

Niektoré z digitálnych pinov možno použiť na zápis PWM.

Na doske označené znamienkom ( ~ ) pred číslom.

  • 3 5 6 9 10 11

PWM je v podstate spôsob, ako získať špecifické napätie (napr.: 4,1 V) iba so stavmi HIGH/LOW (5V/0V). PWM vytvára impulz bežiaci na danej frekvencii – 500 Hz pre Arduino Uno. Potom parameter pracovného cyklu povie, aké percento každého impulzu je v stave HIGH alebo LOW.

arduino-pwm-cyklus

Častá zmena stavov HIGH/LOW vytvára priemerný výstup napätia. Napríklad pri 50 % pracovnom cykle (50 % času VYSOKÁ, 50 % času NÍZKA) by výstupné napätie bolo 2,5 V. Samozrejme, toto vysvetlenie je skutočne zjednodušené, ale to je všetko, čo potrebujete vedieť, aby ste mohli začať s Arduino PWM.

PWM môžete iba na niektorých digitálnych kolíkoch, ktoré majú vedľa čísla „~“. Piny Arduino Uno kompatibilné s PWM sú piny 3, 5, 6, 9, 10 a 11.

Takže máte 6 pinov, kde môžete vytvoriť PWM pomocou funkcie analogWrite(). To môže byť celkom užitočné pri ovládaní niektorých akčných členov, ktoré vyžadujú jemné ladenie napätia a nie sú len zapnuté alebo vypnuté. Ak si vezmeme príklad LED, môžete použiť funkciu analogWrite() na úpravu jasu LED.

Existuje ale aj ďalšia dostupná funkcia pre digitálne Piny! Pre Arduino Uno je výber týchto Pinov dosť obmedzený. Ako prerušovacie Piny možno použiť iba digitálne Piny 2 a ~3.

arduino-uno-prerušovacie-piny

Ako to funguje?

Keď vytvoríte program Arduino, musíte vedieť, že váš kód beží riadok po riadku bez možného multithreadingu. Povedzme, že pripojíte tlačidlo k prerušovaciemu kolíku (a k zemi!). Vo svojom programe Arduino môžete pripojiť špecifickú funkciu, ktorá sa spustí pri každom stlačení tlačidla. Takže namiesto neustáleho čítania stavu tlačidla môžete na spustenie funkcie priamo použiť správanie prerušenia.

Predstavte si to ako upozornenie push, rovnako ako v telefóne. Povie vám, keď je k dispozícii nový obsah alebo konkrétna akcia, ktorú treba urobiť. Zistite, ako používať prerušenia Arduino vo svojom kóde.

To však neznamená, že ste vyriešili problém s viacerými vláknami. smile- Keď sa vykonávanie programu prepne na vašu funkciu vyvolanú prerušením, zastaví aj vykonávanie aktuálneho programu a vráti sa k nemu až po skončení funkcie prerušenia.

arduino-problém
arduino-uno-analógové-piny

Na doske Arduino Uno nájdete 6 analógových pinov. Nájdete ich v blízkosti napájacích kolíkov a sú ľahko rozpoznateľné, od A0 do A5.

Povedzme, že máte potenciometer a chcete získať percento hodnoty potenciometra. S digitálnym pinom ste mohli vedieť, kedy je potenciometer v minimálnej a maximálnej polohe, ale inak nič. S analógovými kolíkmi máte všetky hodnoty medzi nimi. POZOR analógová funkcia na týchto kolíkoch je len na čítanie. Zvyčajne sa dokonca nazývajú „Analógové vstupné kolíky“. Cez tieto kolíky nemôžete zapísať analógovú hodnotu, nezabudnite na to!

Ako teda funguje analógový vstupný kolík?

Najprv prijme vstupné napätie a prečíta toto napätie. Povedzme, že kolík číta 2,5 V. Potom ADC (Analog Digital Converter) zmení túto analógovú hodnotu na niečo, čomu váš program Arduino rozumie – digitálnu hodnotu.

Doska Arduino Uno má 10 bitový ADC. Rozlíšenie môže byť iné, ak používate iné dosky Arduino. Takže, čo znamená 10 bitov? Jednoducho, že rozlíšenie je 2^10 = 1024. Hodnota, ktorú získate pri čítaní údajov z analógového vstupného kolíka, je teda medzi 0 a 1023.

arduino-adc-rozlíšenie

Vráťme sa k nášmu príkladu 2,5 V: 2,5 V je 50 % z 5 V (Vcc). Vo vašom programe Arduino potom získate hodnotu 512. Z tejto hodnoty môžete jednoducho obrátiť výpočet a získať informáciu o napätí, ktoré bolo aplikované. Môže byť spočiatku dosť mätúce – nezabudnite, že funkcia analogWrite() pre PWM je dostupná len pre niektoré digitálne kolíky a vôbec nie pre analógové kolíky.

Stále aj keď z analógového kolíka môžete iba čítať nejakú hodnotu, môžete ho ľahko použiť aj ako „jednoduchý“ digitálny kolík. Ak pin dokáže čítať akúkoľvek hodnotu medzi 0 a 5V, potom bude schopný čítať len hodnoty pod 0,8V (LOW) a hodnoty nad 2V (HIGH). Ak chcete použiť analógový kolík ako digitálny kolík, musíte jednoducho nastaviť režim pre kolík, ako by ste to urobili pre digitálne kolíky vo funkcii setup () vášho programu Arduino. Potom môžete použiť funkcie digitalWrite() a digitalRead() a bude to fungovať perfektne.

Komunikačné protokoly cez Arduino piny :

Tu to začína byť zaujímavé. Komunikačné protokoly cez piny Arduino Uno vám umožnia používať pokročilejšie senzory a akčné členy. Vytvoríte tak komplexnejšie a užitočnejšie aplikácie. Existujú 3 hlavné komunikačné protokoly, ktoré môžete použiť s doskou Arduino Uno prostredníctvom Pinov :

  • UART
  • I2C
  • SPI

Pin pre UART :

UART je najpoužívanejší protokol pre Arduino – aspoň keď začínate. Keď pripojíte dosku Arduino Uno k počítaču a komunikujete cez sériovú knižnicu, Používate UART! 2 požadované piny pre UART nájdete aj priamo na doske Arduino Uno, na pinoch 0 a 1: RX a TX. R znamená „príjem“ a T znamená „prenos“. Ide o obojsmernú komunikáciu.

arduino-uno-uart-txo1-rxo0
  • TXO→1
  • RXO←0

Sériový port používaný USB je rovnaký ako ten, ktorý sa používa s kolíkmi 0 a 1. Ak teda chcete k RX/TX kolíkom vašej dosky pripojiť ďalšie zariadenie, nezabudnite použiť sériový port cez USB. V niektorých iných doskách Arduino, ako je Mega, existuje niekoľko rôznych dostupných UART. Ale pre Arduino Uno máte len jeden.

Ak však chcete použiť viac UART, vždy to môžete urobiť pomocou knižnice SoftwareSerial. Táto knižnica vám umožňuje použiť akékoľvek iné digitálne piny na účely UART. Aj keď je tu veľký rozdiel: „skutočný“ Serial využíva hardvérovú funkčnosť dosky Arduino Uno, ktorá je veľmi rýchla a nespotrebováva veľa výpočtového výkonu. SoftwareSerial je opakom: kompenzuje hardvér výpočtovým výkonom. Začnite teda najskôr so štandardným hardvérovým UART a potom uvidíte, či potrebujete viac sériových portov pre vašu aplikáciu (v tomto prípade vám odporúčam prejsť na Arduino Mega, aby ste získali veľa hardvérových UART).

Ak chcete pripojiť nejaký komponent k pinom Arduino Uno a použiť sériovú komunikáciu, budete potrebovať 4 vodiče:

  • Jeden medzi RX komponentu a TX Arduina
  • Jeden medzi TX komponentu a RX Arduina
  • Ak komponent nie je napájaný externe, jeden vodič na napájanie z napájacích pinov Arduina
  • A jeden na spojenie so zemou

I2C je zbernicový protokol s architektúrou multi-master/multi-slave.

Aby sme však veci zjednodušili – a väčšina vašich aplikácií to bude potrebovať –, bavme sa iba o časti architektúry typu one-master/multi-slave. V podstate si predstavte zbernicu dát, cez ktorú prechádzajú všetky dáta. Šéf autobusu je pán. Teraz môžete do zbernice pridať akýkoľvek nový komponent nakonfigurovaný ako podriadený. Okrem toho má každý komponent svoje vlastné ID. Hlavné zariadenie bude odosielať údaje a požiadavky podriadenému zariadeniu prostredníctvom komunikácie na zbernici a poskytnutím ID podriadenému zariadeniu.

Ak master potrebuje odpoveď, slave pošle odpoveď späť na zbernicu. Keď master dostane odpoveď, môže poslať ďalšiu inštrukciu/požiadavku. Zvyčajne budete svoju dosku Arduino Uno používať ako hlavnú a k zbernici I2C pripojíte jeden alebo niekoľko komponentov (zvyčajne senzorov), z ktorých každý má iné ID. Na strane softvéru budete používať open source knižnicu Arduino Wire.

Na použitie zbernice I2C budete potrebovať 4 vodiče:

  • Jeden na pripojenie kolíka SCL (hodiny)
  • Ďalší pre pin SDA (dáta)
  • Jeden na napájanie komponentov na zbernici
  • A jeden GND-pin

SPI je ďalší protokol založený na architektúre master-slave.

Môžete ho použiť na pripojenie vašej dosky Arduino k viacerým zariadeniam. Upozorňujeme, že rýchlosť komunikácie je vyššia ako pri I2C a UART, ale nie je vhodná na komunikáciu na stredné vzdialenosti (viac ako niekoľko centimetrov pre kábel).

Pokiaľ ide o ostatné komunikačné protokoly, môžete priamo použiť open source knižnicu SPI na svojich programoch Arduino. Keď používate zariadenie SPI a chcete ho pripojiť k niektorým kolíkom na doske Arduino, musíte použiť tieto kolíky:

  • 10
  • 11
  • ~12
  • ~13
arduino-uno-spi-piny-10,11,~12,~13

Potrebujete minimálne 6 vodičov:

  • CSK -pin pin (hodiny)
  • miso-pinkolík (Master In, Slave Out)
  • MOSI-pinpin (Master Out, Slave In)
  • Jeden pre každý CS/SS (Výber čipu/Výber Slave). Pre každého ďalšieho slavea budete musieť pridať jedno ďalšie pripojenie k pinu Arduino.
  • (Jeden na napájanie komponentov)
  • A jeden pre spoločnú ZEM GND-pin

Ak práve začínate s Arduinom, skúste najprv použiť základné digitálne a analógové funkcie. Potom môžete začať ísť ďalej s prerušeniami, výstupmi PWM atď. A nakoniec je tu nekonečný počet senzorov/akčných členov, ktoré môžete pripojiť k doske Arduino Uno a vytvoriť tak svoj ďalší nový projekt!


Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Nemôžete kopírovať obsah tejto stránky