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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3986|回復: 0
收起左側

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

[復制鏈接]
ID:272776 發表于 2019-7-13 22:27 | 顯示全部樓層 |閱讀模式
模擬剎車系統,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附件中可下載工程文件)
0.png 0.png 0.png

單片機源程序如下:
  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. }
復制代碼
0.png
所有資料51hei提供下載:
剎車系統pcb+程序.7z (7.39 MB, 下載次數: 39)
資料.7z (5.34 MB, 下載次數: 30)

評分

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

查看全部評分

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品女人久久久 | 国产美女黄色片 | 国产精品免费观看视频 | 国产成人精品免费 | 请别相信他免费喜剧电影在线观看 | 国内精品一区二区三区 | 精品国产乱码久久久久久图片 | 欧美一级全黄 | 久久99精品久久久久子伦 | 亚洲一区二区在线电影 | 成年免费大片黄在线观看一级 | 亚洲一区中文字幕 | 干干干操操操 | 美女人人操 | 色黄网站| 99精品久久 | 久久噜噜噜精品国产亚洲综合 | 成人在线一区二区 | 日本激情视频中文字幕 | 成人在线一区二区三区 | 国产精品视频久久 | 黄网免费 | 亚洲成人自拍 | 在线播放国产一区二区三区 | 成人国产精品久久 | 欧美日韩美女 | 欧美日韩视频网站 | 一本大道久久a久久精二百 国产成人免费在线 | 天堂色网| 欧美一区二区三区大片 | 水蜜桃亚洲一二三四在线 | 日韩毛片| 91久久久www播放日本观看 | 一级黄色片免费在线观看 | 国产一区二区三区四区三区四 | 欧美一级欧美三级在线观看 | 中文字幕 亚洲一区 | 国产一区二区三区四区三区四 | 国产精品福利视频 | 久久综合影院 | 在线精品观看 |