Arduino at the Crucible

Important Announcements

Reminder:We are extending our class hours to make up for a missing class:

November 13 – Class from 10-2
November 20: Class from 10-2
November 27: No class, Thanksgiving
December 4: Class from 10-2 (last class)


  1. Schematic for your Arduino
  2. Arduino website
  3. Sparkfun, Adafruit, Jameco
  4. Recommended tutorials are at adafruit, arduino, sparkfun, todd kirt, tronix stuff (links coming)

Week 1

  • Introduction
  • Arduino IDE installation
  • First program with IDE
  • Introduction to programming
  • time permitting, 4 basic interfaces


  1. Research Arduino projects online and bring to class 5 that inspire you
  2. Review this tutorial for the Blink sketch that we did in class
  3. Try this tutorial which will teach you how to control the brightness of an LED. Substitute the 470 Ohm resistor I gave you in place of the 220 Ohm they quote.

Replies to questions that came up in class (links will be added soon):

    1. One of you is interested in creating objects that respond to motion. By this I assume you mean motion of someone in front of the piece.
      Before we get into the specifics of motion sensing, you should be aware that almost all sensors are not 100% reliable, that is, sometimes they miss something they are supposed to detect (“false negative”), and sometimes they mistakenly sense something that didn’t really happen (“false positive”). Motion sensors certainly exhibit both of these conditions. If your project can tolerate or even benefit from a certain amount of random behaviour, this is not an issue. If on the other hand this would be a problem, there are a variety of techniques to reduce these errors, such as more complicated software (for instance, a 1 second blip in an otherwise empty room is probably an error) or using multiple sensors to corroborate data.
      There are basically 3 official (and one unofficial) way of detecting motion:
      1. Passive InfraRed (PIR) motion sensor: This is the type of motion sensor used in burglar alarms. They tend to have a rather wide range and a they don’t tell you how far the person is, only that someone is or is not moving. They are tuned to detect motion and not presence, so if your viewer stands still the sensor will stop seeing them.
      2. Infrared Distance Measuring sensors: This sensor is designed to measure the distance to any object in front of it. It has a very narrow beam (like a laser pointer) and thus will miss something that is standing just to the side. They are available in different ranges
      3. Ultrasonic Distance Measuring sensors: Like the IR distance measuring sensors, but with a much wider field of vision, like a wide cone. Will report the distance to the nearest object in its field of vision.
      4. The unofficial sensor is the ubiquitous and very  inexpensive light sensor. As we will learn in class, these are very sensitive to any variations in light, so that a person walking in front of a piece can not avoid being detected. There is not information about distance or motion, just that something has changed. Of course if the lights change or the sun goes down this is also detected. Nonetheless, in my experience this sensor is often the best choice
    2. Another of you wanted to drive many LEDs. We’ll talk more in class, but you might want to visit the Tronixstuff tutorials  and read #40a – “More Digital I/O”.  It’s a pin extender, MCP23017, that gives you 16 more pins.  You can cascade as many as you need.  Use your original idea of 1 pin high and 1 pin low.  Both pins low = off.  The MCP23017 is byte addressable so you can turn on off 4 LEDs at a time if necessary.

Week 2

  1. Homework: Did you do any/all of the 4 basic interfaces
  2. Review:
    1. Basic electronics
    2. Basic microcontrollers
    3. Basic programming
  3. Lecture:
    1. electromagnetism and motors (very briefly)
  4. Lab: stepper motorThis lab is an exercise in using on line resources to connect a stepper motor and driver to Arduino. Resources:
    1. Connecting Unipolar Stepper Motor
    2. Controlling Stepper Motor with a Parallel Port
    3. Driving stepper motor using ULN2003
    4. Stepper Motor Controller by ULN2003
  5. Discussion  of lab:
    1. Why do we need ULN2003
    2. Programming concepts
  6. Further topics:
    1. Further IO and sensors
    2. Serial communications
    3. Intermediate programming concept

Week 3

  1. Sensors
  2. Review the schematic of RBB
  3. Current limit and review need for ULN2003
  4. Communication with computer
  5. Motors
    1. Review PM, BLDC, stepper
    2. Servo
    3. AC: reversable, non-reversable, capacitor (can’t control directly from Arduino)
  6. Relays
  7. Further programming concepts: Blink without Delay

Lab choices:

  1. Servo motor (challenge: pair of switches to control direction)
  2. Transistor to control high current light
  3. Graph or bouncing ball
  4. Other sensor
  5. Relay
  6. Speake


  1. A really great tutorial on microcontrollers in general, with strong references to Arduino
  2. Excellent series of  Arduino tutorials, 40 tutorials at last count

Week 4

Week 5

Continue Learning After Class

One Response to “Arduino at the Crucible”

  1. Dan Hossom Says:

    I think adding another hour to the classes would work out quite well! My volunteer shift starts then, so I’m going to be around anyway, and it seems to be quite flexible! I’m for the idea.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: