[1]
[1]
an Arduino Mega 2560 from Algonquin College
[1] Arduino Mega 2560 is a development electronic board/microprocessor development board (MDB) based on the Atmega2560 microcontroller and is programmed via Arduino IDE (Integrated Development Environment) software, the official software introduced by Arduino.cc
microprocesssor development board (MDB): [2] a printed circuit board (PCB) with a microprocessor and minimal support logic for an engineer/one who seeks to be acquainted with the microprocessor on the board to learn to program it. It also served users of the microprocessor as a method to prototype applications in products.
microprocessor: compact, 1 chip IC acting as a device's CPU, handling logic, arithmetic, and control functions
[1] It's fitting in projects needing more GPIO pins and memory space as it carries 16 analog pins and 54 digital I/O pins, which 15 pins are for PWM output. It has a DC power jack to power up this unit. We can turn on the MDB via the "VIN" pin. The unit also supports a USB interface where a USB cable connects the board to a computer.
The unit also supports the ICSP header, used to program the MDB without disconnecting it from the main circuitry. 2 voltage regulators are on the MDB through which we can regulate the voltage as you like better.
The ATmega2560 controller on the MDB comes with 256 KB of flash memory used for storing code (out of which 8 KB is used for the Bootloader), while the SRAM is 8 KB of SRAM and EEPROM is 4 KB of EEPROM.
[6]
[1] 54 Digital I/O pins, Pin 0-53 (15 for PWM, 2 for TWI/I2C or SPI or is part of serial communication, 8 or 10 for serial communication, 29 for general output and inputs): Used to connect the MDB to external components.
Note: Thought Pin 0-53 are all digital pins, only Pin 22-53 are labeled as "digital" based on extra hardware functions, not for being electrically different.
[4] RX0 ('R' for "receive"), Pin 0: that receives serial data through UART/USB, connected to TX pin
TX0 ('T' for "transmit"), Pin 1: Transmits serial data, conneced to RX pin.
8 or 10 serial communication pins (10 pins if counting RX0 and TX0 are special as they’re shared to the USB connection to the device): 3 or 4 pairs that receive and transmit pins (TX0, RX0, TX1, RX1, etc...) and 2 I2C pins (SDA and SCL).
Digital I/O pin (TX3), Pin 14: Transmits data on serial 3.
Digital I/O pin (RX3), Pin 15: Receives data on serial 3.
Digital I/O pin (TX2), Pin 16: Transmits data on serial 2.
Digital I/O pin (RX2), Pin 17: Receives data on serial 2.
Digital I/O pin (TX1), Pin 18: Transmits data on serial 1.
Digital I/O pin (RX1), Pin 19: Receives data on serial 1.
SDA (Serial Data Line), Data line, Pin 20: Carries actual data between devices, [4] ie., I2C devices communicate through it
SCL (Serial Clock Line), Clock line, Pin 21: Carries timing signal (clock) that keeps devices synchronized. [4] I2C data timing can be controlled through it.
General-purpose Digital I/O pins (GPIO) (labeled as "digital" on the MDB, i.e., they're plain digital pins), Pin 22-53: Used for digital input/output. and 4 lines for SPI communication.
15 Digital I/O pins with PWM pins, Pin 2-13 and 44-46: Used for PWM output or as digital pins.
MISO (Master In Slave Out), communication SPI, Pin 50: Through SPI data from slave devices. (data into Arduino)
MOSI (Master Out Slave In), communication SPI, Pin 51: Through SPI data is sent to slave devices.
SCK (Slave Select) (Serial Clock (timing signal), communication SPI, Pin 52: Chooses which device to talk to. For synchronization, used the SPI clock signal.
SS, communication SPI, Pin 53: SPI slave devices.
16 Analog pins, Pin A0-A15: 10-bit resolution pins reading analog input and measure voltage from ground to 5 V, converted to digital values via a 10-bit ADC.
5, [5] at times 4, Power pins:
3.3V and 5V Pins: Supply respectively 3.3 V and 5 V to any connected external additives, to power sensors, actuators, and modules.
5 or 2 GND pins: Ground pins used for projects where 1+ ground is used.
VIN (input voltage): A pin ranging 6V-12V, but recommended range is 7V-12V.
[5] This MDB MEGA 2560 has 4 power pins.
Other pins:
Reset pin: The reset is is useful if your code is stuck amidst running program. Pressing it resets the code compiled on the MDB.
AREF (Analog reference) pin: Sets an external reference voltage (0V-5V) for the ADC, defining the max range for analogRead().
Unusused/Unlabeled pin, pin located beside the 2 electrolytic capacitors.
2nd SCL:
2nd SDA:
2nd SCL:
[1] LED: The built-in LED is connected to pin 13. It turns ON if 5V is provided to it while ground turns it OFF.
6 External Interrupts: The pin numbers are 0, 3, 18, 19, 20 & 21.
I2C/IIC, pronounced I-squared-C or 'I' squared 'C' (Inter-Integrated Circuit), or TWI (Two-Wire Interface) as referred to by Atmel/Microchip: communication system used between chips and sensors. It uses 2 wires: one for data (SDA) and one for timing (SCL). It works by having a device as the "master" (often Arduino), which sends a clock signal on SCL, and other devices are "slaves" (sensors, screens, etc.). Data moves on SDA in sync to SCL.
serial data/serial data transmission/serial transmission: way to send digital info a bit at a time, sequentially, in 1 wire/channel. Unlike parallel data, it's for longer distances and needs fewer wires.
serial: things occured in sequence, IO instantly/all at once; e.g., a "serial killer" killers victims in separate, sequential events over time; serial protocol is a rule governing data exchange in sequence
Universal Asynchronous Receiver-Transmitter (UART): type of serial communication, physical circuit/IC used for asynchronous serial communication between devices, sending data bit-by-bit without shared clock signal
USB (Universal Serial Bus): tech connecting PCs, peripherals, and electronic devices to exchange data and power
line: electrical wire, pin, path name
SPI (serial peripheral interface) Communication: Allows data transmission between controller and other peripheral devices.
DC power jack: Electric socket that connects external power supplies to electronic devices (PCs, cameras, etc), coupled to the board to power the board. Some version of the Arduino board lacks it (Arduino Pro Mini).
Power regulator: linear voltage regulator that steps down higher input voltages to stable 5 V or 3.3 V.
Reset button
LM358 operational amplifier:
H12.000KIC crystal oscillator: electric circuit using mechanic resonance of vibrating, piezoelectric material (often quartz) to create stable precise electric signal. The Mega 2560's oscillator is 16 MHz.
ICSP (In-Circuit Serial Programming) header: A 2x3 pin interface used to directly program the microcontroller, bypassing the USB-to-serial converter and upload the code from the computer.
[6] ATMEGA2560's features:
a less power-consuming AVR 8-bit controller
based on RISC Articture
has 32 by 8 GP registers
operation is static
has 2-cycle multipliers
has a non-volatile memory
has EEPROM of 4KB
has SRAM of 8 kB
has the read-write operation
has 54/86 input and outputs
40-85°C operating temperature
ATMega2560: A microcontroller chip made by Microchip (originally Atmel). This MDB's ATmega2560's model is 16U-TH 355E3F 220323M, standing for:
ATmega2560 → the actual microcontroller model (made by Microchip/Atmel).
16U = 16 MHz speed grade or internal variant/binning.
TH = package type (TQFP-TH / thin high-profile surface mount variant depending on manufacturer labeling).
355E3F = internal batch/production/trace code (factory tracking, not user-relevant).
220323M = date code, likely means 2022-03-23 manufacturing date.
47 25V VT electrolytic capacitors: Part of the power filtering system, which smooth out voltage spikes from USB or external power, stabilize 5V/3.3V supply, and help avoid resets and weird glitches if motors/sensors draw sudden current.
"47" = 47 µF capacitance
"25V" = max voltage rating
Voltage regulator:
[6]
[6] Pinouts:
10, 31, 61 and 80 = VCC pins supplied to board
11, 32, 62, 81,99 = GND pins used as reference gnd
98 = Aref used for ADC supply
100 = AVCC for analog devices to get power
33, 34 (XTAL) = connected to crystal oscillator
XTAL1 (Pin 34) = clock input
XTAL2 (Pin 33) = clock output
30 = RST pin
The ATMEGA2560 has fixed port groups (A–L):
pin 71-78 (PA0-PA7) = Port A pins
pin 19-26 pins = Port B pins
pin 53-60 (PC0-PC7) = Port C pins
pin 43-50 (PD0-PD7) = Port D pins
pin 2-9 (PEO-PE7) = Port E pins
pin 90-97 (PD0-PD7) = Port F pins
pin 28, 29, 51, 52, 70 (PG0–PG5) = Port G pins (not full 8 bits)
pin 12-18, 27 (PH0-PH7) = Port H pins
pin 43-69, 79 (PJ0-PJ7) = Port J pins
pin 82-89 (PK0-PK7) = Port K pins
pin 35-42 (PL0-PL7) = Port L pins
Note: ATMEGA2560 has no Port 'I', with only GPIO ports A, B, C, D, E, F, G, H, J, K, L, just for historical design choices.
High-Pin Count Projects: The 54 I/O pins (15 are PWM) are ideal for controlling numerous motors, sensors, LEDs, and displays simultaneously.
Complex Robotics: The extra memory and pins allow for controlling multiple motors, servos, and sensors in advanced robotic arms or autonomous vehicles.
3D Printers & CNC Machines: The MDB is often used in 3D printing and DIY CNC routers (e.g., RepRap shields) to control stepper motors, heaters, and sensors.
Large-Scale IoT and Automation: Ideal for projects requiring multiple serial devices (4 UARTs available) or massive sensor arrays, such as smart home automation or weather stations.
Shield Compatibility: It is compatible with most shields designed for the Arduino Uno, but provides more space for complex prototyping.