📋 Overview
The Multi-Function Prototyping / Expansion Shield is an Arduino-compatible development board packed with on-board components and expansion headers. It plugs directly onto your Arduino UNO R3, Leonardo, or MEGA2560 using standard R3-type headers — no wiring or breadboard needed to get started.
This shield is ideal for beginners who want to experiment and learn without the hassle of wiring individual components on a breadboard. It's also a great general-purpose prototyping and development platform for more advanced users who need quick access to common I/O devices like displays, buttons, LEDs, and sensor interfaces.
Besides the range of components fitted directly to the shield, there are also numerous expansion headers providing convenient interfaces for external modules and components such as temperature sensors, infrared receivers, servos, and serial communication modules.
⭐ Key Features
- Plug-and-play compatibility — Seamlessly connects with Arduino UNO R3, Leonardo, and MEGA2560 controllers via standard R3 headers
- 4-digit 7-segment LED display — Driven by two cascaded 74HC595 serial-to-parallel shift registers
- 4× surface mount LEDs — In a parallel configuration, convenient for debugging and status indication
- 10K precision potentiometer — #3296 multi-turn analog adjustable trimpot for controlling LED brightness, voltage adjustment, steering angle, and more
- 3× independent push buttons — For convenient control input and user interaction
- Integrated piezo buzzer — For audible alerts and tone generation
- DS18B20 temperature sensor interface — One-wire digital temperature sensor header (sensor not included)
- LM35 temperature sensor interface — Integrated circuit analog temperature sensor header (sensor not included)
- Infrared receiver interface — Header for IR receiver module such as the 1838B (receiver not included)
- Servo interface — Header for connecting a standard hobby servo
- Serial interface header — For convenient connection to serial modules such as APC220 radio, Bluetooth, voice modules, and voice recognition modules
- Free PWM pins header — Breakout header for unused pins 5, 6, 9, and A5
- Reset button — On-board reset for your Arduino
📌 Pinout / Pin Mapping
The shield connects directly to your Arduino board via the standard R3 headers. All on-board components are hard-wired to specific Arduino pins as shown in the table below. Understanding this pin mapping is essential when writing your sketches.
On-Board Component Pin Assignments
| Component | Arduino Pin(s) | Notes |
|---|---|---|
| 7-Segment Display — Latch | D4 | 74HC595 latch (RCLK) |
| 7-Segment Display — Clock | D7 | 74HC595 clock (SRCLK) |
| 7-Segment Display — Data | D8 | 74HC595 serial data (SER) |
| LED 1 | D13 | Active LOW |
| LED 2 | D12 | Active LOW |
| LED 3 | D11 | Active LOW |
| LED 4 | D10 | Active LOW |
| Potentiometer | A0 | 10K multi-turn trimpot, analog input |
| Button S1 | A1 | Active LOW (pressed = LOW) |
| Button S2 | A2 | Active LOW (pressed = LOW) |
| Button S3 | A3 | Active LOW (pressed = LOW) |
| Piezo Buzzer | D3 | Digital on/off via transistor driver |
| DS18B20 / LM35 Sensor | A4 | Shared temperature sensor header |
| Infrared Receiver | D2 | IR receiver module header |
| Serial Header (APC220) | D0 (RX), D1 (TX) | Shared with Arduino USB serial |
| Reset Button | GND (Reset) | Resets the Arduino board |
Free Pins (Available for Your Projects)
The following pins are broken out to a separate header on the shield and are available for connecting your own components:
- D5 — PWM capable
- D6 — PWM capable
- D9 — PWM capable (also commonly used for the servo interface)
- A5 — Analog input / digital I/O
📝 Note: Pins D0 and D1 are shared with the Arduino's USB serial connection. If you use the serial header (e.g., for an APC220 or Bluetooth module), you will not be able to use the Serial Monitor at the same time. Disconnect serial modules before uploading new sketches.

