Как я могу добавить две разные программы bldc motor и servo motor в одну, чтобы они работали параллельно?
Это для серводвигателя:
#include <Servo.h> //Библиотека сервоприводов
Servo servo_test;
//инициализировать объект сервопривода для подключенного сервопривода
int angle = 0;
void setup() {
servo_test.attach(9);
}
void loop() {
for(angle = 0; angle < 180; angle += 1) {
servo_test.write(angle);
delay(15);
}
delay(1000);
for(angle = 180; angle>=1; angle-=5) {
servo_test.write(angle);
delay(5);
}
delay(1000);
}
Это для двигателя bldc с esc:
#include <Servo.h>
Servo esc_signal;
void setup() {
esc_signal.attach(12);
esc_signal.write(30);
delay(3000);
}
void loop() {
esc_signal.write(55);
delay(15);
}
@ashish, 👍1
Обсуждение2 ответа
▲ -1
В зависимости от того, как управляется код. Самым простым было бы просто запустить loop1 и loop2 в новом цикле.
,
@dannyf
Но это заставило бы код выполняться последовательно, а не параллельно, как просил ОП. Вы не можете выполнять параллель на Arduino., @Code Gorilla
▲ -1
Попробуйте этот код. Это может быть полезно.
#include <Servo.h> //Библиотека сервоприводов
Servo servo_test; //Инициализировать объект сервопривода для подключенного сервопривода
int angle = 0;
Servo esc_signal;
void setup()
{
servo_test.attach(9);
esc_signal.attach(12);
esc_signal.write(30);
delay(3000);
}
void loop()
{
servoFun();
bldcFun();
}
void servoFun()
{
for(angle = 0; angle < 180; angle += 1)
{
servo_test.write(angle);
delay(15);
}
delay(1000);
for(angle = 180; angle>=1; angle-=5)
{
servo_test.write(angle);
delay(5);
}
delay(1000);
}
void bldcFun()
{
esc_signal.write(55);
delay(15);
}
,
@Hasan
Нет. Это совсем не будет делать то, что требуется*., @Chris Stratton
Смотрите также:
- Как использовать SPI на Arduino?
- Как решить проблему «avrdude: stk500_recv(): programmer is not responding»?
- Как создать несколько запущенных потоков?
- Как подключиться к Arduino с помощью WiFi?
- avrdude ser_open() can't set com-state
- Как узнать частоту дискретизации?
- Что такое Serial.begin(9600)?
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Первым делом прочтите [Мигание без промедления]. (https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay) Учебник по Arduino, а затем удалите все вызовы функции delay () из ваших программ., @Edgar Bonet
На самом деле, такая задача не является несовместимой с использованием задержек блокировки, но они должны использоваться с большей координацией и осторожностью., @Chris Stratton