Především, proč Arduino Mega 2560?
Když jsou k dispozici levnější desky, proč jít do Arduino Mega? Hlavním důvodem jsou další funkce, které jsou v této desce zabudovány. První funkcí je rozsáhlá konstrukce systému I/O s vestavěnými 16 analogovými převodníky a 54 digitálními převodníky, které podporují s USART a dalšími komunikačními režimy. Za druhé má vestavěný RTC a další funkce, jako je analogový komparátor, pokročilý časovač, mechanismus přerušení pro probuzení řadiče, aby se ušetřilo více energie a vysoká rychlost s 16 Mhz krystalovými hodinami pro získání 16 MIBS. Má více než 5 pinů pro Vcc a Gnd pro připojení dalších zařízení k Arduino Mega.
Další funkce zahrnují podporu JTAG pro programování, ladění a řešení problémů. Díky velké paměti FLASH a paměti SRAM tato deska snadno zvládne velký systémový program. Je také kompatibilní s různými typy desek, například s vysokoúrovňovým signálem (5 V) nebo nízkoúrovňovým signálem (3,3 V) s ref. pinem I/O.
Brownout a watchdog pomáhají zvýšit spolehlivost a odolnost systému. Podporuje programování ICSP i USB mikrokontroléru pomocí PC.
Arduino Mega 2560 je náhradou starého Arduina Mega, a proto se v obecných referencích bude nazývat bez přípony „2560“. Vzhledem k velkému počtu pinů se obvykle nepoužívá pro běžné projekty, ale najdete je v mnohem složitějších projektech, jako jsou detektory radonu, 3D tiskárny, snímání teploty, IOT aplikace, aplikace pro monitorování dat v reálném čase atd.
Arduino Mega 2560 Specifikace
Arduino Mega – základní funkce
Arduino Mega | Vlastnosti |
---|---|
Mikrokontrolér | AVR ATmega 2560 (8bit) |
Napájecí zdroj | 7-násobný12V (vestavěný regulátor pro řadič) |
Digitální I/O piny | 54 |
Analogové I/O piny | 16 |
Celkem digitální I/O | 70 (digitální + analogové) |
Taktovací frekvence | 16 MHz (z výroby nastaveno na 1Mhz) |
Paměť flash | 128 KB |
SRAM | 8 KB |
Komunikace | USB (programování pomocí ATmega 8), ICSP (programování), SPI, I2C a USART |
Arduino Mega – Pokročilé funkce
Arduino Mega | Pokročilé funkce Funkce |
---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer |
PWM | 12 (2-16bitové) |
ADC | 16 (10bitové) |
USART | 4 |
Změna pinu Přerušení | 24 |
Arduino Mega 2560 je také vybaveno dalšími funkcemi, jako je analogový komparátor, Externí přerušení & Softwarové přerušení, úsporný režim, vestavěný teplotní senzor, RTC a další.
Rozložení vývodů Arduino Mega
Napájecí piny :
Arduino Mega | Napájecí piny |
---|---|
VIN | Napájecí napětí (7-.12V) |
GND | Zem |
5V napájení | Pro napájení externího hardwarového zařízení |
3.3V napájení | Pro externí nízkonapěťové napájení hardwarového zařízení |
Schéma pinů Arduino Mega
Piny řadiče:
RESET: (Vstup resetu) Nízká úroveň na tomto pinu po dobu delší než 4 hodinové cykly vygeneruje reset. Arduino Mega má vestavěný resetovací obvod s tlačítkem pro resetování systému a tento pin může být použit jinými zařízeními pro resetování řadiče.
XTAL1,XTAL2: Krystal (16Mhz) je připojen k napájení hodin pro řadič s 2 bypassovými kondenzátory na zem.
AREF: Tento pin se používá, pokud používáme Adc pro analogově digitální převod s externím referenčním napětím pro převod a nechceme používat interní 1,1V nebo 5V referenci.
Digitální piny (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Digitální piny: Od 0-53 (digitální) a 0-15 (analogové) lze použít jako vstup nebo výstup pro digitální převodníky a výstupní zařízení pomocí pinMode() pro směr pinů, digtalWrite() pro zápis pinů a digitalRead() pro čtení stavu pinů.
Použití:
Výstupní zařízení : Relé, LED, bzučák, LCD a další.
Vstupní zařízení: digitální termistor, tlačítko, ultrazvukový senzor, joystick a další
Příklad:
- Výstupní signál low na desce Arduino mega
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Vstupní signál pro čtení na desce Arduino mega
pinMode(0,INPUT);
digitalRead(0);
Analogové piny (16):
Analogové piny: Pokud není použit, funguje jako normální digitální pin. Může být použit pomocí pinMode() pro směr pinů, analogRead() pro čtení stavu pinů a získání digitální hodnoty pro analogový signál, je třeba dbát na výběr interního nebo externího referenčního napětí a Aref pin.
Použití :
Vstupní zařízení:
Příklad :
- INPUT analogový signál na desce Arduino mega
pinMode(0,INPUT);
analogRead(0);
Alternativní funkce pinů:
Piny SPI:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Tyto piny se používají pro sériovou komunikaci s protokolem SPI pro komunikaci mezi 2 nebo více zařízeními. Pro zahájení komunikace s dalšími zařízeními musí být nastaven povolovací bit SPI.
Použití:
Pro programování řadiče AVR, komunikaci s dalšími periferiemi, jako je LCD a SD karta se čtyřřádkovou komunikací při vysoké rychlosti.
I2C Piny:
Digitální pin 20 pro SDA a 21 pro SCK (rychlost 400khz) pro umožnění dvouvodičové komunikace s dalšími zařízeními. Používají se funkce wire.begin() pro zahájení konverze I2C, s wire.Read() pro čtení dat i2c a wire.Write() pro zápis dat i2c.
Použití:
Výstupní zařízení : LCD a komunikace mezi více zařízeními pomocí dvou drátů.
Vstupní zařízení : rtc a další.
Příklad:
I2c master čte data ze slave
Wire.begin();
Wire.requestFrom(2, 1); //1byte data
Wire.Read();
PWM piny:
Digitální pin 2-13 lze použít jako PWM výstup s analogWrite() pro zápis pwm hodnoty od 0-255. Je to alternativa D/A převodníku pro nízkonákladový systém pro získání analogového signálu na výstupu pomocí filtru.
Použití:
Výstupní zařízení: řízení otáček motoru, stmívače světla, pid pro efektivní řídicí systém.
Příklad:
- Výstup analogového signálu na desce Arduino mega
pinMode(0,OUTPUT);
analogWrite(0,255);
Piny USBART :
Pin 0 – RXD0, pin 1 – TXD0Pin 19 – RXD1, pin 18 – TXD1Pin 17 – RXD2, pin 16 – TXD2Pin 15 – RXD3, pin 14 – TXD3
Tento pin se používá pro sériovou komunikaci usart s počítačem nebo jiným systémem pro sdílení dat a záznam. Používá se s funkcí serialBegin() pro nastavení přenosové rychlosti a zahájení komunikace se sériovým zařízením.Println() pro vypsání pole znaků na výstup jiného zařízení.
Použití:
Komunikace dvou řadičů, komunikace pc a řadiče, ladění s usart pomocí sériového monitoru.
Příklad:
Serial.begin(9600);
Serial.Println(„hello“);
Přerušení výměny pinů:
Digital Pin 0,22,23,24,25,10,11,12,13,15,14Analog Pin 6,7,8,9,10,11,12,13,14,15
Tento pin se používá pro přerušení výměny pinů. Enable bit pinchange interrupt musí být nastaven pomocí global interrupt enable.
Aplikace :
Rotary encoder, push button based interrupt a další.
Příklad :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Hardwarové přerušení pinů :
Hardwarové přerušení digitálních pinů 18 – 21,2,3 se používá pro služby přerušení. Hardwarové přerušení musí být povoleno pomocí globálního povolení přerušení, aby bylo možné získat přerušení z jiných zařízení.
Použití:
Tlačítko pro program ISR, probuzení řadiče s externími zařízeními, senzory jako ultrazvuk a další.
Příklad:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Schématické komponenty Arduino Mega:
Napájení DC Jack :
Externí napájení pro Arduino Mega v rozsahu 7-12 V je dáno tímto portem. Arduino Mega R3 má regulátor napětí pro napájení 5 V a 3,3 V pro řadič Arduino a napájení senzorů.
AVR 2560 :
Jedná se o hlavní řadič používaný k programování a spouštění úloh pro systém. Je to mozek systému, který řídí všechna ostatní zařízení na desce.
ATmega8 :
Tento řadič se používá pro komunikaci mezi hlavním řadičem a ostatními zařízeními. Tento řadič je naprogramován pro komunikaci přes USB a funkce sériového programování.
ICSP 1 (ATmega8) a 2 (AVR 2560):
Má funkce programování pomocí sériové sběrnice s programátorem AVR pomocí komunikace SPI. AVR 2560 je naprogramován pro běh systému a ATmega 8 je naprogramována pro sériovou komunikaci a programování.
Reset :
Má resetovací obvod s kondenzátorem, tlačítkem a odporem pro resetování řadiče. Tlačítko se používá k získání 4 cyklů nízkého signálu na resetovacím pinu, aby se regulátor dostal do režimu resetování.
Krystal :
Má krystalový obvod se dvěma kondenzátory a jedním 16 Mhz krystalem pro xtal piny 1 a 2 pro propojení s avr 2560.
I2C :
Má funkce I2C (dvouvodičová komunikace) s externím pull-up rezistorem.
USART :
Má vývod TXD a RXD pro sériovou komunikaci s LED indikátorem.
Několik jednoduchých programů k vyzkoušení na Arduino Mega 2560
Program 1: Blikající LED (digitální pin)
/*Turns on an LED on for two second, then off for two second on pin 13, repeatedly.*/// the setup function runs once when you press reset or power the boardvoid setup() {// initialize digital pin 13 as an output.pinMode(13, OUTPUT);}// the loop function runs again and againvoid loop() {digitalWrite(13, HIGH); // turn the LED on (HIGH is the voltage level)delay(2000); // wait for two seconddigitalWrite(13, LOW); // turn the LED offdelay(2000); // wait for two second}
Program 2: Stmívač LED světla (PWM):
int brightness = 0; //pwm valuevoid setup(){pinMode(3, OUTPUT);}void loop(){analogWrite(3, brightness); // pwm write on pin 3++brightness; // brightness is incremented by 1if (brightness <= 0 || brightness >= 255) {brightness=0; // brightness limited to 0-255}delay(10);}
Program 3: Stmívač LED světla (PWM): (Analogový pin s USART) :
void setup(){Serial.begin(9600); // usart communication start function with baudrate set to 9600}void loop(){int sensorValue = analogRead(A0); // analog pin 0 data is read and converted into digital value stored in sensorValue.Serial.println(sensorValue); // usart to output sensor value on serial monitor}
Můžete si také vyzkoušet vlastní logiku a implementovat programy pro Arduino mega se základními funkcemi jazyka C a Arduino.