Arduino Due : Pin Configuration, Interfacing & Its Applications

Arduino board is an open-source hardware and software platform that is designed with a circuit board including a microcontroller and other interfaces supporting different components connecting to it. This board can be simply programmed with the help of an Integrated Development Environment (IDE) which is used for writing & uploading the code to the board. Arduino is a flexible microcontroller board used for developing different electronics projects. There are different types of Arduino boards like Arduino Uno, Nano, Micro, Leonardo, nano Every, MKR Zero, Uno WiFi, Due, Mega 2560, Lilypad, etc. So this article provides information on one of the types of Arduino board namely Arduino Due – working with applications.


What is Arduino Due?

Arduino Due is the most powerful Arduino development board in the Arduino series. This Arduino board is a beginner board including many features with excellent processing speed, so used in advanced applications. This board was developed on an ARM series controller whereas other Arduino boards were developed based on an ATMEGA series controller.

Arduino’s due board is based on the 32-bit ARM core microcontroller. This board is available with 54 digital I/O pins where 12 pins are used as PWM o/ps, 12-analog inputs, UARTs -4, an 84 MHz CLK, DAC -2, TWI-2, an SPI header, a power jack, a JTAG header, an USB OTG connection, and a RESET button & can ERASE button.

The Arduino Due board can be simply connected to any computer by a micro-USB cable & power through a battery or an AC-to-DC adapter to get started. This board is well-suited with all types of Arduino shields which work at 3.3V.

Specifications

The specifications of Arduino Due include the following.

  • Microcontroller is SAM3X8E 32-bit ARM controller.
  • The operating voltage is 3.3V.
  • The maximum current throughout every I/O pin is 3mA and 15mA.
  • The maximum current drawn from all I/O pins is 130mA.
  • Flash memory is 512K bytes.
  • 16Kbyte EEPROM.
  • 96Kbytes Internal RAM.
  • The internal Clock Frequency is 12 Mhz.
  • The external Clock Frequency is 84 Mhz.
  • Operating temperature ranges from -40ºC to +85ºC
  • Recommended i/p voltage ranges from 7V to 12V.
  • Input voltage ranges from 6 to 20V
  • Digital I/O Pins – 54.
  • Analog i/p pins – 12.
  • Analog o/p Pins – 2.

Arduino Due Pin Configuration

The pin configuration of Arduino Due is shown below.

Pin Configuration of Arduino Due
                                                  Pin Configuration of Arduino Due

Power

The Arduino Due board can be power-driven through the USB connector or an external power supply like a battery or AC to DC adapter. So the power source is chosen automatically. The power pins of Arduino Due are +3.3V, +5V, Vin & GND.

  • Vin is the input voltage pin where the voltage is supplied through this pin.
  • 5V pin outputs a regulated 5V using the voltage regulator on the Arduino board.
  • 3.3V voltage supply is generated through the onboard regulator. This regulator simply provides the power supply to the SAM3X microcontroller.
  • There are 5 GND pins are available on the board.
  • The IOREF pin on the Arduino due board simply provides the voltage reference through which the microcontroller works. The voltage of the IOREF pin can be ready by properly configuring the shield & choose the suitable power source or allowing voltage translators on the o/ps for functioning through the 5V (or) 3.3V.

Communication Interface

UART: UART is a “Universal Asynchronous Receiver Transmitter”. This Interface is mainly used for programming PRO MINI.

SPI: SPI is a Serial Peripheral Interface that is used to transmit the serial data between the microcontrollers & one or above peripheral devices very efficiently. Arduino due includes four SPI pins SCK, SS, MOSI, and MISO.

TWI: TWI is a Two Wire Interface, used for connecting peripherals.

CAN: CAN is a Controller Area Network Interface used mainly for providing communication between controllers.

SSC: SSC is a Synchronous Serial Communication Interface mainly used for Audio & Telecom Applications.

Memory

