Arduino kodda hata var

IshakUs

Hectopat
Katılım
11 Şubat 2021
Mesajlar
83
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
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...");
}
 
Tabii. Bu hatayı alıyorum.
WARNING: library Servo claims to run on avr, megaavr, sam, samd, nrf52, stm32f4, mbed, mbed_nano, mbed_portenta, mbed_rp2040, renesas, renesas_portenta, renesas_uno architecture(s) and may be incompatible with your current board which runs on esp32 architecture(s).
In file included from C:\Users\İshak\Desktop\news\news.ino:5:
C:\Users\�shak\Documents\Arduino\libraries\Servo\src/Servo.h:79:2: error: #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
79 | #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
| ^~~~~
exit status 1

Compilation error: exit status 1

Hata kodunu atabilir misiniz?

Tabii. Bu hatayı alıyorum.
WARNING: library Servo claims to run on avr, megaavr, sam, samd, nrf52, stm32f4, mbed, mbed_nano, mbed_portenta, mbed_rp2040, renesas, renesas_portenta, renesas_uno architecture(s) and may be incompatible with your current board which runs on esp32 architecture(s).
In file included from C:\Users\İshak\Desktop\news\news.ino:5:
C:\Users\�shak\Documents\Arduino\libraries\Servo\src/Servo.h:79:2: error: #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
79 | #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
| ^~~~~
exit status 1

Compilation error: exit status 1
 
Tabii. Bu hatayı alıyorum.
WARNING: library Servo claims to run on avr, megaavr, sam, samd, nrf52, stm32f4, mbed, mbed_nano, mbed_portenta, mbed_rp2040, renesas, renesas_portenta, renesas_uno architecture(s) and may be incompatible with your current board which runs on esp32 architecture(s).
In file included from C:\Users\İshak\Desktop\news\news.ino:5:
C:\Users\�shak\Documents\Arduino\libraries\Servo\src/Servo.h:79:2: error: #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
79 | #error "This library only supports boards with an AVR, SAM, SAMD, NRF52 or STM32F4 processor."
| ^~~~~
exit status 1

Compilation error: exit status 1

Servo kütüphanesi esp32 desteklemiyor, <ESP32Servo.h> kullanmalısınız.
 
Şimdi de bu hatayı alıyorum farklı kütüphaneler de denedim ama sürekli farklı kütüphane hataları alıyorum.

Servo kütüphanesi ESP32 desteklemiyor, <ESP32Servo.h> kullanmalısınız.

In file included from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEAdvertising.h:15,
from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEServer.h:19,
from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEDevice.h:18,
from C:\Users\İshak\Desktop\news\news.ino:1:
C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/FreeRTOS.h:61:35: error: 'ringbuf_type_t' has not been declared
61 | Ringbuffer(size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT);
| ^~~~~~~~~~~~~~
C:\Users\İshak\Desktop\news\news.ino: In function 'void loop()':
C:\Users\İshak\Desktop\news\news.ino:76:34: error: could not convert 'BLECharacteristic::getValue()()' from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'bool'
Multiple libraries were found for "BLEDevice.h"
Used: C:\Users\İshak\Documents\Arduino\libraries\ESP32_BLE_Arduino
Not used: C:\Users\İshak\Documents\Arduino\libraries\BLEPeripheral
Not used: C:\Users\İshak\Documents\Arduino\libraries\Seeed_Arduino_rpcBLE
Not used: C:\Users\İshak\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0\libraries\BLE
exit status 1

Compilation error: could not convert 'BLECharacteristic::getValue()()' from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'bool'

