Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unsigned int A = 0, T=0; //А - хранит значение яркости, T - Время удержания кнопки
- int BT1 = 3; int BT2 = 2; //Кнопи и пины
- void setup(){
- pinMode(BT1, INPUT);digitalWrite(BT1, HIGH);
- pinMode(BT2, INPUT);digitalWrite(BT2, HIGH);
- }
- void fast(int B){
- if (digitalRead(BT1) > 0) if (!digitalRead(BT1) == !digitalRead(BT2)){A = B;delay(500);} //Включение или выключение света при нажатии двух кнопок
- }
- void regulator(){
- if (!digitalRead(BT1) && digitalRead(BT2) && A < 255)A++;else if(digitalRead(BT1) && !digitalRead(BT2) && A)A--; //Стандартный режим работы
- }
- void fastregulator(){
- if(A>3){if (!digitalRead(BT1) && digitalRead(BT2) && A < 255)A+=4;else if(digitalRead(BT1) && !digitalRead(BT2) && A)A-=4;} //Ускоренный режим работы
- }
- void loop(){
- if(digitalRead(BT1) != digitalRead(BT2) > 0 ){T++;}else{T = 0;}
- if(T<40){regulator();}else{fastregulator();} //При длительном удержании включать ускоренный режим
- if(A>20){fast(0);}else{fast(254);} //Быстрое выключение
- delay(30); //Задержка
- analogWrite(9,A); //Выставляем яркость светодиода
- if (A>254){analogWrite(9,150);A -= 1;delay(150); analogWrite(9,A);} //Мигаем светодиодом, если яркость превышает лимит
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement