Snap-O-Lantern – Halloween Project

Die Snap-O-Lantern ist ein kleines Projekt für zwischen durch. Die original Anleitung stamm von den evil mad sientists und basiert auf einem AVR Microcontroller. Da ich noch einen Arduino Micro hier rumliegen hatte habe ich die Snap-O-Lantern auf diese Plattform portiert.

DSCN0097

Der Aufbau ist sehr simpel und besteht im wesentlichen aus einem kleinen Zierkürbis, der gemäß Anleitung bearbeitet wird, einem Servo und ein paar LED’s. Abweichend von der Anleitung habe ich das Scharnier im Nacken zusätzlich mit Klebeband fixiert. Die Servos sind wie auf der Arduino Homepage beschrieben angeschlossen. Die LED’s sind nach Kürbissen gruppiert an zwei I/O-Pins angelötet. Um die Spannung an den LED’s etwas zu reduzieren wurden ein paar Vorwiderstände verbaut. Auf die kann aber unter Umständen auch verzichtet werden.

Code


#include

Servo kuerbis1; // create servo object to control a servo
Servo kuerbis2; // create servo object to control a servo
// a maximum of eight servo objects can be created

int pos = 100; // variable to store the servo position

int led1 = 11;
int led2 = 10;

void setup()
{
kuerbis1.attach(3); // attaches the servo on pin 9 to the servo object
kuerbis2.attach(5); // attaches the servo on pin 9 to the servo object
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
}

void loop()
{
digitalWrite(led1, HIGH);
delay(1000);
for(pos = 100; pos>=1; pos-=1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
kuerbis1.write(pos); // tell servo to go to position in variable 'pos'
delay(30); // waits 15ms for the servo to reach the position
}
delay(1500);
pos=100;
kuerbis1.write(pos); // tell servo to go to position in variable 'pos'
delay(1000);
digitalWrite(led1, LOW);

delay(1500); // waits 15ms for the servo to reach the positi
digitalWrite(led2, HIGH);
delay(1000);
for(pos = 100; pos>=1; pos-=1) // goes from 0 degrees to 180 degrees
{ // in steps of 1 degree
kuerbis2.write(pos); // tell servo to go to position in variable 'pos'
delay(30); // waits 15ms for the servo to reach the position
}
delay(1500);
pos=100;
kuerbis2.write(pos); // tell servo to go to position in variable 'pos'
delay(1000);
digitalWrite(led2, LOW);

delay(1500); // waits 15ms for the servo to reach the positi
}

Links

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>