În primul rând, de ce Arduino Mega 2560?
Când sunt disponibile plăci mai ieftine, de ce să alegeți Arduino Mega? Motivul principal din spatele acestui lucru este reprezentat de caracteristicile suplimentare care sunt încorporate cu această placă. Prima caracteristică este designul mare al sistemului I/O cu 16 traductoare analogice încorporate și 54 de traductoare digitale care suportă cu USART și alte moduri de comunicare. În al doilea rând, are încorporat RTC și alte caracteristici precum comparator analogic, temporizator avansat, întrerupere pentru mecanismul de trezire a controlerului pentru a economisi mai multă energie și viteză rapidă cu ceas de cristal de 16 Mhz pentru a obține 16 MIBS. Are mai mult de 5 pini pentru Vcc și Gnd pentru a conecta alte dispozitive la Arduino Mega.
Alte caracteristici includ suport JTAG pentru programare, depanare și depanare. Cu o memorie FLASH mare și SRAM, această placă poate gestiona cu ușurință programe mari de sistem. Este, de asemenea, compatibilă cu diferite tipuri de plăci, cum ar fi semnalul de nivel înalt (5V) sau semnalul de nivel scăzut (3,3V) cu pinul de ref. I/O.
Brownout și watchdog ajută la realizarea unui sistem mai fiabil și mai robust. Suportă ICSP, precum și programarea microcontrolerului USB cu PC.
Arduino Mega 2560 este un înlocuitor al vechiului Arduino Mega și, prin urmare, în referința generală, acesta va fi numit fără extensia „2560”. Din cauza numărului mare de pini, nu este utilizat de obicei pentru proiecte obișnuite, dar îl puteți găsi în proiecte mult mai complexe, cum ar fi detectoare Radon, imprimante 3D, detectarea temperaturii, aplicații IOT, aplicații de monitorizare a datelor în timp real etc.
Arduino Mega 2560 Specificații
Arduino Mega – Caracteristici de bază
Arduino Mega | Caracteristici |
---|---|
Microcontroler | AVR ATmega 2560 (8bit) |
Sursă de alimentare | 7-…12V (regulator încorporat pentru controler) |
Pini I/O digitale | 54 |
Pini I/O analogice | 16 |
Total I/O digitale | 70 (digitale + analogice) |
Viteza ceasului | 16 MHz (setat din fabrică la 1Mhz) |
Memorie flash | 128 KB |
SRAM | 8 KB |
Comunicare | USB (Programare cu ATmega 8), ICSP (programare), SPI, I2C și USART |
Arduino Mega – Caracteristici avansate
Arduino Mega | Avansat Caracteristici | ||
---|---|---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer | ||
PWM | 12 (2-16 biți) | ||
ADC | 16 (10 biți) | ||
USART | 4 | ||
Schimbare de pin Interrupt | 24 |
Arduino Mega 2560 este, de asemenea, dotat cu caracteristici suplimentare, cum ar fi Comparatorul analogic, Întrerupere externă & Întrerupere software, mod de economisire a energiei, senzor de temperatură încorporat, RTC și multe altele.
Arduino Mega Pinout
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-Pinout-1024x525.png)
Pini de alimentare :
Arduino Mega | Pini de alimentare |
---|---|
VIN | Tensiune de alimentare (7-12V) |
GND | Pământ |
Alimentare 5V | Pentru alimentarea dispozitivului hardware extern |
3.3V Supply | Pentru alimentarea externă a dispozitivului hardware de joasă tensiune |
Schema pinilor Arduino Mega
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-Pin-Configuration-1024x602.jpg)
Pini controler:
RESET: (Intrare de resetare) Un nivel scăzut pe acest pin pentru o perioadă mai lungă decât ciclul de 4 ceasuri va genera o resetare. Arduino Mega are încorporat un circuit de resetare cu buton pentru a reseta sistemul și acest pin poate fi folosit de alte dispozitive pentru a reseta controlerul.
XTAL1,XTAL2: Cristal (16Mhz) este conectat pentru a furniza ceas pentru controler cu 2 condensatori de bypass la masă.
AREF: Acest pin este utilizat, atunci când folosim Adc pentru conversia analog-digitală cu tensiune de referință externă pentru conversie și nu dorim să folosim referință internă de 1,1V sau 5v.
Pini digitali (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Pini digitali: De la 0-53 (digital) și 0-15 (analogic) pot fi utilizate ca intrare sau ieșire pentru transductorul digital și dispozitivele de ieșire prin pinMode() pentru direcția pinului, digtalWrite() pentru a scrie pinul și digitalRead() pentru a citi starea pinului.
Aplicație:
Dispozitive de ieșire : Releu, LED, buzzer, LCD și altele.
Dispozitive de intrare: termistor digital, buton de apăsare, senzor ultrasonic, joystick și altele
Exemplu:
- Semnal de ieșire scăzut pe placa Arduino mega
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Semnal de citire la intrare pe placa Arduino mega
pinMode(0,INPUT);
digitalRead(0);
Pini analogici (16):
Pini analogici: De la 0-15 (analogic) poate fi folosit ca pin de intrare analogică pentru adc, dacă nu este folosit decât funcționează ca pin digital normal. Poate fi utilizat de pinMode() pentru direcția pinului, analogRead() pentru a citi starea pinului și a obține valoarea digitală pentru semnalul analogic, trebuie să se aibă grijă la selectarea tensiunii de referință internă sau externă și la pinul Aref.
Aplicații :
Dispozitive de intrare: Termistor Ntc, senzori (cum ar fi ldr, irled și umiditate) și altele
Exemplu :
- Intrare semnal analogic pe placa Arduino mega
pinMode(0,INPUT);
analogRead(0);
Funcția pinilor alternativi:
Pini SPI:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Acești pini sunt utilizați pentru comunicarea serială cu protocolul SPI pentru comunicarea între 2 sau mai multe dispozitive. Bitul de activare SPI trebuie să fie setat pentru a începe comunicarea cu alte dispozitive.
Aplicații:
Programarea controlerului AVR, comunicarea cu alte periferice cum ar fi LCD și card SD cu comunicare pe patru linii la viteză mare.
Pini I2C:
Pini digitali 20 pentru SDA și 21 pentru SCK (viteză 400khz) pentru a permite comunicarea pe două fire cu alte dispozitive. Funcțiile utilizate sunt wire.begin() pentru a începe conversia I2C, cu wire.Read() pentru a citi date i2c și wire.Write() pentru a scrie date i2c.
Aplicație:
Dispozitive de ieșire : LCD și comunicarea între mai multe dispozitive cu două fire.
Dispozitive de intrare : rtc și altele.
Exemplu:
Maestrul i2c citește date de la sclav
Wire.begin();
Wire.requestFrom(2, 1); //1byte date
Wire.Read();
Pini PWM:
Pini digitali 2-13 pot fi folosiți ca ieșire PWM cu analogWrite() pentru a scrie valoarea pwm de la 0-255. Este o alternativă a DAC pentru sistemele cu costuri reduse pentru a obține un semnal analogic la ieșire prin utilizarea unui filtru.
Aplicații:
Dispozitive de ieșire: controlul vitezei motorului, variator de lumină, pid pentru un sistem de control eficient.
Exemplu:
- Semnal analogic de ieșire pe placa Arduino mega
pinMode(0,OUTPUT);
analogWrite(0,255);
Pini USART:
Pin 0 – RXD0, pin 1 – TXD0Pin 19 – RXD1, pin 18 – TXD1Pin 17 – RXD2, pin 16 – TXD2Pin 15 – RXD3, pin 14 – TXD3
Acest pin este utilizat pentru comunicarea serială usart cu PC-ul sau alt sistem pentru partajarea și înregistrarea datelor. Este utilizat cu serialBegin() pentru a seta setarea vitezei de baud și pentru a începe comunicarea cu serial.Println() pentru a imprima o serie de caractere pe ieșirea altui dispozitiv.
Aplicații:
Comunicare cu doi controlori, comunicare între PC și controler, depanare cu usart prin monitor serial.
Exemplu:
Serial.begin(9600);
Serial.Println(„hello”);
Pini de întrerupere a schimbării pinilor:
Digital Pin 0,22,23,24,25,10,11,12,13,15,14Analog Pin 6,7,8,9,10,11,12,13,14,15
Acest pin este utilizat pentru întreruperea schimbării pinilor. Bitul de activare a întreruperii de schimbare a pinilor trebuie să fie setat cu activarea globală a întreruperii.
Aplicație :
Codificator rotativ, întrerupere pe bază de buton de apăsare și altele.
Exemplu :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Pini de întrerupere hardware :
Interupția hardware a pinilor digitali 18 – 21,2,3 este utilizată pentru servicii de întrerupere. Întreruperea hardware trebuie să fie activată cu activarea globală a întreruperii pentru a obține întreruperi de la alte dispozitive.
Aplicații:
Buton de apăsare pentru programul ISR, controler de trezire cu dispozitive externe, senzori precum ultrasunete și altele.
Exemplu:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Componente schematice Arduino Mega:
Sursa de alimentare DC Jack :
Alimentarea externă pentru Arduino Mega din intervalul 7-12 volți este dată cu acest port. Arduino Mega R3 are un regulator de tensiune pentru alimentarea de 5v și 3,3v pentru controlerul Arduino și alimentarea senzorilor.
AVR 2560 :
Acesta este controlerul principal folosit pentru a programa și a rula sarcini pentru sistem. Acesta este creierul sistemului pentru a controla toate celelalte dispozitive de la bord.
ATmega8 :
Acest controler este utilizat pentru comunicarea între controlerul principal și alte dispozitive. Acest controler este programat pentru comunicare USB și caracteristici de programare serială.
ICSP 1 (ATmega8) și 2 (AVR 2560):
Acesta are caracteristici de programare folosind busul serial cu programatorul AVR folosind comunicarea SPI. AVR 2560 este programat pentru a rula sistemul, iar ATmega 8 este programat pentru comunicare serială și programare.
![](https://www.circuitstoday.com/wp-content/uploads/2018/02/Arduino-Mega-ICSP-Pinout.png)
Reinițializare :
Aceasta are un circuit de reinițializare cu condensator, buton și rezistor pentru a reinițializa controlerul. Un buton este utilizat pentru a obține un semnal scăzut de 4 cicluri pe pinul de resetare pentru a aduce controlerul în modul de resetare.
Cristal :
Aceasta are un circuit de cristal cu două condensatoare și un cristal de 16 Mhz pentru pinii xtal 1 și 2 care fac interfață cu avr 2560.
I2C :
Are caracteristici de I2C (comunicare pe două fire) cu un rezistor de tragere în sus extern.
USART :
Are pin TXD și RXD pentru comunicare serială cu indicator LED.
Câteva programe simple de încercat pe Arduino Mega 2560
Programul 1: LED care clipește (pin digital)
/*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}
Programul 2: Dimmer de lumină LED (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);}
Programul 3: Tensiune de citire analogică (pin analogic cu 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}
Puteți, de asemenea, să încercați propria logică și să implementați programe pentru Arduino mega cu C de bază și funcția Arduino.