Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class LEDka {
- private:
- byte btnPin;
- byte ledPin;
- unsigned long cas;
- unsigned long debTime;
- unsigned int debDelay = 50; // prodleva na ošetření zákmitu
- unsigned int prodleva = 2000;
- unsigned int delkaSvitu = 60000;
- boolean predchoziStav;
- public:
- LEDka(byte bPin, byte lPin, unsigned int tProdleva, unsigned int tDelkaSvitu) {
- btnPin = bPin;
- ledPin = lPin;
- prodleva = tProdleva;
- delkaSvitu = tDelkaSvitu;
- pinMode(btnPin, INPUT);
- pinMode(ledPin, OUTPUT);
- digitalWrite(ledPin, LOW);
- predchoziStav = digitalRead(btnPin);
- }
- void smycka() {
- boolean stav = digitalRead(btnPin);
- if (stav != predchoziStav && (millis() - debTime > debDelay || millis() < debTime)) {
- Serial.print ("Tlacitko ");
- Serial.print (btnPin);
- if (!stav) {
- // Tlačítko sepnuto
- Serial.print (" sepnuto");
- cas = millis();
- digitalWrite(ledPin, HIGH);
- } else {
- // Tlačítko uvolněno
- Serial.print (" rozepnuto");
- int delkaStisku = millis() - cas;
- Serial.print ("\tDelka stisku: ");
- Serial.print (delkaStisku);
- if (delkaStisku < prodleva) {
- digitalWrite(ledPin, LOW);
- cas = 0;
- }
- }
- Serial.println();
- debTime = millis();
- predchoziStav = stav;
- }
- // Po uplynutí délky svitu zhasne ledku
- if (cas > 0 && (millis() - cas > delkaSvitu || millis() < cas)) {
- Serial.print("Cas pro led ");
- Serial.print (ledPin);
- Serial.println (" uplynul zhasinam LED");
- digitalWrite(ledPin, LOW);
- cas = 0;
- }
- }
- };
- LEDka led1(2, 13, 2000, 60000); // btnPin, ledPin, prodlevaStisku, delkaSvitu
- LEDka led2(3, 4, 2000, 60000);
- void setup() {
- Serial.begin(9600);
- }
- void loop() {
- led1.smycka();
- led2.smycka();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement