//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; }