The SAM3X has two blocks of 256 KB (512 KB) of flash memory to store the code. The boot loader is pre-burned from Atmel in the factory & is simply stored in a dedicated ROM. The SRAM is available with 96 KB in two 32 KB & 64 KB contiguous banks. All the existing memory can be directly accessed as a flat addressing space like RAM, ROM & Flash.

ERASE Button

An onboard ERASE button is used for erasing the SAM3X Flash memory. So this will eliminate the presently loaded data from the microcontroller unit. For erasing, press & hold the Erase button for some time when the Arduino board is power-driven.

Analog Inputs (A0 to A11):

The Arduino Due includes 12 analog inputs and each pin provides 12 bits of resolution. These analog pins are simply used for reading the value of the analog sensor which is connected to the Arduino board. Each analog pin on the board i connected to an inbuilt ADC with a 12-bit resolution.

DAC Pins (DAC0 to DAC1):

These two pins provide analog output with 12-bit resolution. These two pins are mainly used for creating an audio output with the Audio library.

AREF

This pin is simply connected to the SAM3X controller’s analog reference pin throughout a resistor bridge. To utilize this pin, the BR1 resistor should be de-soldered from the printed circuit board.

RESET

This pin is used to reset the controller & start the program execution from the beginning.

PWM Pins (2 to 13)

The PWM pins from 2 to 13 are from the set of digital pins where every pin gives 8-bit PWM o/p. The PWM o/p value simply varies from 0 to 5 volts.

JTAG header: Common interface of hardware that helps us to directly communicate with external chips of our board. 4 pins are used for this purpose labeled as TCK, TD0, TMS, and TDI.

Arduino Due Programming

Generally, all types of Arduino Boards are simply programmed with IDE Arduino Software. This software is very simple to learn and use without much complexity. This software is readily available so we can directly download it from the official site & choose the Arduino board you wish to work on. This board doesn’t need an external burner like a bootloader to burn the code on board. Arduino software perfectly works through common operating systems such as Windows, MAC, or Linux.

Arduino Due board is well-matched with approximately all shields which are mainly designed for other kinds of Arduino boards. The most significant shields are; Motor shield, Ethernet shield, and WiFi shield.

LM35 Temperature Sensor Interfacing with Arduino Due

The LM35 temperature sensor interfacing with Arduino due is shown below. The LM35 temperature sensor is a precision IC, whose o/p voltage is proportional linearly to the Celsius temperature. Thus, this IC has a benefit above linear temperature sensors calibrated within Kelvin because the user is not necessary to deduct a large stable voltage from its o/p to get convenient centigrade scaling.

The LM35 sensor does not need any external calibration otherwise trimming to give typical accuracies of ±1/4°C at room temperature & ±3/4°C above a complete +150°C temperature range.

The LM35 temperature sensor includes three pins +5V, GND, and output. The connections of the LM35 sensor to the Arduino due board follow as;

LM35 Sensor Interfacing with Arduino Due Board
                                   LM35 Sensor Interfacing with Arduino Due Board

The Vcc pin of the temperature sensor is connected to the 3v3 pin of the Arduino board.
The GND pin of the temperature sensor is connected to the GND pin of the Arduino board.
The output pin of the temperature sensor is connected to the A0 pin of the Arduino board.

Code

const int analogIn = A0;
int RawValue= 0;
double Voltage = 0;
double tempC = 0;
double tempF = 0;

void setup(){
Serial.begin(9600);
}
void loop()

{
RawValue = analogRead(analogIn);
Voltage = (RawValue / 1023.0) * 3300; // 5000 to get millivots.
tempC = Voltage * 0.1;
tempF = (tempC * 1.8) + 32; // conver to F
Serial.print(“Raw Value = ” ); // shows pre-scaled value
Serial.print(RawValue);
Serial.print(“\t milli volts = “); // shows the voltage measured
Serial.print(Voltage,0); //
Serial.print(“\t Temperature in C = “);
Serial.print(tempC,1);
Serial.print(“\t Temperature in F = “);
Serial.println(tempF,1);
delay(500);
}

The output will be displayed on the serial monitor. So open the serial monitor to check the outputs like the following.

Raw Value = 69 milli volts = 220 Temperature in C = 22.1 Temperature in F = 72.5
Raw Value = 70 milli volts = 227 Temperature in C = 23.6 Temperature in F = 73.6
Raw Value = 71 milli volts = 230 Temperature in C = 23.9 Temperature in F = 74.2
Raw Value = 72 milli volts = 234 Temperature in C = 24.2 Temperature in F = 74.8
Raw Value = 73 milli volts = 236 Temperature in C = 24.5 Temperature in F = 75.4
Raw Value = 74 milli volts = 240 Temperature in C = 24.9 Temperature in F = 76.0
Raw Value = 75 milli volts = 243 Temperature in C = 25.2 Temperature in F = 76.5
Raw Value = 76 milli volts = 246 Temperature in C = 25.5 Temperature in F = 77.1
Raw Value = 77 milli volts = 249 Temperature in C = 54.8 Temperature in F = 77.7

How Arduino Due is Different from the Rest of the Arduino Boards?

Arduino Due board is different as compared to other types of Arduino boards in terms of voltage level. So the microcontroller within Arduino due board simply works at 3.3 V rather than 5 V which is common in other Arduino boards. If you use a higher voltage (>3.3 V) for the pins of the Arduino Due board, then the board may get damaged. The processor which is used in Arduino due board is the fastest processor as compared to other boards. The memory size is maximum in Arduino due board as compared to other boards. The Arduino due board does not have any on-board EEPROM & is the more expensive board. The Due board includes a large no. of pin headers to connect to several digital I/O and is also pin-compatible through typical Arduino shields.

Arduino Due supports artificial intelligence & algorithms. Like the Arduino Mega board, possessing a similar number of ports, only much more powerful, we can use this Arduino due board in projects to create artificial intelligence (AI) for mobile robots. So, if one want to handle complex algorithms, otherwise to make a robot more reactive, then Arduino Due board would be a right one.

Advantages

The main advantages of Arduino Due include the following.

  • It is a very powerful 32-bit, 84MHz processor.
  • The processing speed within instructions for each second is high.
  • Arduinos are mainly designed to make the controller more accessible.
  • Arduino due can produce 114 kilocycles each second.
  • Its programming language is simple.
  • Its price is less as compared to Mega.

Disadvantages

The main disadvantages of Arduino due include the following.

  • These boards are a little bit bulky.
  • It covers more space.
  • Due is inferior because of the lack of shield compatibility.
  • Arduino due size is not convenient for many projects.
  • This board lacks Bluetooth & Wi-Fi capabilities.

Arduino Due Applications

The main Arduino due uses include the following.

  • The Arduino Due is mostly used for Arduino-based projects.
  • It is widely used in various applications where quick processing speed is the end result.
  • It is ideal for projects which need high computing power like drones which are controlled remotely to fly and require processing a lot of sensor data each second.
  • Automation in Industries.
  • Security Systems.
  • Virtual Reality-based Applications.
  • GSM & Android-based Applications.
  • Embedded System.
  • Automation system for home using IR.
  • Robotic arm.
  • Emergency Lighting.
  • Mobile lifter.
  • Home Automation System with Bluetooth.
  • Street lights auto intensity control.
  • Obstacle avoidance robot.
  • Vehicle for Wall Climbing.
  • Counter System for a Parking lot.

Thus, this is all about an overview of Arduino Due – working and its applications. This Arduino board is based on a 32-bit ARM core microcontroller, so it is suitable for larger-scale Arduino projects. This Arduino Due microcontroller board is based on the Atmel SAM3X8E Cortex M3 CPU. Here is a question for you, what is Arduino nano?