Saturday, October 9, 2010

Dimmer LED

use TIP 102
basis to PWM arduino
Colector to negativ LED, Pos LED to + LED'S power supply
emitor to ground

+5V to switch tactile , otherr pole to input digital pin 8,
digital in 8 to resistor to ground

one click will fade in and fade out, double click will on / off

code

// Project 8 - Mood Lamp
int x,state,lightval,dir;
int Led1 = 9;
int Switch1 = 8;
int varTime,TimerActive;
int DoubleClickTime,DClickState;
unsigned long idleTime,lastClick;

void setup()
{
Serial.begin(9600);
lightval=0;
x=0;
dir=1;
idleTime=0;
pinMode(Led1, OUTPUT);
pinMode(Switch1, INPUT);
varTime=1000; //switch direction after ms
TimerActive=0;
DoubleClickTime=300;
DClickState=0;

}

void loop()
{
lightval=x;
analogWrite (Led1, lightval);
state = digitalRead(Switch1);
if (state == HIGH) {
x = x+dir;
if (x >= 200) { x=200; dir=dir*-1;}
if (x <= 0) { x=0; dir=dir*-1;}
delay(20);
idleTime=millis();
TimerActive=1;
if (((idleTime-lastClick)0) && (DClickState==0)){
x=0;
dir=1;
lastClick=idleTime;
DClickState=1;
}
if (((idleTime-lastClick)0) && (DClickState==1)){
x=200;
dir=-1;
lastClick=idleTime;
DClickState=0;
}
}
else
{
lastClick=idleTime;
if (((millis()-idleTime)>varTime) && (TimerActive=1)) {
dir = dir*-1;
TimerActive=0;
}
}
}

No comments: