Throughout the Interactive media workshop module of the course, Mikael Fernstrom has introduced us to the Arduino. We were given a basic kit consisting of the Arduino, Piezo sensor, a potentiometer, resisters, light dependent resistors and wires.
Before we began attaching electrical components and programming the Arduino we were introduced to the fundamentals of electronics. We looked at measurements and schematics examples of a circuit layouts of different components e.g switches, capacitors, sensors etc. Once familiar with the logic of electronics the experimentation began.
The first program manipulated the piezo sensor (normally a pressure sensor) to play a melody. Following that we re-appropriated examples given by the Arduino programming environment. e.g. to accept analog inputs and outputs, to change the LED blink rate using the light dependent resister and to change the LED blink rate using the potentiometer as a dimmer switch.
For the 8bit bin project we needed a number of digital inputs and outputs to control 25 LEDs. After taking a look into the technical aspects of our build we realized that the Arduino only has 13 outputs and we need 32. To over come this we have been researching a method known as multiplexing and charlieplexing. This approach allows us to regulate the 5 volts that the Arduino allocates to each pin on a clock to a number of LED’s using a shift register. Basically each LED is attached to one pin of the shift register and it is counting up to 8 bits and lighting each one incrementally. So fast that the eye can’t see the LED turn on and off. This is a very simplified explanation of multiplexing. Below is an example of how we accomplished this.
Due to time constraints and resources the group began researching other methods of controlling a large number of LEDs. After some reasearch the internet we discovered the existence of the Arduino Mega. The Mega has 54 I/O pins which was enough to run a 5×5 grid of LEDs and Earcons.
We also re-appropriated an Airwick IR motion sensor to detect when rubbish is being placed in the bin. We programmed the mega to accept the sensor into digital pin 2 and play a random LED sequence once the sensor has been activated. From a little help from our friends we discovered Ithat port 1 goes to 3.3v, port 2 to ground, and port 6 sends sensor data.