Voreerst, waarom Arduino Mega 2560?
Wanneer er goedkopere boards beschikbaar zijn, waarom dan kiezen voor Arduino Mega? De belangrijkste reden hiervoor is de extra functies die zijn ingebouwd met dit bord. Het eerste kenmerk is het grote I/O systeemontwerp met ingebouwde 16 analoge transducers en 54 digitale transducers die USART en andere communicatiemodi ondersteunen. Ten tweede heeft het ingebouwde RTC en andere functies zoals analoge comparator, geavanceerde timer, interrupt voor controller wakeup mechanisme om meer macht te besparen en snelle snelheid met 16 Mhz kristal klok om 16 MIBS te krijgen. Het heeft meer dan 5 spelden voor Vcc en Gnd om andere apparaten aan Arduino Mega.
aan te sluiten
Andere eigenschappen omvatten JTAG-steun voor het programmeren, debugging en het oplossen van problemen. Met groot FLASH geheugen en SRAM, kan dit bord grote systeemprogramma’s met gemak aan. Het is ook compatibel met de verschillende soorten borden, zoals high-level signaal (5V) of low-level signaal (3,3 V) met I / O ref pin.
Brownout en watchdog helpen om het systeem betrouwbaarder en robuuster te maken. Het steunt ICSP evenals USB-microcontroller programmering met PC.
De Arduino Mega 2560 is een vervanging van oude Arduino Mega, en zo in algemene verwijzing, zal het zonder de ‘2560’ uitbreiding worden geroepen. Vanwege het grote aantal pinnen, wordt het meestal niet gebruikt voor gewone projecten, maar je kunt ze vinden in veel complexere zoals Radon detectoren, 3D-printers, temperatuur sensing, IOT-toepassingen, real-time data monitoring toepassingen, enz.
Arduino Mega 2560 Specificaties
Arduino Mega – Basiskenmerken
Arduino Mega | Functies |
---|---|
Microcontroller | AVR ATmega 2560 (8bit) |
Voeding | 7-12V (Ingebouwde Regulator voor Controller) |
Digitale I/O Pinnen | 54 |
Analoge I/O Pinnen | 16 |
Totaal Digitale I/O | 70 (Digitaal + Analoog) |
Kloksnelheid | 16 MHz (af fabriek ingesteld op 1Mhz) |
Flashgeheugen | 128 KB |
SRAM | 8 KB |
Communicatie | USB (Programmering met ATmega 8), ICSP (programmering), SPI, I2C en USART |
Arduino Mega – Geavanceerde Functies
Arduino Mega | Geavanceerde Functies |
---|---|
Timer | 2 (8bit) + 4 (16bit) = 6 timer |
PWM | 12 (2-16 bit) |
ADC | 16 (10 bit) |
USART | 4 |
Pin Change Interrupt | 24 |
Arduino Mega 2560 wordt ook ingepakt met extra eigenschappen zoals Analoge Comparator, Externe onderbreking & Software onderbreking, energiebesparende modus, ingebouwde temperatuursensor, RTC en nog veel meer.
Arduino Mega Pinout
Voedingspinnen :
Arduino Mega | Power Pins |
---|---|
VIN | Voedingsspanning (7-12V) |
GND | Ground |
5V-voeding | Voor externe hardware-apparaatvoeding |
3.3V Supply | For External low voltage hardware device power supply |
Arduino Mega Pin Diagram
Controller Pins:
RESET: (Teruggestelde input) Een laag niveau op deze speld voor langer dan de 4 klokcyclus zal een het terugstellen produceren. Arduino Mega heeft ingebouwd het terugstellenkring met drukknop om systeem terug te stellen en deze speld kan door andere apparaten worden gebruikt om controller.
XTAL1, XTAL2 terug te stellen: Kristal (16Mhz) is aangesloten om klok voor controller te leveren met 2 bypass condensator aan de grond.
AREF: Deze pin wordt gebruikt, wanneer we Adc gebruiken voor analoog naar digitaal conversie met externe referentiespanning voor conversie en geen interne 1.1V of 5v referentie willen gebruiken.
Digitale pinnen (70):
Digital pins (0-53) + Analog (0-15) = Total Digital I/O pins.
Digitale pinnen: Van 0-53 (digitaal) en 0-15 (analoog) kan worden gebruikt als ingang of uitgang voor digitale transducer en output apparaten door pinMode() voor pin richting, digtalWrite() om pin te schrijven en digitalRead() om pin status te lezen.
Toepassing:
Uitgangsapparaten : Relais, LED, zoemer, LCD en anderen.
Input apparaten: digitale thermistor, drukknop, ultrasone sensor, joystick en anderen
Exemplaar:
- Uitgang laag signaal op Arduino mega board
pinMode(0,OUTPUT);
digitalWrite(0,LOW);
- Input-leessignaal op Arduino mega board
pinMode(0,INPUT);
digitalRead(0);
Analoge pinnen (16):
Analoge pinnen: Van 0-15(analoog) kan worden gebruikt als analoge ingang pin voor adc, indien niet gebruikt dan werkt het als normale digitale pin. Het kan worden gebruikt door pinMode() voor pin richting, analogRead() om pin status te lezen en digitale waarde voor analoog signaal te krijgen, moet zorg worden genomen voor interne of externe referentiespanning selectie en Aref pin.
Toepassing :
Input apparaten: Ntc thermistor, sensoren (zoals ldr, irled en vochtigheid) en anderen
Example :
- INPUT analoog signaal op Arduino mega board
pinMode(0,INPUT);
analogRead(0);
Alternatieve pins Functie:
SPI Pennen:
Pin 22 - SS, Pin 23 - SCK, Pin 24 - MOSI, Pin 25 – MISO
Deze pennen worden gebruikt voor seriële communicatie met SPI protocol voor communicatie tussen 2 of meer apparaten. SPI enable bit moet worden ingesteld om de communicatie met andere apparaten te starten.
Toepassing:
Programmeren van AVR controller, communicatie met anderen perifere zoals LCD en SD-kaart met vier-lijn communicatie op hoge snelheid.
I2C Pinnen:
Digitale pin 20 voor SDA en 21 voor SCK (snelheid 400khz) om tweedraads communicatie met andere apparaten mogelijk te maken. Gebruikte functie zijn wire.begin() om I2C conversie te starten, met wire.Read() om i2c data te lezen en wire.Write() om i2c data te schrijven.
Toepassing:
Uitgangsapparaten : LCD en communicatie tussen meerdere apparaten met twee draden.
Input apparaten : rtc en anderen.
Exemplaar:
I2c master leest data van slave
Wire.begin();
Wire.requestFrom(2, 1); //1byte data
Wire.Read();
PWM Pins:
Digitale pin 2-13 kan worden gebruikt als PWM uitgang met analogWrite() om pwm waarde te schrijven van 0-255.Het is alternatief voor DAC voor low cost systeem om analoog signaal aan de uitgang te krijgen door gebruik te maken van filter.
Toepassing:
Uitgang apparaten: snelheidsregeling van de motor, licht dimmer, pid voor efficiënte controle systeem.
Exemplaar:
- OUTPUT analoog signaal op 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
Deze pin wordt gebruikt voor seriële usart communicatie met pc of ander systeem voor het delen van gegevens en het loggen. Het wordt gebruikt met serialBegin() om baudrate te plaatsen en mededeling met serial.Println() te beginnen om reeks char op andere apparatenoutput.
Toepassing af te drukken:
Twee controlemechanismemededeling, PC en controlemechanismemededeling, debugging met usart door periodieke monitor.
Exemplaar:
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
Deze pin wordt gebruikt voor pin change interrupt. Het toelaatbare beetje van speldwisselingsonderbreking moet met globale onderbreking worden geplaatst toelaat.
Toepassing:
Rotary encoder, drukknop gebaseerde onderbreking en anderen.
Voorbeeld :
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, CHANGE);
Hardware Interrupt Pins :
Digitale pin 18 – 21,2,3 hardware interrupt wordt gebruikt voor interrupt services. De hardware onderbreekt moet met globaal worden toegelaten onderbreekt toelaat om onderbreking van andere apparaten te krijgen.
Toepassing:
Drukknop voor ISR programma, ontwaak controlemechanisme met externe apparaten, sensoren zoals ultrasoon en anderen.
Exemplaar:
pinMode(0, OUTPUT);
pinMode(1, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(1), LOW, LOW);
Arduino Mega Schematische Componenten:
DC Jack Power Supply :
Externe voeding voor Arduino Mega van bereik 7-12 volt wordt gegeven met deze poort. Arduino Mega R3 heeft een spanningsregelaar voor 5v en 3.3v levering voor Arduino controller en sensor supply.
AVR 2560 :
Dit is de belangrijkste controller gebruikt om te programmeren en uit te voeren taak voor het systeem. Dit is het brein van het systeem om alle andere apparaten aan boord te controleren.
ATmega8 :
Deze controller wordt gebruikt voor de communicatie tussen de hoofdcontroller en andere apparaten. Deze controller is geprogrammeerd voor USB-communicatie en seriële programmeerfuncties.
ICSP 1 (ATmega8) en 2 (AVR 2560):
Het heeft functies van programmering met behulp van seriële bus met AVR-programmeur met behulp van SPI-communicatie. AVR 2560 is geprogrammeerd om het systeem in werking te stellen en ATmega 8 is geprogrammeerd voor periodieke mededeling en programming.
Reset :
Het heeft het terugstellenkring met condensator, knoop en weerstand om de controlemechanisme terug te stellen. Een drukknop wordt gebruikt om 4 cycli laag signaal op reset-pin te krijgen om de controller in reset mode.
Crystal :
Het heeft een kristal circuit met twee condensatoren en een 16 Mhz kristal voor xtal pinnen 1 en 2 interfacing met avr 2560.
I2C :
Het heeft kenmerken van I2C (tweedraads communicatie) met een externe pull-up weerstand.
USART :
Het heeft TXD en RXD pin voor seriële communicatie met LED-indicator.
Een aantal eenvoudige programma’s om te proberen op Arduino Mega 2560
Programma 1: Knipperende LED (Digitale 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}
Programma 2: Led Licht 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);}
Programma 3: Analog Read Voltage (Analoge pin met 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}
U kunt ook proberen uw eigen logica en programma’s te implementeren voor Arduino mega met basis C en Arduino-functie.