One-in-one-out: “New Flame”

Group Members: Bob Rudolph and Kiran Matharu

Forget TV dinners. Forget “Netflix and chill”. NewFlame is the future of romance. Technology is now in every part of our lives. Your phone follows you everywhere, buzzing and glowing in the dark. Fitness bands record your every move, and smart watches tap on your wrist for attention. Netflix has changed dates forever. We think it’s time to bring technology a step further. Presenting NewFlame – “the future of romance.” NewFlame adds spice and excitement to your love life, instantly upping the ambiance when you turn off the lights by igniting a warm candle flame. All of this is done automagically. You don’t even need to think about it. The flickering yellow light cast by NewFlame is even enough to overcome the harsh glow of a cell phone screen, minimizing any intrusion that your texting will make during a fancy dinner.

New Flame is a candle that lights itself when the lights are turned off. It works with an ambient light sensor that controls a servo motor to push down and let go of a button on a lighter. The spark is produced by nichrome wire, a resistance wire that heats up very quickly when provided with large amounts of current. When the lights are off, the servo motor turns and pushes the button on the lighter to make it produce butane. The power source then drives current through the nichrome wire, which heats up and makes a flame with the butane. When the lights are turned back on, the power source stops providing current and the servo motor returns to its original state to turn off the butane.

YouTube / Bob Rudolph – via Iframely

12092222_679031605561609_502034981_n

12113037_679031618894941_1521258117_o

CandleDiagram_schem

 

#include <Servo.h>

#define PIN_IGNITE 14
#define PIN_GAS 15
#define PIN_SENSOR A5
#define PIN_SENSOR_5V A4 // optional – plug the sensor right into pins A3 – A5, with the output on A5.
#define PIN_SENSOR_GND A3

#define DARK_THRESHOLD 50

#define GAS_ON_POS 80
#define GAS_OFF_POS 55

boolean flaming = false;

float sensor_smoothed = 1023.0;

Servo servo_gas;

void setup()
{
pinMode(PIN_IGNITE, OUTPUT);
digitalWrite(PIN_IGNITE, LOW);
pinMode(PIN_SENSOR_5V, OUTPUT);
digitalWrite(PIN_SENSOR_5V, HIGH);
pinMode(PIN_SENSOR_GND, OUTPUT);
digitalWrite(PIN_SENSOR_GND, LOW);

servo_gas.attach(PIN_GAS);
servo_gas.write(GAS_OFF_POS);
Serial.begin(9600);
}

void loop()
{
update_sensor_reading();

if (sensor_smoothed < DARK_THRESHOLD && flaming == false) {
flame_on();
delay(1000);
update_sensor_reading();
while(sensor_smoothed < DARK_THRESHOLD) {
update_sensor_reading();
}
flame_off();
delay(2000);
}

if (Serial.available() > 0) {
byte inByte = Serial.read();
if (inByte == ‘a’) {
flame_on();
} else if (inByte == ‘b’) {
flame_off();
}
}
}
void update_sensor_reading() {
sensor_smoothed = (sensor_smoothed * 0.9) + (analogRead(PIN_SENSOR) * 0.1);
Serial.println(int(sensor_smoothed));
}

void flame_on() {
digitalWrite(PIN_IGNITE, HIGH);
delay(6000);
servo_gas.write(GAS_ON_POS);
delay(3000);
digitalWrite(PIN_IGNITE, LOW);
flaming = true;
}

void flame_off() {
servo_gas.write(GAS_OFF_POS);
flaming = false;
}

Leave a Reply