Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int PIN_R = 9, PIN_G = 10, PIN_B = 11; // пиновете за различните цветове (важно е да са ШИМ/PWM)
- const int POT_R = A0, POT_G = A1, POT_B = A2; // пиновете за потенциометрите (важно е да са Аналогови пинове)
- // функция, която прочита стойността на аналоговия пин и чрез map функцията я превръща
- // в стойност, пропорционална на максималната PWM стойност
- // защото максималното, което чете потенциометъра от аналоговия пин е 1023
- // а максималното, което може да се изпрати на ЛЕД по ШИМ е 255
- int readPotAsPWM(int potPin) {
- int val = analogRead(potPin);
- return map(val, 0, 1023, 0, 255);
- }
- // използване на analogWrite за подаване на стойности по ШИМ за различните цветове на светодиода
- void setColor(int r, int g, int b) {
- analogWrite(PIN_R, r);
- analogWrite(PIN_G, g);
- analogWrite(PIN_B, b);
- }
- void setup() {
- pinMode(PIN_R, OUTPUT);
- pinMode(PIN_G, OUTPUT);
- pinMode(PIN_B, OUTPUT);
- Serial.begin(9600);
- }
- void loop() {
- // използване на написаната горе функция за превръщане на прочетените аналогови стойности
- // в стойности подходящи за ШИМ
- int redValue = readPotAsPWM(POT_R);
- int greenValue = readPotAsPWM(POT_G);
- int blueValue = readPotAsPWM(POT_B);
- // използване на написаната горе фунцкия за задаване на цвят
- setColor(redValue, greenValue, blueValue);
- // output на стойностите
- Serial.print("Red: ");
- Serial.print(redValue);
- Serial.print(" Green: ");
- Serial.print(greenValue);
- Serial.print(" Blue: ");
- Serial.print(blueValue);
- Serial.println();
- delay(10);
- }
Advertisement
Add Comment
Please, Sign In to add comment