1 (edited by Pushka 2024-05-04 21:14:02)

Topic: Проблема с сервоприводом

В проекте использую: WeMos D1, подключение через wifi точку. При подключении с использованием сервопривода, wifi точка - RemoteXY не отображается в списке wifi. Код проекта:

// определение режима соединения и подключение библиотеки RemoteXY 
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT

#include <ESP8266WiFi.h>

// настройки соединения 
#define REMOTEXY_WIFI_SSID "RemoteXY"
#define REMOTEXY_WIFI_PASSWORD "12345678"
#define REMOTEXY_SERVER_PORT 6377


#include <RemoteXY.h>

// конфигурация интерфейса RemoteXY  
#pragma pack(push, 1)  
uint8_t RemoteXY_CONF[] =   // 27 bytes
  { 255,1,0,0,0,20,0,17,0,0,0,16,1,106,200,1,1,1,0,4,
  42,27,24,122,0,2,26 };
  
// структура определяет все переменные и события вашего интерфейса управления 
struct {

    // input variables
  int8_t slider_01; // oт 0 до 100

    // other variable
  uint8_t connect_flag;  // =1 if wire connected, else =0

} RemoteXY;   
#pragma pack(pop)

#include <Servo.h>  
Servo myservo; 

void setup() 
{
  RemoteXY_Init (); 
  
  myservo.attach(9); 
  RemoteXY.slider_01 = 50; 
  
  
}

void loop() 
{ 
  RemoteXY_Handler ();
  
  int ms = RemoteXY.slider_01*20+500; 
  myservo.writeMicroseconds(ms);
  
  // используйте структуру RemoteXY для передачи данных
  // не используйте функцию delay(), вместо нее используйте RemoteXY_delay() 


}

2

Re: Проблема с сервоприводом

Мы протестировали ваш скетч.
Видим что модуль постоянно перезагружается. Именно по этому нет точки доступа.
1. Когда мы убираем инициализацию myservo.attach(9) и myservo.writeMicroseconds(ms) модуль перестает перезагружаться и точка доступа появляется. То есть без servo.h все работает.
2. Мы загрузили следующий код и это так же привело к постоянной перезагрузке контроллера.

#include <Servo.h>  
Servo myservo; 

void setup() 
{
  myservo.attach(9); 
}

void loop() 
{ 
  myservo.writeMicroseconds(700);
}

То есть проблема кроется в библиотеке servo.h. Может быть она не может работать с пином номер 9, не знаю.
Что бы увидеть постоянную перезагрузку контроллера достаточно подключиться терминалом. Контроллер выводит диагностическую информацию что постоянный сброс происходит по ватчдогу.