Hocam o kütüphane de hatalı normal de o kütüphaneyi kullanıyordum ama o kütüphane de bu hatayı alıyorum. Üstteki kodda Bluetooth hatası var onu düzeltmek kolay onu düzeltirim de bu hatayı düzeltemiyorum.
Servo kütüphanesi esp32 desteklemiyor, <ESP32Servo.h> kullanmalısınız.
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In destructor 'virtual ESP32PWM::~ESP32PWM()':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:53:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
53 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| ledcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In static member function 'static double ESP32PWM::_ledcSetupTimerFreq(uint8_t, double, uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:60:16: error: 'ledcSetup' was not declared in this scope
60 | return ledcSetup(chan, freq, bit_num);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'double ESP32PWM::setup(double, uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:150:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
150 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| ledcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:151:30: error: 'ledcSetup' was not declared in this scope
151 | double val = ledcSetup(getChannel(), freq, resolution_bits);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:155:16: error: 'ledcSetup' was not declared in this scope
155 | return ledcSetup(getChannel(), freq, resolution_bits);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'void ESP32PWM::adjustFrequencyLocal(double, double)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:172:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
172 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| ledcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:176:17: error: 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach'?
176 | ledcAttachPin(pin, getChannel()); // re-attach the pin after frequency adjust
| ^~~~~~~~~~~~~
| ledcAttach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'void ESP32PWM::attachPin(uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:237:17: error: 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach'?
237 | ledcAttachPin(pin, getChannel());
| ^~~~~~~~~~~~~
| ledcAttach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'void ESP32PWM::detachPin(int)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:264:9: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
264 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| ledcDetach

exit status 1

Compilation error: exit status 1

Paylaştım hocam hata kodlarını.
Hata kodunu atabilir misiniz?
 
Son düzenleme:
Şimdi de bu hatayı alıyorum farklı kütüphaneler de denedim ama sürekli farklı kütüphane hataları alıyorum.



In file included from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEAdvertising.h:15,
from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEServer.h:19,
from C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/BLEDevice.h:18,
from C:\Users\İshak\Desktop\news\news.ino:1:
C:\Users\�shak\Documents\Arduino\libraries\ESP32_BLE_Arduino\src/FreeRTOS.h:61:35: error: 'ringbuf_type_t' has not been declared
61 | Ringbuffer(size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT);
| ^~~~~~~~~~~~~~
C:\Users\İshak\Desktop\news\news.ino: In function 'void loop()':
C:\Users\İshak\Desktop\news\news.ino:76:34: error: could not convert 'BLECharacteristic::getValue()()' from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'bool'
Multiple libraries were found for "BLEDevice.h"
Used: C:\Users\İshak\Documents\Arduino\libraries\ESP32_BLE_Arduino
Not used: C:\Users\İshak\Documents\Arduino\libraries\BLEPeripheral
Not used: C:\Users\İshak\Documents\Arduino\libraries\Seeed_Arduino_rpcBLE
Not used: C:\Users\İshak\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.0\libraries\BLE
exit status 1

Compilation error: could not convert 'BLECharacteristic::getValue()()' from 'std::string' {aka 'std::__cxx11::basic_string<char>'} to 'bool'
#include <BLEDevice.h>
#include <BLEServer.h>
#include <BLEUtils.h>
#include <BLE2902.h>
#include <ESP32Servo.h>

Bunlar sizin -ilk mesajdaki koda istinaden- kullanacağınız kütüphaneler, hata koduna gelirsek eğer;
ringbuf_type_t hatası ESP32 BLE kütüphanesi güncel değilse geliyo diye hatırlıyorum, güncellemeyi deneyin espressif üzerinden

bir de std::string olmalı ama siz boolean çeviriyorsunuz

"if (deviceConnected) {
std::string value = pCharacteristic->getValue();"

dener misiniz bu şekilde? stringin boş olmadığına baksın öyle devam etsin.

Deneme yapamıyorum şu an maalesef elimden bu kadar geliyor.

void loop() {
if (deviceConnected) {
std::string value = pCharacteristic->getValue();
if (!value.empty()) {
char command = value[0];
executeCommand(command);
 
Son düzenleme:
Hocam blueetoh kısmını düzeltirim orası sorun değil de bu ESP kütüphanesi sorununu çözmem gerekiyor sadece o kısımda yardımcı olabilir misiniz acaba güncelleme olarak son sürümü yükledim sildim de hata sürekli aynı.

#İnclude <BLEDevice.h>
#İnclude <BLEServer.h>
#İnclude <BLEUtils.h>
#İnclude <BLE2902.h>
#İnclude <ESP32Servo.h>

Bunlar sizin -ilk mesajdaki koda istinaden- kullanacağınız kütüphaneler, hata koduna gelirsek eğer;
Ringbuf_type_t hatası ESP32 ble kütüphanesi güncel değilse geliyor diye hatırlıyorum, güncellemeyi deneyin espressif üzerinden.

Bir de std: String olmalı ama siz boolean çeviriyorsunuz.

"İf (deviceconnected) {
Std: String Value = pCharacteristic->getValue();"

Dener misiniz bu şekilde? Stringin boş olmadığına baksın öyle devam etsin.

Deneme yapamıyorum şu an maalesef elimden bu kadar geliyor.

Void loop() {
İf (deviceconnected) {
Std: String Value = pCharacteristic->getValue();
İf (!value.empty()) {
Char command = Value[0];
Executecommand(command);
 
Hocam blueetoh kısmını düzeltirim orası sorun değil de bu ESP kütüphanesi sorununu çözmem gerekiyor sadece o kısımda yardımcı olabilir misiniz acaba güncelleme olarak son sürümü yükledim sildim de hata sürekli aynı.
Kodun son halini ve hata mesajını paylaşır mısınız? Dediğim gibi deneyemiyorum ama bakayım.
 
Kodun son halini ve hata mesajını paylaşır mısınız? Dediğim gibi deneyemiyorum ama bakayım.

Hocam bu blueetoh kontorlü kaldırdıgımda olan kod.
#İnclude <ESP32Servo.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;
Void setup() {
Serial. Begin(115200);
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() {
// Kod burada kullanıcının komutlarına göre servo motorları veya diğer cihazları çalıştıracak.
}
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;
}
}

Aldığım hatada bu

C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In destructor 'Virtual ESP32PWM::~ESP32PWM()':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:53:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
53 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| LedcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In static member function 'static double ESP32PWM: _ledcSetupTimerFreq(uint8_t, double, uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:60:16: error: 'ledcSetup' was not declared in this scope
60 | return ledcSetup(chan, freq, bit_num);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'double ESP32PWM: Setup(double, uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:150:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
150 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| LedcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:151:30: error: 'ledcSetup' was not declared in this scope
151 | double VAL = ledcSetup(getChannel(), freq, resolution_bits);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:155:16: error: 'ledcSetup' was not declared in this scope
155 | return ledcSetup(getChannel(), freq, resolution_bits);
| ^~~~~~~~~
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'Void ESP32PWM: AdjustFrequencyLocal(double, double)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:172:17: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
172 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| LedcDetach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:176:17: error: 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach'?
176 | ledcAttachPin(pin, getChannel()); // re-attach the pin after frequency adjust
| ^~~~~~~~~~~~~
| LedcAttach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'Void ESP32PWM: AttachPin(uint8_t)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:237:17: error: 'ledcAttachPin' was not declared in this scope; did you mean 'ledcAttach'?
237 | ledcAttachPin(pin, getChannel());
| ^~~~~~~~~~~~~
| LedcAttach
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp: In member function 'Void ESP32PWM: DetachPin(int)':
C:\Users\�shak\Documents\Arduino\libraries\ESP32Servo\src\ESP32PWM.cpp:264:9: error: 'ledcDetachPin' was not declared in this scope; did you mean 'ledcDetach'?
264 | ledcDetachPin(pin);
| ^~~~~~~~~~~~~
| LedcDetach

Exit status 1

Compilation error: Exit status 1
 

Technopat Haberler

Yeni konular

Geri
Yukarı