// SPDX-License-Identifier: MIT // Entrada digital: botão com INPUT_PULLUP (ESP32-S3 DevKitC-1 N16R8) // Mesma lógica do Uno. O que muda: numeração GPIO, 3,3 V em vez de 5 V e o LED da placa é RGB. // Ligação: um lado do botão no GPIO4, o outro lado no GND. Sem resistor externo. // IDE: placa "ESP32S3 Dev Module", PSRAM "OPI PSRAM", Flash 16MB, USB CDC On Boot: Enabled. const int PINO_BOTAO = 4; // GPIO4: pino "tranquilo" (não é strapping nem reservado para a PSRAM) // RGB_BUILTIN já vem definido pelo núcleo Arduino-ESP32 para o DevKitC-1 (GPIO48 na rev. v1.0, GPIO38 na v1.1). // Se a sua placa não acender, troque por: #define RGB_BUILTIN 48 (ou 38) void setup() { pinMode(PINO_BOTAO, INPUT_PULLUP); // resistor interno de ~45 kOhm puxando para 3,3 V // O LED RGB é um WS2812: não usa pinMode/digitalWrite, usa neopixelWrite() } void loop() { bool apertado = (digitalRead(PINO_BOTAO) == LOW); // LOW = apertado, igual ao Uno if (apertado) { neopixelWrite(RGB_BUILTIN, 0, 40, 0); // verde fraco (valores 0 a 255; 40 já é bem visível) } else { neopixelWrite(RGB_BUILTIN, 0, 0, 0); // apagado } } // Quer usar um LED comum como no Uno? Ligue LED + resistor de 220 Ohm entre um GPIO (ex.: GPIO5) e GND // e use pinMode(5, OUTPUT) + digitalWrite(5, apertado). Com 3,3 V a corrente fica em (3,3 - 2,0) / 220 = 5,9 mA.