久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
STM32小車四路pwm源程序,可尋跡,oled顯示,可pid調節
[打印本頁]
作者:
a15511302978
時間:
2019-7-19 15:11
標題:
STM32小車四路pwm源程序,可尋跡,oled顯示,可pid調節
這個c8t6小車是我參加電賽的時候做的,目前具有紅外尋跡,oled實時顯示時間,藍牙通信,在手機端上顯示小車運動時間,還有加入了mpu6050模塊和pid算法,實現了小車在蹺蹺板上的平衡。小車的照片和原理圖都放在附件里了,大家可以看一看。
制作出來的實物圖如下:
2.jpg
(89.43 KB, 下載次數: 59)
下載附件
2019-7-19 18:50 上傳
1.png
(98.31 KB, 下載次數: 81)
下載附件
2019-7-19 18:50 上傳
電路原理圖如下:
/**
* @par Copyright (C): 2010-2019, Shenzhen Yahboom Tech
* @file app_motor.c
* @author liusen
* @version V1.0
* @brief 小車運動控制函數
* @details
* @par History 見如下說明
*
* version: liusen_20170717
*/
#include "app_motor.h"
#include "sys.h"
#include "bsp_motor.h"
#define LeftMotor_Go() {GPIO_SetBits(Motor_Port, Left_MotoA_Pin); GPIO_ResetBits(Motor_Port, Left_MotoB_Pin);GPIO_SetBits(Motor_Port1, Left_MotoA1_Pin); GPIO_ResetBits(Motor_Port1, Left_MotoB1_Pin);}//反轉
#define LeftMotor_Back() {GPIO_ResetBits(Motor_Port, Left_MotoA_Pin); GPIO_SetBits(Motor_Port, Left_MotoB_Pin);GPIO_ResetBits(Motor_Port1, Left_MotoA1_Pin); GPIO_SetBits(Motor_Port1, Left_MotoB1_Pin);}//正轉
#define LeftMotor_Stop() {GPIO_ResetBits(Motor_Port, Left_MotoA_Pin); GPIO_ResetBits(Motor_Port, Left_MotoB_Pin);GPIO_ResetBits(Motor_Port1, Left_MotoA1_Pin); GPIO_ResetBits(Motor_Port1, Left_MotoB1_Pin);}//停止
#define RightMotor_Go() {GPIO_SetBits(Motor_Port, Right_MotoA_Pin); GPIO_ResetBits(Motor_Port, Right_MotoB_Pin);GPIO_SetBits(Motor_Port, Right_MotoA1_Pin); GPIO_ResetBits(Motor_Port, Right_MotoB1_Pin);}//反轉
#define RightMotor_Back() {GPIO_ResetBits(Motor_Port, Right_MotoA_Pin); GPIO_SetBits(Motor_Port, Right_MotoB_Pin);GPIO_ResetBits(Motor_Port, Right_MotoA1_Pin); GPIO_SetBits(Motor_Port, Right_MotoB1_Pin);}//正轉
#define RightMotor_Stop() {GPIO_ResetBits(Motor_Port, Right_MotoA_Pin); GPIO_ResetBits(Motor_Port, Right_MotoB_Pin);GPIO_ResetBits(Motor_Port, Right_MotoA1_Pin); GPIO_ResetBits(Motor_Port, Right_MotoB1_Pin);}//停止
#define LeftMotorPWM(Speed) TIM_SetCompare2(TIM4, Speed); //左前
#define RightMotorPWM(Speed) TIM_SetCompare1(TIM4, Speed); //右前
#define Left1MotorPWM(Speed) TIM_SetCompare3(TIM4, Speed); //左后
#define Right1MotorPWM(Speed) TIM_SetCompare4(TIM4, Speed); //右后
/**
* Function Car_Run
* @author liusen
* @date 2017.07.17
* @brief 小車前進
* @param[in] Speed (0~7200) 速度范圍
* @param[out] void
* @retval void
* @par History 無
*/
void Car_Run(int Speed)
{
LeftMotor_Go();
RightMotor_Go();
LeftMotorPWM(Speed);
RightMotorPWM(Speed);
Left1MotorPWM(Speed);
Right1MotorPWM(Speed);
}
/**
* Function Car_Back
* @author liusen
* @date 2017.07.17
* @brief 小車后退
* @param[in] Speed (0~7200) 速度范圍
* @param[out] void
* @retval void
* @par History 無
*/
void Car_Back(int Speed)
{
LeftMotor_Back();
RightMotor_Back();
LeftMotorPWM(Speed);
RightMotorPWM(Speed);
Left1MotorPWM(Speed);
Right1MotorPWM(Speed);
}
/**
* Function Car_Left
* @author liusen
* @date 2017.07.17
* @brief 小車左轉
* @param[in] Speed (0~7200) 速度范圍
* @param[out] void
* @retval void
* @par History 無
*/
void Car_Left(int Speed)
{
LeftMotor_Stop();
RightMotor_Go();
LeftMotorPWM(0);
RightMotorPWM(Speed);
Left1MotorPWM(0);
Right1MotorPWM(Speed);
}
/**
* Function Car_Right
* @author liusen
* @date 2017.07.17
* @brief 小車右轉
* @param[in] Speed (0~7200) 速度范圍
* @param[out] void
* @retval void
* @par History 無
*/
void Car_Right(int Speed)
{
LeftMotor_Go();
RightMotor_Stop();
LeftMotorPWM(Speed);
RightMotorPWM(0);
Left1MotorPWM(Speed);
Right1MotorPWM(0);
}
/**
* Function Car_Stop
* @author liusen
* @date 2017.07.17
* @brief 小車剎車
* @param[in] void
* @param[out] void
* @retval void
* @par History 無
*/
void Car_Stop(void)
{
LeftMotor_Stop();
RightMotor_Stop();
LeftMotorPWM(0);
RightMotorPWM(0);
Left1MotorPWM(0);
Right1MotorPWM(0);
}
void Car_Back_Left(int Speed)
{
LeftMotor_Stop();
RightMotor_Back();
LeftMotorPWM(0);
RightMotorPWM(Speed);
Left1MotorPWM(0);
Right1MotorPWM(Speed);
}
void Car_Back_Right(int Speed)
{
LeftMotor_Back();
RightMotor_Stop();
LeftMotorPWM(Speed);
RightMotorPWM(0);
Left1MotorPWM(Speed);
Right1MotorPWM(0);
}
/**
* Function Car_SpinLeft
* @author liusen
* @date 2017.07.17
* @brief 小車左旋
* @param[in] LeftSpeed:左電機速度 RightSpeed:右電機速度 取值范圍:(0~7200)
* @param[out] void
* @retval void
* @par History 無
*/
void Car_SpinLeft(int LeftSpeed, int RightSpeed)
{
LeftMotor_Back();
RightMotor_Go();
LeftMotorPWM(LeftSpeed);
RightMotorPWM(RightSpeed);
Left1MotorPWM(LeftSpeed);
Right1MotorPWM(RightSpeed);
}
/**
* Function Car_SpinRight
* @author liusen
* @date 2017.07.17
* @brief 小車右旋
* @param[in] LeftSpeed:左電機速度 RightSpeed:右電機速度 取值范圍:(0~7200)
* @param[out] void
* @retval void
* @par History 無
*/
void Car_SpinRight(int LeftSpeed, int RightSpeed)
{
LeftMotor_Go();
RightMotor_Back();
Left1MotorPWM(LeftSpeed);
Right1MotorPWM(RightSpeed);
LeftMotorPWM(LeftSpeed);
RightMotorPWM(RightSpeed);
}
全部程序51hei下載地址:
c8t6小車程序.7z
(321.49 KB, 下載次數: 267)
2019-7-19 18:05 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
admin
時間:
2019-7-19 18:06
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
作者:
liding12356
時間:
2020-12-28 10:18
我想問一下樓主大神,就APP控制的這個部分,APP的藍牙這邊廠商來給的嗎?
作者:
一心湯
時間:
2023-10-29 22:14
請問這個引腳怎么接線的
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一区二区三区福利视频
|
天天视频成人
|
国产91在线 | 亚洲
|
亚洲精品久久久久久一区二区
|
欧美日在线
|
污免费网站
|
一区在线观看
|
91精品国产91久久久久久最新
|
成人精品久久
|
日韩精品久久一区二区三区
|
国产中文字幕在线
|
天天精品在线
|
在线看片国产精品
|
久久综合伊人一区二区三
|
国产成人福利视频
|
亚洲首页
|
亚洲大片一区
|
久久亚洲精品国产精品紫薇
|
九九精品在线
|
国产成人精品一区二区三区视频
|
特级丰满少妇一级aaaa爱毛片
|
中文字幕一区在线观看视频
|
久久国产精品一区二区三区
|
欧美日一区二区
|
免费观看黄
|
亚洲国产成人在线观看
|
亚洲一区二区三区免费在线观看
|
国产亚洲一区二区在线观看
|
电影午夜精品一区二区三区
|
日本欧美国产在线观看
|
亚洲超碰在线观看
|
久久亚洲国产精品日日av夜夜
|
日韩免费网站
|
午夜精品一区二区三区在线观看
|
日日摸日日添日日躁av
|
一级黄色生活视频
|
a在线视频
|
国产一区二区三区免费观看视频
|
中文字幕一区二区三区精彩视频
|
夜夜草
|
国产精品久久国产精品久久
|