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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3953|回復: 0
打印 上一主題 下一主題
收起左側

模擬剎車系統程序+PCB電路圖,stm32單片機主控

[復制鏈接]
跳轉到指定樓層
樓主
模擬剎車系統,stm32主控,帶iic模式oled屏,驅動一個電機,模擬汽車運動,實踐表明,很穩定。需要自己下載去打板,資料很詳細,程序、pcb、模塊資料等等一應俱全。

1、采用STM32的原因是因為驅動簡單,自帶ADC,pwm輸出,功耗也低。
2、L9110是電機驅動芯片,供電之后,給正反轉引腳加pwm或者高低電平就行,而且隔離了控制端與電機端,能對控制端起到保護作用。
3、AO3401是PMOS管,在電路里面用了兩個,構成防反接電路。
4、四線制swd下載方式,請自行百度,不再贅述。
5、為什么單獨開了個串口不用,是因為在調試程序的過程中可以用他來返回調試信息,能更快的填好程序。
6、XL-1509-5V是開關電源芯片,選用他的原因是,它價格低,,使用簡單,保證一個電感和電容即可穩定輸出5V電源。
7、OLED是四線制iic通訊方式,程序簡單,驅動快速,能顯示中英文,字符等等,不管是在功能上還是接線方式上都比1602和12864簡單。


Altium Designer畫的STM32模擬剎車系統電路原理圖和PCB圖如下:(51hei附件中可下載工程文件)


單片機源程序如下:
  1. #include "stm32f10x.h"
  2. #include "bsp_usart.h"
  3. #include "bsp_adc.h"
  4. #include "bsp_pwm_output.h"
  5. #include "TIM2.h"
  6. #include "UltrasonicWave.h"
  7. #include "bsp_systick.h"
  8. #include "OLED_I2C.h"
  9. #include "bsp_i2c_gpio.h"
  10. #include "bsp_buzz.h"


  11. void KaiJi_Init(void);
  12. void  OLED_deal(void);
  13. extern float UltrasonicWave_Distance;
  14. extern uint8_t modeflage;
  15. /**
  16.   * @brief  主函數
  17.   * @param  無
  18.   * @retval 無
  19.   */
  20. int main(void)
  21. {               
  22.     SystemInit();
  23.                 USART_Config();
  24.                 GENERAL_TIM_Init();
  25.                 ADCx_Init();
  26.                 NVIC_Configuration();
  27.                 TIM2_Configuration();
  28.                 UltrasonicWave_Configuration();
  29.           i2c_Init();//I2C總線的GPIO初始化
  30.            OLED_Init();//oled初始化
  31.           Buzz_GPIO_Config();
  32.           KaiJi_Init();
  33.         printf("\r\n ---智能剎車系統----\r\n");
  34.        
  35.         while (1)
  36.         {       
  37.                
  38. //                KaiJi_Init();
  39.                
  40.                 OLED_deal();
  41.                 ADC_deal();
  42.                 UltrasonicWave_StartMeasure();
  43.                 ZDSC_Init();
  44.                 SHACHE_Init();
  45.           Buzz_serve();
  46.          
  47.         }
  48. }
  49. /*********************************************END OF FILE**********************/
  50. //開機顯示函數
  51. void KaiJi_Init(void)
  52. {
  53.         int i;
  54.         for(i=3;i<7;i++){OLED_ShowCN((i-1)*16,0,i);}
  55.   OLED_ShowStr(12,3,(unsigned char*)"Name:",2);
  56.         for(i=0;i<3;i++){OLED_ShowCN((i+4)*16,3,i);}
  57.         OLED_ShowStr(12,6,(unsigned char*)"Date:",2);
  58.         OLED_ShowStr(52,6,(unsigned char*)"2019/4/15",2);
  59.         Systick_delay_ms(2500);
  60.         OLED_CLS();
  61. }


  62. void  OLED_deal(void)
  63. {
  64.         int i;
  65. char j=10;
  66.         for(i=7;i<13;i++){OLED_ShowCN((i-6)*16,0,i);}
  67.           //定義三個數組,作為傳感器值緩沖
  68.                 char buffer1[5]={0},buffer2[5]={0};
  69.                 //用sprintf函數將測量值轉換為字符形式
  70.           sprintf(buffer1,"%.2f",UltrasonicWave_Distance);
  71.                 sprintf(buffer2,"%d",(TIM_GetCapture2(TIM1))/90);
  72. //                printf("%s\r\n%d\r\n",buffer2,(7200-TIM_GetCapture2(TIM1))/72);
  73. //                printf("\r\n%d\r\n",TIM_GetCapture2(TIM1));
  74.                 if(modeflage==1)
  75.                 {
  76.                
  77.                 //distance from  the car in front 簡稱DFCF,表示離前車的距離
  78.                 OLED_ShowStr(0,2,(unsigned char*)"DFCF:",2);
  79.                 //顯示溫度測量值
  80.                 OLED_ShowStr(40,2,buffer1,2);
  81.                 //顯示單位cm
  82.                 OLED_ShowStr(72,2,(unsigned char*)"CM  ",2);
  83.                 //顯示運行模式,具體作用函數在ZDSC_Init();里面:
  84.                 OLED_ShowStr(0,4,(unsigned char*)"MODE:",2);
  85.                 OLED_ShowStr(72,4,"      ",2);

  86.                 //顯示速度
  87.                 OLED_ShowStr(0,6,(unsigned char*)"SPEED:",2);
  88.                 //顯示模擬速度量0->80
  89.                 if(TIM_GetCapture2(TIM1)<720)
  90.                   {
  91.                         OLED_ShowStr(48,6,buffer2,2);
  92.                   OLED_ShowStr(56,6,"         ",2);
  93.                   }
  94.                 else
  95.                         {
  96.                          OLED_ShowStr(48,6,buffer2,2);
  97.                          OLED_ShowStr(64,6,"        ",2);
  98.                    }
  99.                 }
  100.                 if(modeflage==0)
  101.                 {
  102.                 //顯示        警告信息
  103.     OLED_ShowStr(0,2,"   ",2);
  104.                 OLED_ShowStr(24,2,(unsigned char*)"Warning!!!",2);
  105.                 //顯示即將撞車
  106.           OLED_ShowStr(0,4,"   ",2);
  107.                 OLED_ShowStr(20,4,(unsigned char*)"Crash Soon!",2);       
  108.           //顯示緊急制動
  109.                 OLED_ShowStr(0,6,(unsigned char*)"EmergencyBraking",2);
  110.                 }
  111. }
