#include <SPIMemory.h>
#include <Adafruit_BMP280.h>
#include <Adafruit_MPU6050.h>
#include <Adafruit_Sensor.h>
#include <Wire.h>
#include <SPI.h>
Adafruit_MPU6050 mpu;
Adafruit_BMP280 bmp;
const int buttonPin = 13; // Pino do botão (conectado ao GND)
const int ledPin = 2; // Pino do LED
int ledState = LOW; // Estado inicial do LED (apagado)
bool buttonPressed = false; // Flag para controle do pressionamento
void setup() {
pinMode(ledPin, OUTPUT); // Configura o pino do LED como saída
Serial.begin(115200); // Inicia a comunicação serial para depuração
Serial.println("Esp inicializado");
//button parte
pinMode(buttonPin, INPUT_PULLUP); // Botão com resistor pull-up interno
pinMode(ledPin, OUTPUT); // LED como saída
digitalWrite(ledPin, ledState); // Garante estado inicial //
}
void button (){
// Lê o estado atual do botão
int buttonState = digitalRead(buttonPin);
// Se o botão foi pressionado (LOW porque é PULLUP)
if (buttonState == LOW) {
// Aguarda um pequeno tempo para debounce
delay(50);
// Só muda o estado se não foi um pressionamento anterior
if (buttonPressed == false) {
ledState = !ledState; // Inverte o LED
digitalWrite(ledPin, ledState); // Atualiza o LED
buttonPressed = true; // Marca como pressionado //
// Debug no monitor serial
Serial.print("Estado do LED: ");
Serial.println(ledState == HIGH ? "LIGADO" : "DESLIGADO");
}
} else {
// Quando soltar o botão, reseta o controle
buttonPressed = false;
}
}
void loop() {
button();
if(ledState){
button();
//inicio
if (!mpu.begin()) {
Serial.println("Failed to find MPU6050 chip");
while (1) {
delay(10);
for(int i = 0; i < 5; i++) { // Repete o padrão 1 por 5 vezes
digitalWrite(ledPin, HIGH);
delay(500); // LED ligado por 500ms
digitalWrite(ledPin, LOW);
delay(500); // LED desligado por 500ms (total = 1 piscada por segundo)
}
}
}
Serial.println("MPU6050 Found!");
if (!bmp.begin()) {
Serial.println("Failed to find bmp280 chip");
while (1){
Serial.println("Failed to find bmp280 chip");
delay(10);
for(int i = 0; i < 10; i++) { // Repete o padrão 2 por 10 vezes
digitalWrite(ledPin, HIGH);
delay(250); // LED ligado por 250ms
digitalWrite(ledPin, LOW);
delay(250); // LED desligado por 250ms (total = 2 piscadas por segundo)
}
}
Serial.println("BMP280 Found!");
}
//flash
//gps
}
}