ESP32 两个不同速度的步进电机
ESP32 Two stepper motor on different speed
我想同时控制两台步进电机,但其中一台速度要慢(与另一台步进电机相比大约要慢 83%)。我正在使用 esp32 进行编程。根据我的代码,我只能同时更改两个步进电机的速度。
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "driver/gpio.h"
#include "errno.h"
#include "string.h"
#include "esp_log.h"
#include "driver/mcpwm.h"
#define dir 26
#define step 25
#define dir1 21
#define step1 19
void app_main(void) {
printf("hello");
gpio_reset_pin(dir);
gpio_reset_pin(step);
gpio_reset_pin(dir1);
gpio_reset_pin(step1);
gpio_set_direction(dir, GPIO_MODE_OUTPUT);
gpio_set_direction(step, GPIO_MODE_OUTPUT);
gpio_set_direction(dir1, GPIO_MODE_OUTPUT);
gpio_set_direction(step1, GPIO_MODE_OUTPUT);
while (1)
{
vTaskDelay(1000/portTICK_PERIOD_MS);
//Rechts
gpio_set_level(dir1, 1);
gpio_set_level(dir, 1);
for (int i = 0; i < 1500; i++)
{
gpio_set_level(step1, 1);
gpio_set_level(step, 1);
ets_delay_us(1500);
gpio_set_level(step1, 0);
gpio_set_level(step, 0);
ets_delay_us(1500);
}
您可以使用并行编程。所以你可以同时做两件事。所以如果你在这种情况下这样做,你可以比另一个更快地编程 1 个步进电机。有关 esp32
并行编程示例,请参阅 esp32 文档
我想同时控制两台步进电机,但其中一台速度要慢(与另一台步进电机相比大约要慢 83%)。我正在使用 esp32 进行编程。根据我的代码,我只能同时更改两个步进电机的速度。
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "esp_system.h"
#include "esp_spi_flash.h"
#include "driver/gpio.h"
#include "errno.h"
#include "string.h"
#include "esp_log.h"
#include "driver/mcpwm.h"
#define dir 26
#define step 25
#define dir1 21
#define step1 19
void app_main(void) {
printf("hello");
gpio_reset_pin(dir);
gpio_reset_pin(step);
gpio_reset_pin(dir1);
gpio_reset_pin(step1);
gpio_set_direction(dir, GPIO_MODE_OUTPUT);
gpio_set_direction(step, GPIO_MODE_OUTPUT);
gpio_set_direction(dir1, GPIO_MODE_OUTPUT);
gpio_set_direction(step1, GPIO_MODE_OUTPUT);
while (1)
{
vTaskDelay(1000/portTICK_PERIOD_MS);
//Rechts
gpio_set_level(dir1, 1);
gpio_set_level(dir, 1);
for (int i = 0; i < 1500; i++)
{
gpio_set_level(step1, 1);
gpio_set_level(step, 1);
ets_delay_us(1500);
gpio_set_level(step1, 0);
gpio_set_level(step, 0);
ets_delay_us(1500);
}
您可以使用并行编程。所以你可以同时做两件事。所以如果你在这种情况下这样做,你可以比另一个更快地编程 1 个步进电机。有关 esp32
并行编程示例,请参阅 esp32 文档