復制代碼

所有資料51hei提供下載:
剎車系統pcb+程序.7z (7.39 MB, 下載次數: 39)
資料.7z (5.34 MB, 下載次數: 30)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏1 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 一区二区精品视频 | 日韩快播电影网 | 国产成人精品一区二区三区 | 欧美成人一区二区三区片免费 | 大伊人久久 | 天堂资源最新在线 | www.久久精品 | 日本特黄a级高清免费大片 特黄色一级毛片 | 婷婷福利 | 久久高清免费视频 | 国产成人精品一区二三区在线观看 | 欧美一区二区三区电影 | 999免费观看视频 | 九九九久久国产免费 | 免费视频一区二区 | 国产一在线观看 | 国产一区二区三区久久久久久久久 | 国产在线观看一区二区三区 | av在线免费不卡 | 中文字幕二区 | 成人永久免费 | a在线v| 成人av鲁丝片一区二区小说 | 国产999精品久久久 日本视频一区二区三区 | 精品国产乱码久久久久久影片 | 亚洲欧美一区二区三区国产精品 | 91色在线视频 | 99精品在线观看 | 国产 日韩 欧美 在线 | 久久久久成人精品免费播放动漫 | 国产精品久久久久久久久久99 | 一区二区三区国产精品 | 在线欧美视频 | 日本淫视频 | 天天综合网天天综合色 | 国产免费一区二区三区免费视频 | 九一视频在线播放 | 亚洲国产精品激情在线观看 | 在线激情视频 | 日韩国产精品一区二区三区 | 日韩中文字幕在线观看视频 |