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)
x=0;
dir=1;
lastClick=idleTime;
DClickState=1;
}
if (((idleTime-lastClick)
x=200;
dir=-1;
lastClick=idleTime;
DClickState=0;
}
}
else
{
lastClick=idleTime;
if (((millis()-idleTime)>varTime) && (TimerActive=1)) {
dir = dir*-1;
TimerActive=0;
}
}
}
No comments:
Post a Comment