Untitled
unknown
plain_text
13 days ago
2.8 kB
5
Indexable
#include <Wire.h> #include <Adafruit_LiquidCrystal.h> int potPin = A0; int redLEDPin = 9; int greenLEDPin = 10; int blueLEDPin = 11; int selectButtonPin = 2; int toggleButtonPin = 3; int potValue = 0; int ledValue = 0; int selectedLED = 0; bool ledsOn = true; enum State { IDLE, WAIT_SELECT_RELEASE, WAIT_TOGGLE_RELEASE }; State selectButtonState = IDLE; State toggleButtonState = IDLE; Adafruit_LiquidCrystal lcd(0); void setup() { Serial.begin(9600); pinMode(redLEDPin, OUTPUT); pinMode(greenLEDPin, OUTPUT); pinMode(blueLEDPin, OUTPUT); pinMode(selectButtonPin, INPUT_PULLUP); pinMode(toggleButtonPin, INPUT_PULLUP); lcd.begin(16, 2); lcd.setBacklight(LOW); lcd.clear(); lcd.setCursor(0, 0); lcd.print("Izbrana LED:"); lcd.setCursor(0, 1); lcd.print("Svetlost:"); } void loop() { bool readingSelect = digitalRead(selectButtonPin); bool readingToggle = digitalRead(toggleButtonPin); switch (selectButtonState) { case IDLE: if (readingSelect == LOW) { selectedLED = (selectedLED + 1) % 3; selectButtonState = WAIT_SELECT_RELEASE; } break; case WAIT_SELECT_RELEASE: if (readingSelect == HIGH) { selectButtonState = IDLE; } break; } switch (toggleButtonState) { case IDLE: if (readingToggle == LOW) { ledsOn = !ledsOn; toggleButtonState = WAIT_TOGGLE_RELEASE; } break; case WAIT_TOGGLE_RELEASE: if (readingToggle == HIGH) { toggleButtonState = IDLE; } break; } potValue = analogRead(potPin); ledValue = map(potValue, 0, 1023, 0, 255); if (ledsOn) { if (selectedLED == 0) { analogWrite(redLEDPin, ledValue); analogWrite(greenLEDPin, 0); analogWrite(blueLEDPin, 0); } else if (selectedLED == 1) { analogWrite(redLEDPin, 0); analogWrite(greenLEDPin, ledValue); analogWrite(blueLEDPin, 0); } else if (selectedLED == 2) { analogWrite(redLEDPin, 0); analogWrite(greenLEDPin, 0); analogWrite(blueLEDPin, ledValue); } } else { analogWrite(redLEDPin, 0); analogWrite(greenLEDPin, 0); analogWrite(blueLEDPin, 0); } lcd.setCursor(11, 0); if (selectedLED == 0) lcd.print("Rdeca"); else if (selectedLED == 1) lcd.print("Zelena"); else lcd.print("Modra"); lcd.setCursor(9, 1); lcd.print(ledValue); Serial.print("Izbrana LED: "); if (selectedLED == 0) Serial.println("Rdeca"); else if (selectedLED == 1) Serial.println("Zelena"); else Serial.println("Modra"); Serial.print("Vrednost potenciometra: "); Serial.println(ledValue); delay(10); }
Editor is loading...
Leave a Comment