S Arduinem se převážně pracuje jednoduše a rychle. Ovšem často nás může překvapit zapojení Arduino kompatibilních modulů, které pracují s různými komunikačními rozhraními. V takovémto případě se může uživatel dostat do úzkých a začne ve velkém prohledávat internet, aby zjistil, kam se příslušné piny zapojují.
My si tuto věc uvědomujeme, a proto jsme připravili článek, který naše čtenáře a zákazníky jednou pro vždy zbaví tohoto problému. V následující Tabulce 1 je uvedeno, na kterých pinech Arduino platforem se nacházejí příslušná komunikační rozhraní.
Tabulka 1: Přehled zapojení komunikačních rozhraní Arduino
Komunikační rozhraní | Označení pinu | ||||||||||||
Sběrnice | Signál | Arduino Nano | Arduino Uno | Arduino Mega | Arduino Due | Arduino Micro | Arduino mini | Arduino Pro Mini | Arduino Nano Strong V3.0 |
Arduino Leonardo R3 |
Arduino Leonardo Pro Micro |
Arduino LilyPad | Arduino MKR WAN 1300 |
Serial (Serial 0)
|
Rx | D0 (RX0) | D0 | D0 | D0 | RX1 | D1 (RX1) | D1 (RX1) | D0 (RX0) | D0 | D1 (RX1) | 0/rx, FTDI 5 | D13 |
Tx | D1 (TX1) | D1 | D1 | D1 | TX1 | D0 (TX0) | D0 (TX0) | D1 (TX1) | D1 | D0 (TX0) | 1/tx, FTDI 4 | D14 | |
Serial 1
|
Rx | – | – | D19 | D19 | – | – | – | – | – | – | – | – |
Tx | – | – | D18 | D18 | – | – | – | – | – | – | – | – | |
Serial 2
|
Rx | – | – | D17 | D17 | – | – | – | – | – | – | – | – |
Tx | – | – | D16 | D16 | – | – | – | – | – | – | – | – | |
Serial 3
|
Rx | – | – | D15 | D15 | – | – | – | – | – | – | – | – |
Tx | – | – | D14 | D14 | – | – | – | – | – | – | – | – | |
I2C 0
(IIC, wire) |
SDA | A4 | A4, SDA | D20, SDA1 | D20 | D2 | A6 | A5 | A4 | D2, SDA | D2 | A4 | D11 |
SCL | A5 | A5, SCL | D21, SCL1 | D21 | D3 | A7 | A4 | A5 | D3, SCL | D3 | A5 | D12 | |
I2C 1
(IIC, wire) |
SDA | – | – | – | SDA1 | – | – | – | – | – | – | – | – |
SCL | – | – | – | SCL1 | – | – | – | – | – | – | – | – | |
SPI 0
|
MISO | D12, ICSP 1 | D12, ICSP 1 | D50 | D19 | MISO | D11 | D12 | D11 | ICSP 1 | D14 | D12 | D10 |
MOSI | D11, ICSP 4 | D11, ICSP 4 | D51 | D18 | MOSI | D12 | D11 | D12 | ICSP 4 | D16 | D11 | D8 | |
SCK | D13, ICSP 3 | D13, ICSP 3 | D52 | SCL1 | SCK | D13 | D13 | D13 | ICSP 3 | D15 | D13 | D9 | |
SS | D10 | D10 | D53 | D4 | SS | D10 | D10 | D10 | – | – | D10 | – | |
SPI 1
|
MISO | – | – | ICSP 1 | D17 | – | – | – | – | – | – | – | – |
MOSI | – | – | ICSP 4 | D16 | – | – | – | – | – | – | – | – | |
SCK | – | – | ICSP 3 | A0 | – | – | – | – | – | – | – | – | |
SS | – | – | - | D52 | – | – | – | – | – | – | – | – | |
SPI 2
|
MISO | – | – | – | ICSP 1 | – | – | – | – | – | – | – | – |
MOSI | – | – | – | ICSP 4 | – | – | – | – | – | – | – | – | |
SCK | – | – | – | ICSP 3 | – | – | – | – | – | – | – | – | |
SS | – | – | – | – | – | – | – | – | – | – | – | – | |
SPI 3
|
MISO | – | – | – | SPI 1 | – | – | – | – | – | – | – | – |
MOSI | – | – | – | SPI 4 | – | – | – | – | – | – | – | – | |
SCK | – | – | – | SPI 3 | – | – | – | – | – | – | – | – | |
SS | – | – | – | - | – | – | – | – | – | – | – | – | |
CAN
|
CAN Rx | – | – | – | CANRX | – | – | – | – | – | – | – | – |
CAN Tx | – | – | – | CANTX | – | – | – | – | – | – | – | – |
Tabulku lze stáhnout v PDF formátu zde.
Můžete si všimnout, že v určitých případech v kolonce sběrnice SPI schází pin, který obstarává SS (slave select). Nejedná se o chybu, protože lze jako SS pin využít libovolný digitální pin. Je ovšem nutné naprogramovat funkci, která z daného pinu vytvoří SS pin. Princip SS je jednoduchý. Pokud je signál v logické 0, slave komunikuje s masterem. V případě, že je signál v logické 1, komunikace neprobíhá. Každé slave zařízení musí mít vlastní SS, ale signály MISO, MOSI a SCK mohou být sdíleny s ostatními slave zařízeními. Pro více informací doporučuje tento článek.
V některých případech lze například sběrnici I2C či UART emulovat na libovolných digitálních pinech. Emulace komunikačních rozhraní však není předmětem toho článku a povíme si o ní někdy jindy.
ICSP konektor
Některé platformy (např. Arduino Nano, Uno, Mega, Due a Leonardo) disponují ICSP konektorem, jehož rozložení můžete vidět na Obrázku 1. V případě platformy Nano a Uno je konektor navíc propojen s piny SPI sběrnice. Ostatní jmenované platformy mají na konektoru ICSP SPI sběrnici nezávislou. ICSP se hojně využívá například k připojení USB programátorů.
Obrázek 1: ICSP konektor - Arduino Nano, Uno, Mega, Due a Leonardo
Platforma Arduino Due disponuje navíc dalším nezávislým SPI rozhraním, které je kompatibilní s konektorem ICSP. Rozložení je tedy stejné jako na Obrázku 1.
Arduino LilyPad je asi nejbizarnější Arduino na trhu. Zaujme charakteristickým kruhovým tvarem a je osazen 6 pinovým konektorem pro připojení USB TTL převodníku (CH340, FTDI, ...), který slouží k naprogramování zařízení. Pořadí pinů si můžete prohlédnout na Obrázku 2.
Obrázek 2: Šesti pinové rozhraní Arduino LilyPad
Zdroje:
[1] Arduino - Home [online]. [cit. 2018-08-28]. Dostupné z: https://www.arduino.cc