Arkadaşlar ESP32 ile bir kod yazıyorum da kodumda bir hata var bunu nasıl çözebilirim veya çözebilen biri yardımcı olabilir mi?
Kod:
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
#include <Servo.h>
#define in1Pin_1 4
#define in2Pin_1 5
#define in3Pin_1 14
#define in4Pin_1 12
#define enaPin_1 15
#define enbPin_1 16
#define in1Pin_2 18
#define in2Pin_2 19
#define in3Pin_2 21
#define in4Pin_2 22
#define enaPin_2 23
#define enbPin_2 24
#define TRIG_PIN 26
#define ECHO_PIN 27
#define BUZZER_PIN 25
#define SERVO1_PIN 2 // Servo 1
#define SERVO2_PIN 3 // Servo 2
Servo servo1;
Servo servo2;
BLECharacteristic *pCharacteristic;
bool deviceConnected = false;
float txValue = 0;
#define SERVICE_UUID "4fafc201-1fb5-459e-8fcc-c5c9c331914b" // servis UUID
#define CHARACTERISTIC_UUID "beb5483e-36e1-4688-b7f5-ea07361b26a8" // karakteristik UUID'si
class MyServerCallbacks : public BLEServerCallbacks {
void onConnect(BLEServer* pServer) {
deviceConnected = true;
};
void onDisconnect(BLEServer* pServer) {
deviceConnected = false;
}
};
void setup() {
Serial.begin(115200);
setupBLE();
pinMode(in1Pin_1, OUTPUT);
pinMode(in2Pin_1, OUTPUT);
pinMode(in3Pin_1, OUTPUT);
pinMode(in4Pin_1, OUTPUT);
pinMode(enaPin_1, OUTPUT);
pinMode(enbPin_1, OUTPUT);
pinMode(in1Pin_2, OUTPUT);
pinMode(in2Pin_2, OUTPUT);
pinMode(in3Pin_2, OUTPUT);
pinMode(in4Pin_2, OUTPUT);
pinMode(enaPin_2, OUTPUT);
pinMode(enbPin_2, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BUZZER_PIN, OUTPUT);
servo1.attach(SERVO1_PIN);
servo2.attach(SERVO2_PIN);
}
void loop() {
if (deviceConnected) {
if (pCharacteristic->getValue()) {
char* command = (char*)pCharacteristic->getValue().c_str();
executeCommand(command[0]);
}
} else {
delay(500);
}
}
void executeCommand(char command) {
switch (command) {
case 'F': // İleri
digitalWrite(in1Pin_1, HIGH);
digitalWrite(in2Pin_1, LOW);
digitalWrite(enaPin_1, HIGH); // Motor A
digitalWrite(in1Pin_2, HIGH);
digitalWrite(in2Pin_2, LOW);
digitalWrite(enaPin_2, HIGH); // Motor B
break;
case 'B': // Geri
digitalWrite(in1Pin_1, LOW);
digitalWrite(in2Pin_1, HIGH);
digitalWrite(enaPin_1, HIGH); // Motor A
digitalWrite(in1Pin_2, LOW);
digitalWrite(in2Pin_2, HIGH);
digitalWrite(enaPin_2, HIGH); // Motor B
break;
case 'S': // Dur
digitalWrite(enaPin_1, LOW); // Motor A'yı devre dışı
digitalWrite(enbPin_1, LOW); // Motor B'yi devre dışı
digitalWrite(enaPin_2, LOW); // Motor A'yı devre dışı
digitalWrite(enbPin_2, LOW); // Motor B'yi devre dışı
break;
default:
break;
}
}
void setupBLE() {
BLEDevice::init("MyESP32");
BLEServer *pServer = BLEDevice::createServer();
pServer->setCallbacks(new MyServerCallbacks());
BLEService *pService = pServer->createService(SERVICE_UUID);
pCharacteristic = pService->createCharacteristic(
CHARACTERISTIC_UUID,
BLECharacteristic:ROPERTY_READ |
BLECharacteristic:ROPERTY_WRITE
);
pService->start();
pServer->getAdvertising()->start();
Serial.println("Waiting a client connection to notify...");
}