🔧 Setup / Getting Started
Getting up and running with this shield is straightforward — just plug it in and start coding.
- Align the shield — Carefully align the shield's pin headers with your Arduino UNO, Leonardo, or MEGA2560 board. The headers are keyed to fit only one way.
- Press firmly — Push the shield down gently but firmly until all pins are fully seated in the Arduino headers.
- Connect USB — Plug your Arduino into your computer via USB cable.
- Open the Arduino IDE — Launch the Arduino IDE and select the correct board and port from the Tools menu.
- Upload a sketch — Try one of the example sketches below to verify everything is working.
💡 Tip: Start with the LED blink example below to confirm the shield is properly connected before moving on to more complex components like the 7-segment display.
🚀 Step 1: Blink the On-Board LEDs
This simple sketch blinks all four on-board LEDs in sequence. It's a great way to verify that the shield is properly connected to your Arduino.
/*
* Multi-Function Shield — LED Blink Test
* Envistia Mall - Product Support
*
* Blinks all four on-board LEDs in sequence.
* LEDs are active LOW (write LOW to turn ON).
*
* Connections (hard-wired on shield):
* LED 1 -> Pin 13
* LED 2 -> Pin 12
* LED 3 -> Pin 11
* LED 4 -> Pin 10
*/
int ledPins[] = {13, 12, 11, 10};
int numLeds = 4;
void setup() {
for (int i = 0; i < numLeds; i++) {
pinMode(ledPins[i], OUTPUT);
digitalWrite(ledPins[i], HIGH); // LEDs off (active LOW)
}
}
void loop() {
for (int i = 0; i < numLeds; i++) {
digitalWrite(ledPins[i], LOW); // Turn LED on
delay(250);
digitalWrite(ledPins[i], HIGH); // Turn LED off
delay(250);
}
}
How to Use:
- Copy and paste the sketch into the Arduino IDE.
- Select your board type (UNO, Leonardo, or MEGA2560) and COM port from the Tools menu.
- Click Upload. You should see the four LEDs blink in sequence from LED 1 to LED 4.
🚀 Step 2: Read the Buttons and Potentiometer
This sketch reads the three push buttons and the potentiometer, displaying their values in the Serial Monitor. It demonstrates basic digital and analog input reading.
/*
* Multi-Function Shield — Button & Potentiometer Reader
* Envistia Mall - Product Support
*
* Reads three buttons and the potentiometer,
* outputs values to the Serial Monitor.
*
* Connections (hard-wired on shield):
* Button S1 -> A1 (active LOW)
* Button S2 -> A2 (active LOW)
* Button S3 -> A3 (active LOW)
* Potentiometer -> A0
*/
void setup() {
Serial.begin(9600);
pinMode(A1, INPUT_PULLUP);
pinMode(A2, INPUT_PULLUP);
pinMode(A3, INPUT_PULLUP);
}
void loop() {
int potValue = analogRead(A0);
bool btn1 = !digitalRead(A1); // Invert: true = pressed
bool btn2 = !digitalRead(A2);
bool btn3 = !digitalRead(A3);
Serial.print("Pot: ");
Serial.print(potValue);
Serial.print(" | S1: ");
Serial.print(btn1 ? "PRESSED" : "---");
Serial.print(" | S2: ");
Serial.print(btn2 ? "PRESSED" : "---");
Serial.print(" | S3: ");
Serial.println(btn3 ? "PRESSED" : "---");
delay(200);
}
How to Use:
- Upload the sketch to your Arduino.
- Open the Serial Monitor at 9600 baud (Tools → Serial Monitor).
- Turn the potentiometer knob and press the buttons — you'll see the values update in real time.
🚀 Step 3: Sound the Buzzer
This sketch demonstrates how to use the on-board piezo buzzer to play simple tones. The buzzer is driven through a transistor on pin D3.
/*
* Multi-Function Shield — Buzzer Test
* Envistia Mall - Product Support
*
* Plays a simple tone pattern on the piezo buzzer.
*
* Connections (hard-wired on shield):
* Buzzer -> Pin 3 (via transistor driver)
*/
int buzzerPin = 3;
void setup() {
pinMode(buzzerPin, OUTPUT);
}
void loop() {
// Play three short beeps
for (int i = 0; i < 3; i++) {
tone(buzzerPin, 1000, 150); // 1kHz for 150ms
delay(300);
}
delay(2000); // Wait 2 seconds before repeating
}
How to Use:
- Upload the sketch to your Arduino.
- You should hear three short beeps repeating every 2 seconds.
- Try changing the frequency value (1000) to hear different tones — higher numbers produce higher-pitched sounds.
🔌 Expansion Headers / External Connections
The shield provides several expansion headers for connecting external modules and sensors. These headers break out the appropriate power and signal pins for easy plug-in connections.
DS18B20 / LM35 Temperature Sensor Header
The temperature sensor header connects to Arduino pin A4. It supports either a DS18B20 one-wire digital sensor or an LM35 analog sensor (use one at a time, not both simultaneously). The DS18B20 requires the OneWire and DallasTemperature libraries.
Infrared Receiver Header
The IR receiver header connects to Arduino pin D2. It is compatible with the 1838B infrared receiver module. The IRremote library is required for decoding IR signals.
⚠️ Warning: The IR header pinout is compatible with the 1838B IR receiver. It is not directly compatible with the SFH506-38 receiver — always check the schematic before connecting external components.
Servo Interface
The servo header provides a convenient 3-pin connection (Signal, VCC, GND) for a standard hobby servo. The signal pin is typically routed to one of the free PWM pins on the expansion header.
Serial / APC220 Header
The serial header provides GND, 5V, RX (D0), and TX (D1) connections for serial communication modules such as APC220 radio modules, Bluetooth modules, voice modules, and voice recognition modules.
⚠️ Warning: The serial header shares pins D0 and D1 with the Arduino's USB serial connection. Disconnect any serial module from this header before uploading sketches, or you may experience upload errors.
⚠️ Important Notes
- USB connector clearance: Ensure that the LED display pins on the back of the shield do not touch and short against the Arduino UNO board's USB connector. You may need to place an insulator (such as a piece of electrical tape or a small piece of cardboard) between the two to prevent contact.
-
Active LOW LEDs: The four on-board LEDs are active LOW — write
LOWto turn them ON andHIGHto turn them OFF. This is the opposite of what many beginners expect. -
Active LOW buttons: The three push buttons read
LOWwhen pressed andHIGHwhen released. UseINPUT_PULLUPmode or the shield's built-in pull-up resistors. - Pin conflicts: Since the on-board components are hard-wired to specific pins, those pins are not available for other uses while the shield is attached. Plan your projects around the free pins (D5, D6, D9, A5).
- Servo power: If using a servo, be aware that powering it directly from the Arduino's 5V pin may cause voltage drops or resets under heavy load. For larger servos, consider an external power supply.
- Temperature sensor not included: The DS18B20 and LM35 temperature sensors are not included with the shield and must be purchased separately.
🎯 Typical Applications
- Learning Arduino programming with built-in I/O components
- Prototyping user interfaces with buttons, LEDs, and display
- Temperature monitoring projects (with external DS18B20 or LM35 sensor)
- IR remote control projects (with external 1838B receiver)
- Alarm and notification systems using the buzzer
- Servo control experiments
- Wireless communication prototyping via the serial header
- Rapid prototyping and proof-of-concept development
🏪 Where to Buy the Multi-Function Prototyping Expansion Shield
This shield is available at Envistia Mall.
- 📦 Fast US Shipping
- 🔄 Hassle-Free Returns
- 📧 Responsive Customer Support
📚 Additional Resources
For additional documentation, sample sketches, and project examples for this shield, visit:
- Multi-function Shield Code and Application Examples on Arduino Learning
- Shield Pinout Schematic (PDF)
This user guide is provided by Envistia Mall for informational and educational purposes only. While we strive for accuracy, specifications are based on manufacturer data and may vary. Always verify critical parameters with your own measurements. Envistia LLC (dba Envistia Mall) and the original manufacturer are not responsible for any damages, injuries, or losses resulting from the use or misuse of this product. Always follow proper electrical safety practices when working with electronic components.