the mac-o-lantern is alive!
The mac-o-lantern thinks it has a little Pentium heart <3. So to light up your pumpkin you need to treat it just like a computer. When you’re not using it, it’s in sleep mode, fading in and out (breathing). To wake it up you need to push its right patch, and a white light will turn on (simulating when it’s on). Then it has a little mouse. When you move it over the switch, it will connect to the internet (dial-up connection tones). Then, you need to click the button on its left patch, and it will download the Halloween software. A beeping sound indicates when the download is done. When it finishes downloading… you can now turn off the lights and the pumpkin will light on, and it will be ready to light up the night!
The connections:
And here’s my baby code:
// DECLARE BREATHE int ledBreathe = 6; int buttonPin = 3; // the number of the pushbutton pin int buttonState = 0; // variable for reading the pushbutton status int brightness = 0; // how bright the LED is int fadeAmount = 5; // how many points to fade the LED by // DECLARE REED + SPEAKER SWITCH int reedPin = 2; // the number of the reed switch pin int reedState = 0; // variable for reading the reed status int speaker = 8; // DECLARE BUTTON CLICK int buttonStateD = 0; // variable for reading the pushbutton status int buttonPinD = 13; // the number of the pushbutton pin int ledGreen1 = 4; // the number of the LED pin int ledGreen2 = 5; // the number of the LED pin int ledGreen3 = 12; // the number of the LED pin int ledGreen4 = 7; // the number of the LED pin // DECLARE LIGHT SENSOR int analogPin = 0; int ledFire1 = 10; int ledFire2 = 9; int ledFire3 = 11; int val = 0; // ------------------------------------------------------------- // ------------------------------------------------------------- void setup(){ Serial.begin(9600); // BREATHE pinMode(ledBreathe, OUTPUT); pinMode(buttonPin, INPUT); // REED SWITCH pinMode(speaker, OUTPUT); pinMode(reedPin, INPUT); // BUTTON CLICK pinMode(ledGreen1, OUTPUT); pinMode(ledGreen2, OUTPUT); pinMode(ledGreen3, OUTPUT); pinMode(ledGreen4, OUTPUT); // initialize the pushbutton pin as an input: pinMode(buttonPinD, INPUT); // LIGHT SENSOR pinMode(ledFire1, OUTPUT); pinMode(ledFire2, OUTPUT); pinMode(ledFire3, OUTPUT); } // ------------------------------------------------------------- // ------------------------------------------------------------- void loop(){ // LIGHT SENSOR val = analogRead(analogPin); // Read the value (amount of light) from photocell Serial.println(val); click(); breathe(); sound(); if(val digitalWrite(ledGreen1, LOW); digitalWrite(ledGreen2, LOW); digitalWrite(ledGreen3, LOW); digitalWrite(ledGreen4, LOW); analogWrite(ledFire1, random(120)+135); analogWrite(ledFire2, random(120)+135); analogWrite(ledFire3, random(120)+135); delay(random(100)); Serial.println("high"); } else{ analogWrite(ledFire1, LOW); analogWrite(ledFire2, LOW); analogWrite(ledFire3, LOW); Serial.println("low"); } } /* ------------------------------------------------------------- ALL THE MAC-O-LANTERN FUNCTIONS ------------------------------------------------------------- */ // BREATHE FUNCTION void breathe(){ buttonState = digitalRead(buttonPin); if (buttonState == LOW){ analogWrite(ledBreathe, brightness); brightness = brightness + fadeAmount; if (brightness == 0 || brightness == 255) { fadeAmount = -fadeAmount ; } delay(30); } if (buttonState == HIGH) { digitalWrite(ledBreathe, HIGH); delay(5000); } } // ------------------------------------------------------------- // CLICK FUNCTION void click(){ buttonStateD = digitalRead(buttonPinD); if (buttonStateD == HIGH) { digitalWrite(ledGreen1, HIGH); delay(1000); digitalWrite(ledGreen2, HIGH); delay(2000); digitalWrite(ledGreen3, HIGH); delay(3000); digitalWrite(ledGreen4, HIGH); delay(1000); digitalWrite(ledGreen1, LOW); digitalWrite(ledGreen2, LOW); digitalWrite(ledGreen3, LOW); digitalWrite(ledGreen4, LOW); delay(500); digitalWrite(ledGreen1, HIGH); digitalWrite(ledGreen2, HIGH); digitalWrite(ledGreen3, HIGH); digitalWrite(ledGreen4, HIGH); delay(500); digitalWrite(ledGreen1, LOW); digitalWrite(ledGreen2, LOW); digitalWrite(ledGreen3, LOW); digitalWrite(ledGreen4, LOW); delay(500); digitalWrite(ledGreen1, HIGH); digitalWrite(ledGreen2, HIGH); digitalWrite(ledGreen3, HIGH); digitalWrite(ledGreen4, HIGH); delay(500); digitalWrite(ledGreen1, LOW); digitalWrite(ledGreen2, LOW); digitalWrite(ledGreen3, LOW); digitalWrite(ledGreen4, LOW); delay(500); digitalWrite(ledGreen1, HIGH); digitalWrite(ledGreen2, HIGH); digitalWrite(ledGreen3, HIGH); digitalWrite(ledGreen4, HIGH); tone(speaker, 2000); delay(100); noTone(speaker); delay(100); tone(speaker, 3000); delay(100); noTone(speaker); delay(100); } else{ noTone(speaker); } } // ------------------------------------------------------------- // REED PLUS SPEAKER FUNCTION void sound(){ reedState = digitalRead(reedPin); if (reedState == HIGH) { tone(speaker, 200); delay(2000); tone(speaker, 500); delay(2000); tone(speaker, 800); delay(2000); tone(speaker, 1100); delay(4000); tone(speaker, 1600); delay(500); } else{ noTone(speaker); } } // -------------------------------------------------------------
Reply