Aluksi, miksi Arduino Mega 2560?
Kun halvempia levyjä on saatavilla, miksi valita Arduino Mega? Tärkein syy tähän on tämän piirilevyn sisäänrakennetut lisäominaisuudet. Ensimmäinen ominaisuus on suuri I/O-järjestelmän suunnittelu, jossa on sisäänrakennettu 16 analogista anturia ja 54 digitaalista anturia, jotka tukevat USART- ja muita viestintätiloja. Toiseksi siinä on sisäänrakennettu RTC ja muita ominaisuuksia, kuten analoginen komparaattori, kehittynyt ajastin, keskeytys ohjaimen herätysmekanismia varten, jotta voidaan säästää enemmän virtaa ja nopeaa nopeutta 16 Mhz: n kristallikellolla 16 MIBS: n saamiseksi. Siinä on yli 5 nastaa Vcc: lle ja Gnd: lle muiden laitteiden liittämiseksi Arduino Megaan.
Muihin ominaisuuksiin kuuluu JTAG-tuki ohjelmointia, virheenkorjausta ja vianetsintää varten. Suurella FLASH-muistilla ja SRAM-muistilla tämä levy voi käsitellä suuria järjestelmäohjelmia helposti. Se on myös yhteensopiva erityyppisten piirilevyjen kanssa, kuten korkean tason signaalin (5V) tai matalan tason signaalin (3,3V) kanssa I/O ref pin.
Brownout ja watchdog auttavat tekemään järjestelmästä luotettavamman ja kestävämmän. Se tukee ICSP- sekä USB-mikrokontrollerin ohjelmointia PC:llä.
Arduino Mega 2560 on vanhan Arduino Megan korvaaja, joten yleisessä viitteessä sitä kutsutaan ilman ’2560’-laajennusta. Monien nastojen lukumäärän vuoksi sitä ei yleensä käytetä tavallisissa projekteissa, mutta löydät ne paljon monimutkaisemmissa projekteissa, kuten Radon-ilmaisimissa, 3D-tulostimissa, lämpötila-antureissa, IOT-sovelluksissa, reaaliaikaisten tietojen valvontasovelluksissa jne.
Arduino Mega 2560 tekniset tiedot
Arduino Mega – perusominaisuudet
Arduino Mega | Ominaisuudet |
---|---|
Mikrokontrolleri | AVR ATmega 2560 (8bit) |
Virtalähde | 7-12V (Sisäänrakennettu säädin ohjaimelle) |
Digitaaliset I/O-nastat | 54 |
Analogiset I/O-nastat | 16 |
Kokonaisdigitaaliset I/O:t | 70 kpl (Digitaalinen + Analoginen) |
Kellon nopeus | 16 MHz (tehdasasetus 1Mhz) |
Flash-muisti | 128 KB |
SRAM | 8 KB |
Kommunikaatio | USB (Ohjelmointi ATmega 8:lla), ICSP (ohjelmointi), SPI, I2C ja USART |
Arduino Mega – Lisäominaisuudet
Arduino Mega | Lisäominaisuudet. Ominaisuudet |
---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer |
PWM | 12 (2-16 bitti) |
ADC | 16 (10 bitti) |
USART | 4 |
Pin Change Interrupt | 24 |
Arduino Mega 2560 on myös täynnä lisäominaisuuksia, kuten analoginen komparaattori, Ulkoinen keskeytys & Ohjelmistokatko, virransäästötila, sisäänrakennettu lämpötila-anturi, RTC ja paljon muuta.
Arduino Mega Pinout
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-Pinout-1024x525.png)
Virtanastat :
Arduino Mega | Power Pins |
---|---|
VIN | Syöttöjännite (7-12V) |
GND | Ground |
5V Supply | Ulkoiselle laitteistolaitteelle virtalähde |
3.3V Supply | For External low voltage hardware device power supply |
Arduino Mega Pin Diagram
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-Pin-Configuration-1024x602.jpg)
Controller Pins:
RESET: (Reset-tulo) Tämän nastan matala taso pidempään kuin 4 kellojakson ajan aiheuttaa nollauksen. Arduino Megassa on sisäänrakennettu nollauspiiri, jossa on painike järjestelmän nollaamiseksi, ja muut laitteet voivat käyttää tätä nastaa ohjaimen nollaamiseen.
XTAL1,XTAL2: Crystal (16Mhz) on kytketty syöttämään kelloa ohjaimelle 2 ohituskondensaattorin kanssa maahan.
AREF: Tätä nastaa käytetään, kun käytämme Adc:tä analogia-digitaalimuunnokseen ulkoisella referenssijännitteellä muunnosta varten ja emme halua käyttää sisäistä 1.1V tai 5v referenssiä.
Digitaaliset nastat (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Digitaaliset nastat: Vuodesta 0-53 (digitaalinen) ja 0-15 (analoginen) voidaan käyttää tulona tai lähtönä digitaalisille muuntimille ja lähtölaitteille pinMode() nastan suuntaan, digtalWrite() nastan kirjoittamiseen ja digitalRead() nastan tilan lukemiseen.
Sovellus:
Lähtölaitteet : Rele, LED, summeri, LCD ja muut.
Tulolaitteet: Digitaalinen termistori, painike, ultraäänianturi, joystick ja muut
Esimerkki:
- Output low-signaali Arduino mega boardissa
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Tulon lukusignaali Arduino mega -levyllä
pinMode(0,INPUT);
digitalRead(0);
Analogiset nastat (16):
Analogiset nastat: Jos sitä ei käytetä, se toimii normaalina digitaalisena nastana. Sitä voidaan käyttää pinMode():lla nastan suuntaan, analogRead():lla nastan tilan lukemiseen ja analogisen signaalin digitaalisen arvon saamiseen, sisäisen tai ulkoisen referenssijännitteen valintaan ja Aref-nastaan on kiinnitettävä huomiota.
Sovellus :
Tulolaitteet:
Esimerkki :
- INPUT analoginen signaali Arduino mega boardilla
pinMode(0,INPUT);
analogRead(0);
Vaihtoehtoiset nastat Toiminto:
SPI-nastat:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Nämä nastat käytetään sarjaliikenteeseen SPI-protokollalla 2 tai useamman laitteen väliseen viestintään. SPI-aktivointibitti on asetettava, jotta viestintä muiden laitteiden kanssa voidaan aloittaa.
Sovellus:
AVR-ohjaimen ohjelmointi, viestintä muiden oheislaitteiden, kuten LCD- ja SD-kortin, kanssa nelirivisellä viestinnällä suurella nopeudella.
I2C-nastat:
Digitaalinen nasta 20 SDA:ta varten ja 21 SCK:ta varten (nopeus 400 khz), jolla mahdollistetaan kaksijohdinliikenne muiden laitteiden kanssa. Käytetyt toiminnot ovat wire.begin() I2C-muunnoksen käynnistämiseksi, wire.Read() i2c-tietojen lukemiseen ja wire.Write() i2c-tietojen kirjoittamiseen.
Sovellus:
Lähtölaitteet : LCD ja kommunikaatio useiden laitteiden välillä kahdella johdolla.
Syöttölaitteet : rtc ja muut.
Esimerkki:
I2c master lukee dataa orjalta
Wire.begin();
Wire.requestFrom(2, 1); //1byte data
Wire.Read();
PWM-pinnit:
Digitaalipinniä 2-13 voidaan käyttää PWM-lähtönä analogWrite(): n avulla pwm-arvon kirjoittamiseen 0-255. Se on vaihtoehto DAC: lle edullisessa järjestelmässä analogisen signaalin saamiseksi ulostuloon käyttämällä suodatinta.
Sovellus:
Lähtölaitteet: moottorin nopeuden säätö, valon himmennin, pid tehokkaaseen ohjausjärjestelmään.
Esimerkki:
- OUTPUT analoginen signaali Arduino mega board
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
Tämä tappi käytetään sarjamuotoiseen usart-viestintään pc: n tai muun järjestelmän kanssa tietojen jakamista ja kirjaamista varten. Sitä käytetään serialBegin():n kanssa baudinopeusasetuksen asettamiseen ja viestinnän aloittamiseen sarjaliikenteellä.Println():n avulla tulostetaan merkkijono toisen laitteen ulostuloon.
Sovellus:
Kahden ohjaimen viestintä, pc:n ja ohjaimen välinen viestintä, virheenkorjaus usartilla sarjamonitorin avulla.
Esimerkki:
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
Tämä nasta käytetään nastanvaihdon keskeytykseen. Pinchange-keskeytyksen enable-bitti on asetettava globaalilla interrupt enable:lla.
Sovellus :
Rotary encoder, push button based interrupt ja muut.
Esimerkki :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Hardwarekeskeytyspinnit :
Digitaaliset pinnejä 18 – 21,2,3 laitteistokeskeytystä käytetään keskeytyspalveluihin. Laitteistokeskeytys on otettava käyttöön globaalilla keskeytyksen sallimisella, jotta voidaan saada keskeytys muilta laitteilta.
Sovellus:
Paina painiketta ISR-ohjelmaa varten, herätä ohjain ulkoisilla laitteilla, antureilla, kuten ultraääni ja muut.
Esimerkki:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Arduino Mega Schematic Components:
DC Jack Virtalähde :
Ulkoinen syöttö Arduino Megalle 7-12 voltin alueelta annetaan tällä portilla. Arduino Mega R3 on jännitteensäädin 5v ja 3,3v syöttö Arduino-ohjaimelle ja anturisyötölle.
AVR 2560 :
Tämä on tärkein ohjain, jota käytetään järjestelmän ohjelmointiin ja tehtävän suorittamiseen. Tämä on järjestelmän aivot, jotka ohjaavat kaikkia muita aluksella olevia laitteita.
ATmega8 :
Tätä ohjainta käytetään pääohjaimen ja muiden laitteiden väliseen viestintään. Tämä ohjain on ohjelmoitu USB-viestintä- ja sarja-ohjelmointiominaisuuksia varten.
ICSP 1 (ATmega8) ja 2 (AVR 2560):
Siinä on ohjelmointiominaisuudet sarjaväylää käyttäen AVR-ohjelmointilaitteen kanssa SPI-viestintää käyttäen. AVR 2560 on ohjelmoitu käyttämään järjestelmää ja ATmega 8 on ohjelmoitu sarjaliikennettä ja ohjelmointia varten.
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-ICSP-Pinout.png)
Nollaus :
Se on nollauspiiri kondensaattorilla, painikkeella ja vastuksella ohjaimen nollaamiseksi. Painiketta käytetään 4 syklin low-signaalin saamiseksi reset-pinniin, jotta ohjain saadaan reset-tilaan.
Crystal :
Se on kristallipiiri, jossa on kaksi kondensaattoria ja yksi 16 Mhz:n kristalli xtal-nastojen 1 ja 2 rajapintaa varten avr 2560: n kanssa.
I2C :
Se sisältää I2C-ominaisuudet (kaksijohtiminen tiedonsiirto) ulkoisella pull-up-vastuksella.
USART :
Se sisältää TXD- ja RXD-nastat sarjaliikennettä varten LED-ilmaisimella.
Joitakin yksinkertaisia ohjelmia kokeiltavaksi Arduino Mega 2560
Ohjelma 1: Vilkkuva LED (digitaalinen tappi)
/*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}
Ohjelma 2: Led-valon himmennin (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);}
Ohjelma 3: Analoginen lukujännite (Analoginen pin USART:lla) :
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}
Voit myös kokeilla omaa logiikkaasi ja toteuttaa ohjelmia Arduino mega:lle perus C- ja Arduino-toiminnolla.