Először is, miért az Arduino Mega 2560?
Ha olcsóbb lapok is elérhetők, miért az Arduino Mega? Ennek fő oka a kiegészítő funkciók, amelyek ebbe a kártyába vannak beépítve. Az első funkció a nagy I/O rendszer kialakítása beépített 16 analóg átalakítóval és 54 digitális átalakítóval, amely támogatja a USART és más kommunikációs módokat. Másodszor, beépített RTC-vel és más funkciókkal rendelkezik, mint például analóg összehasonlító, fejlett időzítő, megszakítás a vezérlő ébresztési mechanizmusához, hogy több energiát és gyors sebességet takarítson meg 16 Mhz kristályórával, hogy 16 MIBS-t kapjon. Több mint 5 csapot tartalmaz a Vcc és a Gnd számára, hogy más eszközöket csatlakoztasson az Arduino Mega-hoz.
Az egyéb funkciók közé tartozik a JTAG-támogatás a programozáshoz, a hibakereséshez és a hibaelhárításhoz. A nagy FLASH memóriával és SRAM memóriával ez a kártya könnyedén kezelheti a nagy rendszerprogramot. Kompatibilis a különböző típusú táblákkal is, mint a magas szintű jel (5V) vagy alacsony szintű jel (3,3V) I/O ref pin.
A brownout és a watchdog segít a rendszer megbízhatóbbá és robusztusabbá tételében. Támogatja az ICSP, valamint az USB mikrokontroller programozását PC-vel.
Az Arduino Mega 2560 a régi Arduino Mega helyettesítője, ezért az általános hivatkozásban a ‘2560’ kiterjesztés nélkül nevezik. A sok csapszám miatt általában nem használják közös projektekhez, de sokkal összetettebb projektekben, például radonérzékelőkben, 3D nyomtatókban, hőmérséklet-érzékelésben, IOT alkalmazásokban, valós idejű adatfigyelő alkalmazásokban stb.
Arduino Mega 2560 specifikációk
Arduino Mega – alapvető jellemzők
Arduino Mega | Tulajdonságok |
---|---|
Mikrokontroller | AVR ATmega 2560 (8bit) |
Tápegység | 7-12V (beépített szabályozó a vezérlőhöz) |
Digitális I/O csatlakozók | 54 |
Analog I/O csatlakozók | 16 |
Total Digital I/O | 70 (Digital + Analog) |
Óra sebesség | 16 MHz (gyári beállítás 1Mhz) |
Flash memória | 128 KB |
SRAM | 8 KB |
Kommunikáció | USB (programozás ATmega 8-al), ICSP (programozás), SPI, I2C és USART |
Arduino Mega – Speciális funkciók
Arduino Mega | Szint. Features |
---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer |
PWM | 12 (2-16 bit) |
ADC | 16 (10 bit) |
USART | 4 |
Pin Change Interrupt | 24 |
Az Arduino Mega 2560 olyan további funkciókkal is rendelkezik, mint az analóg komparátor, Külső megszakítás & Szoftveres megszakítás, energiatakarékos üzemmód, beépített hőmérsékletérzékelő, RTC és még sok más.
Arduino Mega Pinout
Tápcsatlakozók :
Arduino Mega | Tápcsatlakozók |
---|---|
VIN | Tápfeszültség (7-12V) |
GND | Ground |
5V Supply | A külső hardvereszköz tápellátásához |
3.3V tápellátás | A külső kisfeszültségű hardvereszköz tápellátásához |
Arduino Mega pin diagram
Controller pinek:
RESET: (Reset bemenet) Ha ezen a pin-en a 4 órajelciklusnál hosszabb ideig alacsony szint van, az resetet generál. Az Arduino Mega beépített reset áramkörrel rendelkezik nyomógombbal a rendszer visszaállításához, és ezt a csapot más eszközök is használhatják a vezérlő visszaállítására.
XTAL1,XTAL2:
AREF: A kristály (16Mhz) a vezérlő órájának ellátására van csatlakoztatva 2 áthidaló kondenzátorral a földre.
AREF: Ez a pin akkor használatos, amikor Adc-t használunk analóg-digitális átalakításhoz külső referenciafeszültséggel az átalakításhoz, és nem akarunk belső 1,1V vagy 5V-os referenciát használni.
Digitális csapok (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Digitális csapok: A 0-53 (digitális) és 0-15 (analóg) használható bemenetként vagy kimenetként a digitális átalakítók és kimeneti eszközök számára a pinMode() a pin irányához, a digtalWrite() a pin írásához és a digitalRead() a pin állapotának olvasásához.
Alkalmazás:
Kimeneti eszközök : Relé, LED, zúgó, LCD és mások.
Bemeneti eszközök: digitális termisztor, nyomógomb, ultrahangos érzékelő, joystick és mások
Példa:
- Kimeneti alacsony jel az Arduino mega táblán
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Bemeneti olvasójel az Arduino mega kártyán
pinMode(0,INPUT);
digitalRead(0);
Analóg pinek (16):
Analóg csapok:
Analóg csapok: A 0-15 (analóg) analóg bemeneti csapként használható az adc számára, ha nem használják, akkor normál digitális csapként működik. Használható pinMode() a pin irányához, analogRead() a pin állapotának olvasásához és az analóg jel digitális értékének lekérdezéséhez, ügyelni kell a belső vagy külső referenciafeszültség kiválasztására és az Aref pin-re.
Alkalmazás :
Bemeneti eszközök:
Példa :
- INPUT analóg jel az Arduino mega boardon
pinMode(0,INPUT);
analogRead(0);
Alternatív pin funkció:
SPI Pins:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Ezek a csapok az SPI protokollal történő soros kommunikációra szolgálnak 2 vagy több eszköz közötti kommunikációhoz. Az SPI engedélyező bitet be kell állítani a más eszközökkel való kommunikáció megkezdéséhez.
Alkalmazás:
Az AVR vezérlő programozása, kommunikáció más perifériákkal, mint LCD és SD kártya négysoros kommunikációval nagy sebességgel.
I2C Pins:
Digitális pin 20 az SDA és 21 az SCK számára (sebesség 400khz) a kétvezetékes kommunikáció lehetővé tételéhez más eszközökkel. A használt funkció a wire.begin() az I2C konverzió elindításához, a wire.Read() az i2c adatok olvasásához és a wire.Write() az i2c adatok írásához.
Alkalmazás:
Kimeneti eszközök : LCD és kommunikáció több eszköz között két vezetékkel.
Bemeneti eszközök : rtc és egyéb.
Példa:
I2c master adatot olvas a slave-ről
Wire.begin();
Wire.requestFrom(2, 1); //1byte adat
Wire.Read();
PWM Pins:
A 2-13-as digitális csapot PWM-kimenetként lehet használni az analogWrite() segítségével a pwm érték 0-255 közötti pwm-érték írására.Ez a DAC alternatívája az alacsony költségű rendszer számára, hogy analóg jelet kapjon a kimeneten a szűrő használatával.
Alkalmazás:
Kimeneti eszközök: motor sebességszabályozás, fényerőszabályozás, pid a hatékony vezérlőrendszerhez.
Példa:
- Az analóg jel kimenete az Arduino mega boardon
pinMode(0,OUTPUT);
analogWrite(0,255);
USART Pins :
Pin 0 – RXD0, pin 1 – TXD0Pin 19 – RXD1, pin 18 – TXD1Pin 17 – RXD2, pin 16 – TXD2Pin 15 – RXD3, pin 14 – TXD3
Ez a pin a soros usart kommunikációra szolgál pc-vel vagy más rendszerrel az adatmegosztáshoz és naplózáshoz. Ezt a serialBegin() funkcióval használjuk a baud rate beállításához és a soros kommunikáció elindításához.Println() a char tömb nyomtatásához más eszköz kimenetén.
Alkalmazás:
Két vezérlő kommunikációja, pc és vezérlő kommunikációja, hibakeresés usarttal soros monitor segítségével.
Példa:
Serial.begin(9600);
Serial.Println(“hello”);
Pinchange Interrupt Pins:
Digital Pin 0,22,23,24,25,10,11,12,13,15,14Analog Pin 6,7,8,9,10,11,12,13,14,15
Ez a pin a pinváltás megszakítására szolgál. A pinchange megszakítás engedélyező bitjét a globális megszakítás engedélyezéssel kell beállítani.
Alkalmazás :
Pörgőkódoló, nyomógomb alapú megszakítás és mások.
Példa :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Hardware Interrupt Pins :
Digitális pin 18 – 21,2,3 hardware interrupt a megszakítási szolgáltatásokhoz használatos. A hardveres megszakítást engedélyezni kell a globális megszakítás engedélyezésével, hogy megszakítást kapjon más eszközökről.
Alkalmazás:
Gombnyomás az ISR programhoz, ébresztő vezérlő külső eszközökkel, érzékelőkkel, mint például ultrahangos és mások.
Példa:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Arduino Mega Schematic Components:
DC Jack tápegység :
A külső tápegység az Arduino Mega számára a 7-12 voltos tartományból ezzel a porttal adott. Az Arduino Mega R3 rendelkezik egy feszültségszabályozóval az 5v és 3,3v tápellátáshoz az Arduino vezérlő és az érzékelők ellátásához.
AVR 2560 :
Ez a fő vezérlő, amelyet a rendszer programozására és a feladat futtatására használnak. Ez a rendszer agya a fedélzeten lévő összes többi eszköz vezérléséhez.
ATmega8 :
Ez a vezérlő a fő vezérlő és a többi eszköz közötti kommunikációra szolgál. Ez a vezérlő USB-kommunikációs és soros programozási funkciókkal van programozva.
ICSP 1 (ATmega8) és 2 (AVR 2560):
Az AVR programozóval SPI-kommunikációt használó soros buszon keresztül történő programozás jellemzőivel rendelkezik. Az AVR 2560 a rendszer futtatására van programozva, az ATmega 8 pedig a soros kommunikációhoz és a programozáshoz van programozva.
Reset :
Ez rendelkezik reset áramkörrel kondenzátorral, gombbal és ellenállással a vezérlő visszaállításához. Egy nyomógombot használnak, hogy 4 ciklusos alacsony jelet kapjanak a reset pin-en, hogy a vezérlő reset üzemmódba kerüljön.
Kristály :
Egy kristály áramkörrel rendelkezik két kondenzátorral és egy 16 Mhz-es kristállyal az 1. és 2. xtal csapokhoz, amelyek az avr 2560-hoz kapcsolódnak.
I2C :
Az I2C (kétvezetékes kommunikáció) jellemzőivel rendelkezik, külső pull-up ellenállással.
USART :
TXD és RXD tűvel rendelkezik a soros kommunikációhoz LED kijelzővel.
Néhány egyszerű program az Arduino Mega 2560
Program 1: Villogó LED (digitális 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: Led Light Dimmer (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: Led Light Dimmer (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: Analóg olvasási feszültség (analóg pin USART-tal) :
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}
A saját logikáját is kipróbálhatja és megvalósíthatja az Arduino mega programokat az alapvető C és Arduino funkcióval.