久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STM32小車四路pwm源程序,可尋跡,oled顯示,可pid調節 [打印本頁]

作者: a15511302978    時間: 2019-7-19 15:11
標題: STM32小車四路pwm源程序,可尋跡,oled顯示,可pid調節
這個c8t6小車是我參加電賽的時候做的,目前具有紅外尋跡,oled實時顯示時間,藍牙通信,在手機端上顯示小車運動時間,還有加入了mpu6050模塊和pid算法,實現了小車在蹺蹺板上的平衡。小車的照片和原理圖都放在附件里了,大家可以看一看。

制作出來的實物圖如下:


電路原理圖如下:

/**
* @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)

作者: 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
主站蜘蛛池模板: 男女啪啪高潮无遮挡免费动态 | 一级欧美 | 国产日产精品一区二区三区四区 | 国产黄色av网站 | 欧美专区在线视频 | 欧洲精品一区 | 欧美日韩久久久 | 亚洲三区在线 | 区一区二区三在线观看 | 91久久精品日日躁夜夜躁国产 | 国产黑丝av | 久干网| 曰韩一二三区 | 国产精品永久免费视频 | 人妖无码 | 欧美一级观看 | 欧美色欧美亚洲另类七区 | 成人九区| 国产区第一页 | 久久久久国产一级毛片高清网站 | 国产成人在线免费 | 国精日本亚洲欧州国产中文久久 | 最新中文字幕在线 | 久久久久久国产 | 成人午夜免费在线视频 | 成人免费大片黄在线播放 | 久久久国产一区二区三区 | www.亚洲.com| 精品久久国产 | 一级黄色片免费在线观看 | 一区二区三区中文字幕 | 国产欧美精品一区二区色综合朱莉 | 亚洲精品一区二区 | 中文字幕亚洲精品 | 免费成人高清在线视频 | 国产丝袜一区二区三区免费视频 | 国产1区2区3区 | 欧美中文字幕在线 | 凹凸日日摸日日碰夜夜 | 亚洲中国字幕 | xxx.在线观看 |