//Milano 0.1
int buttonPin = 4;
int ledPin = 9;
int fanPin = 10;
boolean lastButton = LOW;
boolean currentButton = LOW;
int ledpwmLevel = 0;
boolean fanOn = false;
void setup()
{
pinMode(buttonPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(fanPin, OUTPUT);
Serial.begin(9600);
}
boolean lastButtonSample;
long lastButtonTime;
boolean debounceButton(boolean debounced)
{
boolean buttonSample = digitalRead(buttonPin);
if (lastButtonSample != buttonSample)
{
lastButtonTime = millis();
}
lastButtonSample = buttonSample;
if (millis() - lastButtonTime > 10)
debounced = buttonSample;
}
return debounced;
}
void loop()
{
currentButton = debounce(lastButton);
if (lastButton == LOW && currentButton == HIGH)
{
fanOn = true;
analogWrite(fanPin, 255);
ledpwmLevel = ledpwmLevel + 85;
Serial.println("BUTTON");
if (ledpwmLevel > 255)
{
ledpwmLevel = 0;
lastLEDTime = millis();
}
analogWrite(ledPin, ledpwmLevel);
}
if (fanOn && millis() - lastLEDTime > 2000)
{
fanOn = false;
analogWrite(fanPin, 0);
}
lastButton = currentButton;
}