CS 341 – Lab 8
Computer Architecture and Organization
Getting a Buzz On (Without Alcoholic Beverages)
Equipment: Arduino UNO microcomputer, PC with Arduino IDE installed, and a USB cable.
3VDC Vibration Motor, Transistor, Diode, Capacitor, and Resistors
Your assignment is to connect a vibration motor to
the Arduino board. Disconnect the
Arduino board from the USB port. Connect
the appropriate wires to the Arduino UNO via the breadboard. NOTE:
When you are adding, changing, or removing wiring on a prototype connected to
the Arduino UNO board, always disconnect the power from the USB port and check
your wiring carefully before reconnecting it to the USB port. Otherwise, you may damage the Arduino board. If
you have any doubts, show your wiring to the TA before reconnecting it to the
There is a limit to the current that an Arduino
output pin can supply. In order to
provide the larger current needed to run the vibration motor, we use an
external 2N2222 transistor as a current controlling
switch. See this schematic diagram.
A transistor has three leads. The emitter lead is connected to ground. The base lead is connected to a control
source (the Arduino output pin). The
collector lead is connected through a load (the motor and the 20 Ohm resistor)
to the supply voltage. When no current
flows from the Arduino pin through the 1K resistor and base lead to ground
through the transistor, the transistor is turned off and no current will flow
through the 20 Ohm resistor and the load (the motor). When current does flow
from the Arduino pin through the 1K resistor and base lead to ground through
the transistor, the transistor turns on and current will also flow through the
20 Ohm resistor and the rest of the load (the motor). Hence the transistor is an electronically
Notice that there are two other components as part
of the load connected in parallel with the motor. Here’s why they are used.
When a motor is running, the commutator carrying
current to the spinning armature creates sparks which can cause voltage spikes. The capacitor absorbs any voltage spikes that
occur while the motor is running and protects the rest of the circuitry. Find and use a 0.1 microFarad
capacitor with help from this Capacitor Code Chart.
When a motor is shut off, there is a collapsing
magnetic field around the coils of wire in the motor. That creates a backward voltage in the
opposite direction to the normal voltage that makes the motor turn. The diode (1N4001)
absorbs (short circuits) this current and prevents it from flowing back through
and damaging the transistor or other parts of the circuit. Normally, the voltage is applied to the load
in the opposite direction to the direction that the diode carries current so
the diode does not carry any current when the motor is running.
Study the following picture for implementing the
circuit shown in the above schematic.
Connect the transistor emitter to ground and the collector to the load.
Connect the transistor’s base lead through a 1K Ohm resistor to the Arduino
digital output pin 3. Connect the
components of the load together and to the transistor collector and +5 volt
Connect the PC to the Arduino UNO board using the
USB cable. Open the Arduino.exe program.
Write the code for the sketch to turn on and off the digital signal on
In the setup function for this sketch, you need to
configure the pin 3 as an output.
In the loop function for this sketch, you need to
use calls to delay and digitalWrite to turn on and
off the signal to pin 3 according to a timed pattern. I chose 1 second on and 5 seconds off, but
you can choose your own timing.
If you have additional time, try connecting a sensor
from one of the earlier labs and use the input from the sensor to turn the
vibrator on and off.
As a team, write your lab report to explain what you
did, how you did it, and what you learned about interfacing hardware to a microprocessor
and its software (the “sketch”). Turn in
your report including a copy of your team’s final “sketch” at your next lab
___ / 10