#define redLedPin 22
#define greenLedPin 19
#define blueLedPin 18
#define redTouchPin T5
#define greenTouchPin T0
#define blueTouchPin T3
#define potPin 15
#define PWMChannel 0
int led = 0;
int ledOFF= 0;
const int freq = 5000;
const int resolution = 12;
uint16_t dutyCycle;
int hallData = 0; // HE sensor
int redTouchData = 0;
int greenTouchData = 0;
int blueTouchData = 0;
int potData = 0; // 12-bit resolution
float voltage = 0.0; // 0-3.3V
void setup() {
pinMode (redLedPin, OUTPUT);
pinMode (greenLedPin, OUTPUT);
pinMode (blueLedPin, OUTPUT);
ledcSetup(PWMChannel, freq, resolution);
ledcAttachPin(redLedPin, PWMChannel);
ledcAttachPin(greenLedPin, PWMChannel);
ledcAttachPin(blueLedPin, PWMChannel);
// ledcAttachPin to detach pin
Serial.begin(115200);
}
void loop() {
hallData = hallRead();
Serial.print ("Hall Effect = ");
Serial.println(hallData);
redTouchData = touchRead(redTouchPin);
Serial.print("Touch (R G B) =");
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.print(voltage);
dutyCycle = map(potData, 0, 4095, 0, 255);
ledcWrite(PWMChannel, dutyCycle);
if(hallData < 10 || hallData > 120){
digitalWrite(redLedPin, HIGH);
digitalWrite(greenLedPin, HIGH);
digitalWrite(blueLedPin, HIGH);
}
else{
digitalWrite(redLedPin, LOW);
digitalWrite(greenLedPin, LOW);
digitalWrite(blueLedPin, LOW);
}
if (redTouchData < 50){
ledcDetachPin(blueLedPin);
ledcDetachPin(greenLedPin);
}
// else{
// ledcAttachPin(blueLedPin, PWMChannel);
// ledcAttachPin(greenLedPin, PWMChannel);
// }
if (greenTouchData < 50){
ledcDetachPin(redLedPin);
ledcDetachPin(blueLedPin);
}
// else{
// ledcAttachPin(redLedPin, PWMChannel);
// ledcAttachPin(blueLedPin, PWMChannel);
// }
if (blueTouchData < 50){
ledcDetachPin(redLedPin);
ledcDetachPin(greenLedPin);
}
// else{
// ledcAttachPin(redLedPin, PWMChannel);
// ledcAttachPin(greenLedPin, PWMChannel);
// }
}