#define redLedPin 22
#define greenLedPin 19
#define blueLedPin 18
#define redTouchPin T5
#define greenTouchPin T7
#define blueTouchPin T8
#define potPin 15
#define PWMChannel 0
const int freq = 5000;
const int resolution = 8;
uint16_t dutyCycle;
int redTouchData = 0;
int greenTouchData = 0;
int blueTouchData = 0;
int potData = 0;
float voltage = 0.0;
void setup() {
pinMode(redLedPin, OUTPUT);
pinMode(greenLedPin, OUTPUT);
pinMode(blueLedPin, OUTPUT);
ledcSetup(PWMChannel, freq, resolution);
ledcAttachPin(redLedPin, PWMChannel);
ledcAttachPin(greenLedPin, PWMChannel);
ledcAttachPin(blueLedPin, PWMChannel);
Serial.begin(115200);
}
void loop() {
redTouchData = touchRead(redTouchPin);
Serial.print(" Touch = ");
Serial.print(redTouchData);
greenTouchData = touchRead(greenTouchPin);
Serial.print(" : ");
Serial.print(greenTouchData);
blueTouchData = touchRead(blueTouchPin);
Serial.print(" : ");
Serial.print(blueTouchData);
potData = analogRead(potPin);
Serial.print("\tPotentiometer = ");
Serial.print(potData);
voltage = (float)potData / 4095 * 3.3;
Serial.print("\tVoltage = ");
Serial.println(voltage);
dutyCycle = map(potData, 0, 4095, 0, 255);
ledcWrite(PWMChannel, dutyCycle);
if(redTouchData < 50 ){
ledcAttachPin(redLedPin, PWMChannel);
ledcDetachPin(blueLedPin);
ledcDetachPin(greenLedPin);
}
else if(greenTouchData < 50 ) {
ledcAttachPin(greenLedPin, PWMChannel);
ledcDetachPin(blueLedPin);
ledcDetachPin(redLedPin);
}
else if(blueTouchData < 50 ) {
ledcAttachPin(blueLedPin, PWMChannel);
ledcDetachPin(redLedPin);
ledcDetachPin(greenLedPin);
}
else if(blueTouchData < 50 ) {
ledcAttachPin(blueLedPin, PWMChannel);
ledcDetachPin(redLedPin);
ledcDetachPin(greenLedPin);
}
else if(blueTouchData < 50 && blueTouchData < 50 redTouchData < 50) {
ledcDetachPin(blueLedPin, PWMChannel);
ledcDetachPin(redLedPin);
ledcDetachPin(greenLedPin);
}
else{
ledcAttachPin(redLedPin, PWMChannel);
ledcAttachPin(greenLedPin, PWMChannel);
ledcAttachPin(blueLedPin, PWMChannel);
}
}