// define os pinos do botão e do LED
const int BUTTON_PIN = 2;
const int LED_PIN = 13;
// define o estado atual do botão
bool buttonState = false;
void setup() {
// configura o pino do botão como entrada
pinMode(BUTTON_PIN, INPUT_PULLUP);
// configura o pino do LED como saída
pinMode(LED_PIN, OUTPUT);
Serial.begin(9600); // Inicia a comunicação serial
}
void loop() {
// verifica se o botão foi pressionado
if (buttonPressed()) {
// chama a sub-rotina que acende o LED
Serial.println("hello world!");
turnOnLED();
} else {
// chama a sub-rotina que apaga o LED
turnOffLED();
}
}
bool buttonPressed() {
// verifica se o botão está pressionado
if (digitalRead(BUTTON_PIN) == LOW) {
// aguarda um curto período para evitar o efeito de bouncing
delay(50);
// verifica novamente o estado do botão
if (digitalRead(BUTTON_PIN) == LOW) {
// se o botão ainda estiver pressionado, retorna true
return true;
}
}
// se o botão não estiver pressionado, retorna false
return false;
}
void turnOnLED() {
// define o pino do LED como HIGH para acender o LED
digitalWrite(LED_PIN, HIGH);
}
void turnOffLED() {
// define o pino do LED como LOW para apagar o LED
digitalWrite(LED_PIN, LOW);
}