M5 is a makerspace for ECE undergraduate students. It is located on the University of Massachusetts Amherst campus in Marcus Hall, Room 5.


The M5 tutorials are intended to provide more extensive information to help someone better understand how to use the software and hardware examples listed in the Modules section.

*More Arduino Links


LED Blink Tutorial. This tutorial introduces the Digital Out feature of the Arduino and some of the most basic programming elements.


Basic Digital Input Tutorial. Use a Momentary Pushbutton Switch to turn ON and OFF an LED.


Voltage Divider Tutorial. Use a voltage divider as a method of expanding the capability of one Analog Input to read the state of Multiple swithes.

Analog In with a Potentiometer Tutorial. Use a potentiometer as a variable voltage divider to control the PWM output of an Arduino to adjust the flash rate of an LED.

CdS and Flex Sensor Tutorial. Explore using additional Sensors, such as a CdS PhotoCell and a Flex Sensor, to control a circuit in th same way as a potentiometer.


Pulse Width Modulation (PWM) Tutorial. Use an Arduino PWM output to control the brightness of an LED corresponding to a potentiometer analog input.


Multiple LEDs on one Output Pin Tutorial. The Arduino Digital Outputs can power an LED, but not much more than that. Even connecting a few LEDs to one Digital Output Pin may exceed the current the Arduino is able to source. This tutorial uses a 2N3904 transistor to power multiple LEDs on one Digital Output Pin.

Controlling a Solenoid, Motor or Fan with a Transistor. Sometimes you may want to power a larger DC current device (something that draws more current than a few LEDs). This tutorial introduces the TIP122 transistor circuit, which can be used to switch power on and off for higher current DC devices.

Controlling High Current Devices with a Relay. A relay is much slower than using a transistor to switch power to a device, but offers advantages in certain situations. A primary advantage in using a relay over a transistor is that it mechanically isolates the circuit being switched from the circuit that is controlling the relay (a transistor needs to share a common ground with the power supply of the higher current device.) This can be useful, especially in situations where you need to control an AC current device with an arduino.

DC Motor (Speed and Direction) with H-Bridge. This is a two part tutorial. The first section demonstrates the use of an H-Bridge to control the direction of rotation of a DC motor (forward and reverse.) The second section of the tutorial introduces the use of an Arduino PWM output used with the H-Bridge to control the DC motor speed in both directions.

Stepper Motor Controller Tutorial. The ULN2003A chip is used with the Arduino to drive and control a unipolar stepper motor.


Simple MIDI-Out Tutorial. The standard MIDI (Musical Instrument Digital Interface) Out circuit is explored with the use of Arduino Code to generate pseudo-random MIDI events. This circuit can be interfaced with any standard MIDI sound device (or with a computer based software-synth) to generate sounds.

Analog In to MIDI Out Circuit Tutorial. A potentiometer and a momentary pushbutton switch are used to generate MIDI note on and off information. Like the previous MIDI tutorial, this circuit can be interfaced with any standard MIDI sound device (or computer based software-synth) to generate sound based on the Arduino Analog Input (potentiometer) and Digital Input (momentary switch).

PWM Sound Generator. Use the PWM capabilities of the Arduino to generate audio tones with a Piezo Speaker. Also included in this tutorial is a low pass filter circuit, which converts the Arduino output to a line level audio signal, and also another circuit, which includes a low pass filter and audio amplifier driving a small 8 Ohm speaker


Parallel to Serial Shift Register (input expansion)

AD5206 Digital Potentiometer. This component has 6-channels of 10K OHM potentiometers, each of which can be individually controlled using the Arduino's built in SPI (Serial Peripheral Interface).

MAX7221 LED Driver (SPI Control)


Click here if you are looking for the tutorial for the Arduino Starter Kit 1 (March 2010).