Trying to turn a led on with a button, when my hand gets close to the board it behaves erratically

I have a amazon special ESP32 board that will happily power an led. However when I go to add a switch to turn that led on or off things get weird. Using someone else code (Shown below) it technically works. However when my hand get close it just goes wild, it believes that there is inputs when there really isnt. What makes it weirder is when I touch the esp32 metal shield or the usb c connector it actually stops. Anyone have any insite on why this is happening and how I can get it to stop? Ive tried damn near every pin. Ive also tried a few different esp boards (All same manufacturer)

/*
 * Created by ArduinoGetStarted.com
 *
 * This example code is in the public domain
 *
 * Tutorial page: 
 */

// constants won't change. They're used here to set pin numbers:
const int BUTTON_PIN = 34;  // the number of the pushbutton pin
const int LED_PIN =  2;   // the number of the LED pin

// variables will change:
int buttonState = 0;   // variable for reading the pushbutton status

void setup() {
    Serial.begin (115200);
  // initialize the LED pin as an output:
  pinMode(LED_PIN, OUTPUT);
  // initialize the pushbutton pin as an pull-up input:
  // the pull-up input pin will be HIGH when the switch is open and LOW when the switch is closed.
  pinMode(BUTTON_PIN, INPUT_PULLUP);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(BUTTON_PIN);
  Serial.println(buttonState);
  // control LED according to the state of button
  if(buttonState == LOW)         // If button is pressing
    digitalWrite(LED_PIN, HIGH); // turn on LED
  else                           // otherwise, button is not pressing
    digitalWrite(LED_PIN, LOW);  // turn off LED
}

I'd try it with an actual pull-up resistor on the button pin. Try starting with 4.7K or so.

ESP32 GPIO34 has no INPUT_PULLUP capability (that goes for 34-39).

1 Like

There are a number of touch sensitive pins on that board, if you haven't read it already, I found

to be a very useful guide.

1 Like

Removed abusive word in the title, and replaced with proper English.

Please remember this is a Forum with an international audience and in the UK this is a very offensive word.

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.