Now that I've got addicted to steampunk I've built my first device - a USB stick made from copper:
It seems that it needs still some pipes and wires!
Thursday, September 27, 2012
Saturday, August 25, 2012
Wednesday, August 15, 2012
LED bar shield, Part II
F... I've pimped the LED bar shield with a second shift register, but there seems to be a bug with the soldering. The LED bar shows the first pattern, and nothing more happens.
Saturday, June 16, 2012
LED bar shield, Part I
The LED bar shield shall hold two shift registers 74HC595 and a LED bar with 20 LEDs; 16 LEDs of it will be used. The sketch shall choose randomly one of several patterns and run it five to ten times. Then it selects another one.
The first version of the shield was a disaster - the design was much too small. (And the distance were too small to be soldered by a smoker with old eyes ;-)). So I redesigned it with a larger PCB.
Here are some pictures of the first stage populated with one shift register:
The first version of the shield was a disaster - the design was much too small. (And the distance were too small to be soldered by a smoker with old eyes ;-)). So I redesigned it with a larger PCB.
Here are some pictures of the first stage populated with one shift register:
Sunday, May 27, 2012
First shield: adaptor
After gambling around with shift registers (74HC595) I thought it could be a good idea to build the first shield. Two shift registers shall control the LEDs of a Knightbright LED bar graph.
The first step was an adaptor shield - thanks to Erik Bartmann for this idea (für die deutsch sprechenden Leser: "Die elektronische Welt mit Arduino entdecken" ist eine empfehlenswerte Lektüre). This way I have only one shield with bended pins, and use my future shields with the usual 2.54 mm distance of every pin header.
First step: milling the paths of the striped printed board.
Second step: soldering the pin headers.
Here you see the first header already soldered and the second one in position:
Finished, but not cut to size:
The first step was an adaptor shield - thanks to Erik Bartmann for this idea (für die deutsch sprechenden Leser: "Die elektronische Welt mit Arduino entdecken" ist eine empfehlenswerte Lektüre). This way I have only one shield with bended pins, and use my future shields with the usual 2.54 mm distance of every pin header.
First step: milling the paths of the striped printed board.
Second step: soldering the pin headers.
Here you see the first header already soldered and the second one in position:
The two headers on the left side are only to keep the board parallel to the desk.
Finished, but not cut to size:
Now it's time to start with the "LED bar graph shield". At the moment there are only the headers:
And this is the result:
Thursday, May 24, 2012
Thursday, May 3, 2012
Evil Spider 2
This is a new version of the evil spider. I've replaced the LED in the head with two smaller LEDs in the eyes. This way the brightening is easier to see.
Some close-up photos are at the end of this post - if you fear spiders, scroll slowly down to the image with breadboard ;-)
The source code is rather simple:
Some close-up photos are at the end of this post - if you fear spiders, scroll slowly down to the image with breadboard ;-)
The source code is rather simple:
/* Spider - sketch for spider control
*
* 12. Apr 2012 danimath created
* 02. May 2012 danimath added blinking
*
**********************************************************************/
byte usPin = 8; // ultrasound pin
unsigned long usDuration; // ultrasound duration
unsigned int cm; // roughly calculated cm
byte ledPin = 3; // LED pin
int brightness; // LED brightness
int min_threshold = 15 ; // treshold for blinking LED
const int max_threshold = 100; // treshold for brightning LED
const int mesDelay = 250; // msec between measurements
//#define DEBUG
/* setup - initialise things
*
**********************************************************************/
void setup ()
{
#ifdef DEBUG
Serial.begin (9600);
#endif
analogWrite (ledPin, 255);
usDuration = getDist (); // warm up measurement
delay (2500);
analogWrite (ledPin, 0);
}
/* loop - the ever lasting loop
*
**********************************************************************/
void loop ()
{
usDuration = getDist ();
cm = usDuration / 58; // int is enough for this
#ifdef DEBUG
Serial.print ("usDuration: ");
Serial.println (usDuration);
#endif
if (cm < min_threshold)
{
if (brightness == 0)
brightness = 255;
else
brightness = 00;
}
else if (cm < max_threshold)
brightness = map (cm, 0, max_threshold, 200, 0);
else
brightness = 0;
analogWrite (ledPin, brightness);
delay (mesDelay);
}
/* getDist - gets the distance from SRF05
*
* return value: micro seconds
*
**********************************************************************/
unsigned long getDist ()
{
unsigned long retVal;
pinMode (usPin, OUTPUT);
digitalWrite (usPin, LOW);
delayMicroseconds (2);
digitalWrite (usPin, HIGH);
delayMicroseconds (10);
digitalWrite (usPin, HIGH);
pinMode (usPin, INPUT);
retVal = pulseIn (usPin, HIGH);
#ifdef DEBUG
Serial.print (retVal);
Serial.print (", ");
Serial.print (retVal / 58.0);
Serial.println (" cm");
#endif
return (retVal);
}
The hardware is just as simple as the software. This image is created with Fritzing. Of course I didn't use a breadboard in the final construction. 

As promised here are the close-ups:
Subscribe to:
Posts (Atom)