/* PROGRAMMINFO: Funktion: ESP32 Test-Programm Taster und Poti Version: 23.02.2021 (x) C++ Arduino IDE V1.8.13 () Python Thonny V3.3.3 () OpenRoberta https://lab.open-roberta.org/ Board: ESP32vn IoT UNO V1.0.4 Einstellungen: https://dl.espressif.com/dl/package_esp32_index.json */ //------------------------------------------------ const int pinButton27 = 27; // Pushbutton-Pin const int pinLED16 = 16; // LED-Pin int buttonState27 = 0; // Status der Taste //---------------------------------------------------- //----------------------------------------- const int pinButton17 = 17; // Pushbutton-Pin const int pinLED25 = 25; // LED-Pin int buttonState17 = 0; // Status der Taste //----------------------------------------- //----------------------------------------- const int pinButton26 = 26; // Pushbutton-Pin const int pinLED13 = 13; // LED-Pin int buttonState26 = 0; // Status der Taste //----------------------------------------- //----------------------------------------- const int pinButton12 = 12; // Pushbutton-Pin const int pinLED14 = 14; // LED-Pin int buttonState12 = 0; // Status der Taste //----------------------------------------- //----------------------------------------- const int pinButton18 = 18; // Pushbutton-Pin const int pinLED19 = 19; // LED-Pin int buttonState18 = 0; // Status der Taste //----------------------------------------- //----------------------------------------- const int pinButton23 = 23; // Pushbutton-Pin const int pinLED5 = 5; // LED-Pin int buttonState23 = 0; // Status der Taste //----------------------------------------- const int LED_OUTPUT_PIN = 4; const int POTENTIOMETER_INPUT_PIN = 2; // A6 GPIO 14 const int MAX_ANALOG_VAL = 4095; const int PWM_CHANNEL = 0; // ESP32 verfügt über 16 Kanäle, die 16 unabhängige Wellenformen erzeugen können //const int PWM_CHANNEL = 1; const int PWM_FREQ = 500; const int PWM_RESOLUTION = 8; // Auflösung wie Uno (8 Bit, 0-255), aber ESP32 kann bis zu 16 Bit // Der maximale Arbeitszykluswert basierend auf der PWM-Auflösung (wird 255 sein, wenn die Auflösung 8 Bit beträgt) const int MAX_DUTY_CYCLE = (int)(pow(2, PWM_RESOLUTION) - 1); void setup() { Serial.begin (115200); //----------------------------------------- pinMode(pinButton27, INPUT_PULLUP); pinMode(pinLED16, OUTPUT); //----------------------------------------- //----------------------------------------- pinMode(pinButton17, INPUT_PULLUP); pinMode(pinLED25, OUTPUT); //----------------------------------------- pinMode(pinButton26, INPUT_PULLUP); pinMode(pinLED13, OUTPUT); //----------------------------------------- //----------------------------------------- pinMode(pinButton12, INPUT_PULLUP); pinMode(pinLED14, OUTPUT); //----------------------------------------- //----------------------------------------- pinMode(pinButton18, INPUT_PULLUP); pinMode(pinLED19, OUTPUT); //----------------------------------------- //----------------------------------------- pinMode(pinButton23, INPUT_PULLUP); pinMode(pinLED5, OUTPUT); //----------------------------------------- pinMode(LED_OUTPUT_PIN, OUTPUT); pinMode(LED_OUTPUT_PIN39, OUTPUT); pinMode(POTENTIOMETER_INPUT_PIN, INPUT); ledcSetup(PWM_CHANNEL, PWM_FREQ, PWM_RESOLUTION); ledcAttachPin(LED_OUTPUT_PIN, PWM_CHANNEL); // ledcSetup(PWM_CHANNEL1, PWM_FREQ, PWM_RESOLUTION); ledcAttachPin(LED_OUTPUT_PIN39, PWM_CHANNEL); } void loop() { //----------------------------------------- buttonState27 = digitalRead(pinButton27); if (buttonState27 == LOW) { digitalWrite(pinLED16, HIGH); } else { digitalWrite(pinLED16, LOW); } //----------------------------------------- //----------------------------------------- buttonState17 = digitalRead(pinButton17); if (buttonState17 == LOW) { digitalWrite(pinLED25, HIGH); } else { digitalWrite(pinLED25, LOW); } //----------------------------------------- //----------------------------------------- buttonState26 = digitalRead(pinButton26); if (buttonState26 == LOW) { digitalWrite(pinLED13, HIGH); } else { digitalWrite(pinLED13, LOW); } //----------------------------------------- //----------------------------------------- buttonState12 = digitalRead(pinButton12); if (buttonState12 == LOW) { digitalWrite(pinLED14, HIGH); } else { digitalWrite(pinLED14, LOW); } //----------------------------------------- //----------------------------------------- buttonState18 = digitalRead(pinButton18); if (buttonState18 == LOW) { digitalWrite(pinLED19, HIGH); } else { digitalWrite(pinLED19, LOW); } //----------------------------------------- //----------------------------------------- buttonState23 = digitalRead(pinButton23); if (buttonState23 == LOW) { digitalWrite(pinLED5, HIGH); } else { digitalWrite(pinLED5, LOW); } //----------------------------------------- int potVal = analogRead(POTENTIOMETER_INPUT_PIN); int dutyCycle = map(potVal, 0, MAX_ANALOG_VAL, 0, MAX_DUTY_CYCLE); ledcWrite(PWM_CHANNEL, dutyCycle); Serial.println((String)potVal + ", " + dutyCycle); delay(10); }