Arduino board-ok
Az Arduino család folyamatosan bővül, és mivel ez a fejlesztői környezet nyitott, bárki fejleszthet rá hardvert, ez a fejlődés csak nagy vonalakban látható át. Ezen az oldalon megprobálom a lehetetlent, a hardverek összecsoportosítását, úgy, hogy tudom, hogy ez egy meglehetősen reménytelen kihívás. Nagy vonalakban az Arduino board-ok a következő csoportokba sorolhatók be:
- Arduino Uno - az igazi klasszikus board
- Arduino Mega - sok digitális és analóg port, 3 soros kommunikáció, nagyobb memória
- Arduino Micro - kicsi méret, de viszonylag magas portszám és teljesítmény, teljesértékű USB
- Arduino Nano - kicsi méret, nagyjából az UNO-val egyező kapacitás
- Arduino Mini - redukált hardver, USB port nincs
Az Arduino board-ok közös jellemzői
A board-okon a program
- az USB kommunikáció újraindulásakor
- a Serial Monitor aktiválásakor
- a pinek túlfeszültségvédelmének leoldásakor (ilyenkor jellegzetes oda-vissza kapcsolgatás - klattyogás - lesz)
- tápkieséskor
- a RESET gomb megnyomásakor
- a RESET bemenet LOW szintje esetén
újraindul.
Amennyiben a board-ok nem az USB-ről kapják a tápjukat, a betápoknál az üzemi feszültségszint fölött 1-2V legalább szükséges (5V esetén 7V, 3,3V esetén 5V), egyébként a board instabillá válhat.
A maximumális alánlott feszültséget nem érdemes túllépni, mert ez a szabályzóelektronika túlmelegedéséhez vezethet.
Az olyan board-okon, amik csak egy serial interfésszel rendelkeznek és a Serial Monitort is használni akarjuk,
- az ide projektált egyéb kommunikációt le kell kötni a pinekről
- értelemszerűen serial pineket (általában 0 és 1) nem projektálhatjuk digitális funkciókra
A legtöbb Arduino board-on a 13. pinre egy LED van kötve. Ha a pin HIGH szintre kerül, a LED világítani fog.
A kommunikációs megoldások, PWM funkciók, interrupt-ok sok board-on konkrét pin-ekhez vannak kötve. A pin-funkciók tervezésekor érdemes ezekkel kezdeni a kiosztást.
Az 5V-os, standard-TTL logikás és 3.3V-os rendszerek közötti kommunikáció esetén ügyelni kell a TTL-jelszintek eltérésére is.
Arduino Uno
Az Uno a legmezeibb board az Arduino-k között. Jelenleg a harmadik generációja kapható (Rev.3) 8 bites, 16 MHz-es ATmega328P processzorral. 14 digitális I/O lábbal (ebből 6 PWM-et is tud) és 32 kB flash memóriával rendelkezik.
A jelenleg aktuális Rev3 board-ok az ATmega16U2 serial IC-t használják az USB-n való kommunikáláshoz, az STK500 protokollal. A korábbi board-okon az ATmega16U2 található még meg.
Amennyiben a board külső tápról vagy akkumulátorról kerül megtáplálásra (Vin vagy power jack), ügyelni kell arra, hogy a betáp 7V fölött maradjon. Ez alatt ugyanis a board instabillá válhat. 12V fölött viszont előfordulhat, hogy a feszültségszabályzó melegszik túl, és ezért megy tönkre a board. A betápot ezért érdemes 7V és 12V között tartani.
A 3V3 pinre kikerülő 3,3V feszültséget nem szabad 50 mA fölé terhelni.
A board csak egy serial interfésszel rendelkezik - 0 (RX) és 1 (TX). Amennyiben a Serial Monitort használni akarjuk,
- az ide projektált egyéb kommunikációt le kell kötni a pinekről
- értelemszerűen a 0 és 1 pineket nem projektálhatjuk digitális funkciókra
A 13. pinre egy LED van kötve. Ha a pin HIGH szintre kerül, a LED világítani fog.
Az I²C kommunikációt az alábbi, analóg pineken lehet projektálni: A4 (SDA), A5 (SCL)
AREF: Referencia feszültség az analóg bemenetekhez
RESET: LOW szintre húzva újraindítást eredményez
Az Arduino UNO lábkiosztása / a képre rákattintva nagyítható ez.
Tovább:
Az Arduino Uno adatlapja
Mikrokontroller | ATmega328P |
Üzemi feszültség | 5V |
Bemeneti feszültség (javasolt) | 7-12V |
Minimális és maximális bemeneti feszültség | 6-20V (a 9V-os betápon tényleg maximum csak 9V!) |
Digitális csatornák száma | 14 (ebből 6 PWM-re alkalmazható, az összes szabadon definiálható be- és kimenetként) |
Analóg csatornák száma | 6 (analóg bemenetként vagy digitális csatornaként is alkalmazhatók) |
DC áram lábanként | 20 mA |
DC áram a 3.3V-os lábakon | 50 mA |
Flash memória | 32 KB (ATmega328P) de ebből 0.5 KB-ot a bootloader használ |
SRAM | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
Interrupt-olható pinek | 2, 3 |
PWM pinek, ezek frekvenciája* | 3, 5, 6, 9, 10, 11, pin 5-6: 980 Hz, a többi: 490 Hz |
Órajel | 16 MHz |
Led-del kiegészített csatorna | 13 |
Hossza | 68.6 mm |
Szélessége | 53.4 mm |
Súlya | 25 g |
*: az ATmega168-as vagy ATmega328-as board-oknál:
Olyan szervoknál, amik 16 bites felbontást igényelnek, előfordulhat, hogy csak a 9. és 10. pin fog működni!
Az Arduino Uno csatlakozási lehetőségei
Arduino Uno ATMega 328 ISP
A processzor ISP portja.
Arduino Uno USB ISP
Az USB-vezérlő ISP portja.
Arduino Uno I²C
Az UNO-n az I²C-t rendhagyó módon analóg kimeneti portokra kell applikálni. Ezek alapértelmezetten a következők:
A4: I²C SDA
A5: I²C SCL
Az Arduino I²C összefoglalása itt található: Arduino I²C.
Az Aduino-s I²C megoldások összefoglalása itt található: Arduino I²C kommunikáció.
Arduino Uno SPI
Az UNO-n az SPI alapértelmezett portjai a következők:
port | funkció |
---|---|
13 | SPI SCK |
12 | SPI MISO |
11 | SPI MOSI |
10 | SPI SS |
Az Arduino SPI összefoglalása itt található: Arduino SPI.
Az Aduino-s SPI megoldások összefoglalása itt található: Arduino SPI kommunikáció.
Arduino Uno Interrupt
Az Arduino Uno Interrupt-ra kijelölt portjai: 2, 3. → Arduino interrupt
Arduino Mega / 2560
A Mega board nevéhez méltóan az UNO egy rendesen túlméretezett változata. AZ IO-kat itt nem méretezték szűken. Az eggyel komolyabb (ATmega2560) processzorral működő lapja az UNO-nál jóval több flash memóriát is tartalmaz, 16 helyett 256 kB-ot, így 3D nyomtatók és robotok vezérlésére is egész jól használható. Az órajele viszont megegyezik az Uno-éval, ez itt is 16 MHz maradt. Az Arduino Mega 2560 Rev3 a board aktuális változata, elődje az Arduino Mega volt.
4, egyidejű UART kommunikációt lehet rajta megvalósítani:
- Serial: 0 (RX) és 1 (TX);
- Serial1: 19 (RX) és 18 (TX);
- Serial2: 17 (RX) és 16 (TX);
- Serial3: 15 (RX) és 14 (TX).
Az Arduino Mega lábkiosztása / a képre rákattintva nagyítható ez.
Tovább:
Az Arduino Mega adatlapja
Mikrokontroller | ATmega2560 |
Üzemi feszültség | 5V |
Bemeneti feszültség (javasolt) | 7-12V |
Minimális és maximális bemeneti feszültség | 6-20V |
Digitális csatornák száma | 54 (ebből 15 PWM-re alkalmazható, az összes szabadon definiálható be- és kimenetként) |
Analóg csatornák száma | 16 (analóg bemenetként vagy digitális csatornaként is alkalmazhatók) |
DC áram lábanként | 20 mA |
DC áram a 3.3V-os lábakon | 50 mA |
Flash memória | 256 KB (ATmega328P) de ebből 8 KB-ot a bootloader használ |
SRAM | 8 KB (ATmega328P) |
EEPROM | 4 KB (ATmega328P) |
Órajel | 16 MHz |
Led-del kiegészített csatorna | 13 |
Interrupt-olható pinek | 2 (irq0), 3 (irq1), 18 (irq5), 19 (irq4), 20 (irq3), 21 (irq2) |
PWM pinek | 2..13. és 44..46. pin (8 bit PWM) |
SPI pinek | 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) |
I²C pinek | 20 (SDA) és 21 (SCL) |
Hossza | 101.52 mm |
Szélessége | 53.3 mm |
Súlya | 37 g |
Arduino Micro
Az Arduino Micro technikailag megegyezik az Arduino Leonardo-val.
Az Arduino Micro 20 digitális I/O pinnel rendelkezik, amelyek közül 12 analóg bemenetként (is) használható, a többi 7 pedig PWM kimenetként is működhet (ezzel szemben az Arduino Nano 14 digitális I/O pinnel rendelkezik, ezekből 6 használható PWM kimenetekként, 8 pedig analóg bemenetként). Támogatja az I²C (TWI), UART és az SPI kommunikációt. Az Arduino Micro mikroprocesszora, az ATMega32u4 egy beépített teljes sebességű USB-vel rendelkezik. Ez lehetővé teszi, hogy a kártya USB eszközként működjön a megfelelő USB-stack megvalósításával. Például alkalmazható, mint
- USB-soros átalakító (CDC-eszköz)
- Billentyűzet vagy egér (HID eszköz)
- USB merevlemez (MSC eszköz)
- MIDI vezérlő
Az ATMega32u4 ezen kívül 5 hardveres megszakítást tesz lehetővé (az Atmega328-nak 2 van).
Az Arduino Micro esetén a standard Serial kommunikációt az USB (CDC) használja, így a pin 0 (Rx) és pin 1 (Tx) kommunikációt a Serial1-nek kell definiálni.
A PWM pineken 8-bites PWM valósítható meg.
Az SPI kommunikáció csak az ICSP csatlakozón és/vagy az erre kijelölt pineken valósítható meg.
A RESET bemenet LOW aktiv.
A pin 13 a LED kimenet.
A pin 8 az RX_LED/SS port: alapbeállításban jelzi az USB aktivitását, SPI estén az SS aktivitását, vagy normál io-ként is alkalmazható.
Az Arduino Micro adatlapja
Arduino Micro | Keyes Pro Micro | ||
---|---|---|---|
Mikrokontroller | ATmega32u4 | ATmega32u4 | |
Arhitektúra | AVR | AVR | |
Üzemi feszültség | 5V | 3.3V | |
Bemeneti feszültség (javasolt) | 7-12V | 7-9V | |
Bemeneti feszültség (határértékei) | 6-20V | - | |
Digitális csatornák száma | 20 (ebből 7 PWM (moduláció) | PWM]]-re alkalmazható | 12 (ebből 5 PWM-re alkalmazható |
Analóg csatornák száma | 12 | 4 | |
DC áram lábanként | 40 mA | 40 mA (az egész chip max. 200 mA) | |
DC áram 3.3V pin esetén | 50 mA | 40 mA | |
Flash memória | 32 KB (ATmega32u4) de ebből 4 KB-ot a bootloader használ | 32 KB (ATmega32u4) de ebből 4 KB-ot a bootloader használ | |
SRAM | 2.5 KB (ATmega32u4) | 2.5 KB (ATmega32u4) | |
EEPROM | 1 KB (ATmega32u4) | 1 KB (ATmega32u4) | |
Órajel | 16 MHz | 16 MHz | |
Interrupt-olható pinek | 0, 1, 2, 3, 7 | ||
PWM pinek | (7) 3, 5, 6, 9, 10, 11, 13 |
A Keyes Pro Micro lábkiosztása
Arduino Nano
Arduino Nano
A Nano az Arduino család legkisebb tagja. Nagyon kicsi mérete és az UNO-val nagyjából megegyező, viszonylag csekély tudása olyan helyeken teszi ideális megoldássá, ahol csak néhány logikai műveletet kell végrehajtani, de a megvalósításra nincs igazán hely (kicsi dobozok, kapcsolószekrények, rejtett elektronikai megoldások).
A board-on nincs DC power jack, az USB csatlakozó is Mini-B típusú
A board az USB kommunikációt FTDI FT232RL chippel valósítja meg
A Nano-nak csak egy Serial (UART) csatornája van; 0 (RX) és 1 (TX)
A board-on az I²C kommunikáció a következő pineken projektálható: 4 (SDA) és 5 (SCL)
A board-on az SPI kommunikáció a következő pineken projektálható: 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
Tovább:
Az Arduino Nano adatlapja
Mikrokontroller | 3.x: ATmega328, 2.x: ATmega168 |
Arhitektúra | AVR |
Üzemi feszültség | 5V |
Bemeneti feszültség (javasolt) | 7-12V |
Digitális csatornák száma | 14 (ebből 6 PWM-re alkalmazható, az összes szabadon definiálható be- és kimenetként) |
Analóg csatornák száma | 8 (analóg bemenetként vagy digitális csatornaként is alkalmazhatók) |
DC áram lábanként | 19 mA |
Flash memória | 16 KB (ATmega168), 32 KB (ATmega328P) de ebből 2 KB-ot a bootloader használ |
SRAM | 1 KB (ATmega168), 2 KB (ATmega328P) |
EEPROM | 512 byte (ATmega168), 1 KB (ATmega328P) |
Órajel | 16 MHz |
Interrupt-olható pinek | 2, 3 |
PWM pinek | 3, 5, 6, 9, 11 |
Hossza | 45 mm |
Szélessége | 18 mm |
Súlya | 7 g |
Az Arduino Nano felépítése
Arduino Mini (03..05, Pro)
Az Arduino Mini gyakorlatilag az UNO kicsinyített változata, ami azért jónéhány különbséget is rejt:
- Az analóg inputok száma kettővel több (8 összesen) - az I²C könyvtár is ezeket a pineket használja
- Nincs közvetlen USB csatlakozója, a letöltéshez trükközni kell
- A 9V-os betápon tényleg maximum csak 9V adható (ez a 9V-os telepekhez lett kitalálva)
- Jóval olcsóbb és kisebb
Tovább:
Az Arduino Mini adatlapja
Mikrokontroller | ATmega328P |
Üzemi feszültség | 3,3V vagy 5V |
Bemeneti feszültség (javasolt) | 7-12V |
Minimális és maximális bemeneti feszültség | 6-20V |
Digitális csatornák száma | 14 (ebből 6 PWM-re alkalmazható (D3, D5, D6, D9, D10, D11), az összes szabadon definiálható be- és kimenetként) |
Analóg csatornák száma | 8 (analóg bemenetként vagy digitális csatornaként is alkalmazhatók) |
DC áram lábanként | 40 mA |
DC áram a 3.3V-os lábakon | 50 mA |
Flash memória | 32 KB (ATmega328P) de ebből 2 KB-ot a bootloader használ |
SRAM | 2 KB (ATmega328P) |
EEPROM | 1 KB (ATmega328P) |
Órajel | 3,3V: 8MHz, 5V: 16 MHz |
Led-del kiegészített csatorna | 13 |
Interrupt-olható pinek | 2, 3 |
PWM pinek | 3, 5, 6, 9, 11 |
Hossza | 33.3 mm |
Szélessége | 18.0 mm |
Súlya | 5 g |
Az Arduino Mini változatai
Az Arduino Mini USB csatlakoztatása
Mivel a kártyának nincs USB csatlakozója, ezen a fronton trükökkel lehet élni:
- Mini USB-Adapter (pl. FTDI vagy CH340G) használata vagy építése, lásd: FTDI (vagy CH340G) konverter
- Egy (kiszuperált) UNO board átjátszóként való hasznosítása
- Univerzális USB-Adapter használata