加入星計劃,您可以享受以下權益:

  • 創(chuàng)作內容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入

20.2-電磁桿在磁軌道的測試 零基礎入門智能車競賽 電磁桿原理圖 電磁循跡小車 STM32電磁小車

08/23 08:40
1364
服務支持:
技術交流群

完成交易后在“購買成功”頁面掃碼入群,即可與技術大咖們分享疑惑和經(jīng)驗、收獲成長和認同、領取優(yōu)惠和紅包等。

虛擬商品不可退

當前內容為數(shù)字版權作品,購買后不支持退換且無法轉移使用。

加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論
放大
實物圖
  • 方案介紹
  • 推薦器件
  • 相關推薦
  • 電子產(chǎn)業(yè)圖譜
申請入駐 產(chǎn)業(yè)圖譜

功能介紹放開頭, 使用便捷無需愁。
這是全網(wǎng)最詳細、性價比最高的STM32實戰(zhàn)項目入門教程,通過合理的硬件設計和詳細的視頻筆記介紹,硬件使用STM32F103主控資料多方便學習,通過3萬字筆記、12多個小時視頻、20多章節(jié)代碼手把手教會你如何開發(fā)和調試。讓你更快掌握嵌入式系統(tǒng)開發(fā)。

V3.3.0-STM32智能小車
視頻: https://www.bilibili.com/video/BV16x4y1M7EN/?spm_id_from=333.337.search-card.all.click
V3:HAL庫開發(fā)、功能:PID速度控制、PID循跡、PID跟隨、遙控、避障、PID角度控制、視覺控制、電磁循跡、RTOS等功能。

使用示波器調試(如果沒有示波器可以不跟著做這節(jié))

  1. 先燒錄**“20-2_LED”**程序到單片機放置之前程序控制了四個引腳 導致影響 電磁桿電平,拔掉板子上的紅外對管線。

使用萬用表調試(如果沒有萬用表可以不跟著做這節(jié))

  1. 先燒錄**“20-2_LED”**程序到單片機

? 放置之前程序控制了四個引腳 導致影響 電磁桿電平,拔掉板子上的紅外對管線。

使用單片機測量電壓調試

需要準備的東西: 新版的沒有調試過的電磁桿、螺絲刀、小車、底板、杜邦線四根、6P的XH2.54線、攝像頭支架。

正式內容:

這里我們先用最簡單通過完全輪詢的方式實現(xiàn)(輪詢的速度足夠普通循跡小車場景使用)

如果想通過其他方式實現(xiàn)可以參考這幾篇文章:

STM32CubeMX | HAL庫的ADC多通道數(shù)據(jù)采集(輪訓、DMA、DMA+TIM)、讀取內部傳感器溫度_tim+adc+dma采集-CSDN博客

【STM32】HAL庫—快速使用ADC_stm32hal庫adc輪詢-CSDN博客

采樣時間和采樣頻率的計算

ADC采樣兩點間隔的時間一定要大于ADC的轉換時間!

需要等待ADC完成一次轉換后,再進行下一次采樣。如果采樣間隔時間小于ADC的轉換時間,那么你可能在一個轉換還沒有完成的情況下就開始了下一個采樣,這樣會導致數(shù)據(jù)丟失或者錯誤。

STM32F103 一般將時鐘配置主頻為72M、APB2為72M。ADC掛在APB2時鐘總線上,且ADC的時鐘不能超過14M。所以一般將ADC的分頻設置為6,ADC的時鐘主頻就為72/6=12MHz。那么一個周期就是:1/12MHz=0.0833us。

以下截圖為STM32F1參考手冊(手冊編號RM0008,可在ST官網(wǎng)直接搜索下載):
在這里插入圖片描述
上圖的意思是:ADC對輸入電壓采樣若干個ADC_CLK周期,這些周期可通過ADC_SMPR1和ADC_SMPR2寄存器中的SMP[2:0]位進行修改。每個通道都可以用不同的采樣時間進行采樣。

ADC轉換時間 = 采樣時間 + 12.5個周期

示例:
當ADC時鐘主頻為14MHz并且采樣時間為1.5個周期時:采樣時間 = 1.5 + 12.5 = 14個周期;一個周期的時間為1/14MHz,一共14個周期,1 / 14MHz * 14個周期 = 1us,那么此時ADC的采樣頻率就是1/1us=1000KHz=1MHz,這也是理論上ADC的最大采樣頻率。

STM32F1系列的時鐘主頻一般設置為了12M,采樣時間的設置所對應采樣頻率如下圖所示:
在這里插入圖片描述
知道了最短時間后,當ADC時鐘主頻為12M并且采樣時間為1.5個周期時,ADC采樣兩點的時間必須大于1.17us。

這個對我們現(xiàn)在編寫的循跡方式基本沒有影響,因為我們是每次測量完一組ADC,就進行計算處理、電機控制、OLED顯示等操作,這些操作時間肯定大于采樣時間

開啟完全輪詢

將代碼文件夾"MyCode_V3.3.0" 復制到桌面或者其他沒有中文字符的路徑。

然后我們復制一份19-5_LED命名 20-2_LED 在這個上面進行修改

打開"‘LED.ioc’" 我們把之前紅外循跡的四個GPIO做修改,改為ADC1的對應通道。
在這里插入圖片描述
設置ADC采集
在這里插入圖片描述
然后點擊生成代碼

用keil 打開項目工程

先編譯一下,因為之前把紅外對管四個更改了,所以有些報錯。

需要把錯誤的注釋掉。
在這里插入圖片描述
這里
在這里插入圖片描述
如果還有錯誤,這個需要刪掉
在這里插入圖片描述
然后編譯確定沒有錯誤
在這里插入圖片描述
增加用于保存ADC變量值的
在這里插入圖片描述

float g_fVoltage[4];//ADC電壓采集值 值對應的四個通道和引腳分別是 ADC1_NI5 PA5 、ADC1_NI7 PA7、ADC1_NI8 PB0、ADC1_NI9 PB1

我們把模式0顯示6050的代碼注釋掉
在這里插入圖片描述
然后我們添加代碼,把采集的數(shù)據(jù)顯示在屏幕上
在這里插入圖片描述

	//采集四個通道電壓值  
	for(int i=0;i<4;i++)
	{
		HAL_ADC_Start(&hadc1);
		HAL_ADC_PollForConversion(&hadc1,50);
		g_fVoltage[i]=(float)HAL_ADC_GetValue(&hadc1)/4096*3.300; 計算測量的電壓值 /4069是因為4096是12位ADC的最大值(即2^12)、*3.300 是將歸一化的數(shù)值乘以參考電壓
	}
	  
	sprintf((char *)OledString,"v1:%.2f v2:%.2f rn",g_fVoltage[0],g_fVoltage[1]);//顯示 1、2 電壓值
	OLED_ShowString(0,4,OledString,12);//這個是oled驅動里面的,是顯示位置的一個函數(shù),
	
	sprintf((char *)OledString,"v3:%.2f v4:%.2f rn",g_fVoltage[2],g_fVoltage[3]);//顯示3、4 電壓值
	OLED_ShowString(0,5,OledString,12);//這個是oled驅動里面的,是顯示位置的一個函數(shù),

然后代碼燒錄一下,可以用一根杜邦線,把3.3和其中一個引腳B0接到一起(注意不要把GND和3.3J接到一起)。

然后OLED對V3就會顯示3.30左右

注意:

  1. 不要把3.3和GND引腳用杜邦線插一起。
  2. 把四個紅外對管都要拔掉。
    在這里插入圖片描述
    然后我們把電磁循跡桿 放置到已經(jīng)通有正弦交流信號的上方,將電磁桿使用連接線,連接到底板上。

電磁桿連接線插入底板的方向如下:
在這里插入圖片描述
插上之后是這樣的不要插反了。
在這里插入圖片描述
擰動螺絲的同時觀察 四個通道電壓測量值的變化。

因為外面的兩個電感是和軌道垂直的,所以外面使用外面 兩個進行循跡。
在這里插入圖片描述
另一個通道的
在這里插入圖片描述
然后把小車放置到中間,小車的v1電壓和V4電壓應該測量值大致相同

在這里插入圖片描述

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風險等級 參考價格 更多信息
CM200C32.768KDZF-UT 1 Citizen Finedevice Co Ltd Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, ROHS COMPLIANT, PLASTIC, SMD, 4 PIN
$1.17 查看
R38-32.768-12.5 1 Raltron Electronics Corporation Parallel - Fundamental Quartz Crystal, 0.032768MHz Nom, HALOGEN FREE, ROHS AND REACH COMPLIANT PACKAGE-2
$0.06 查看
FM25CL64B-GTR 1 Cypress Semiconductor Memory Circuit, 8KX8, CMOS, PDSO8, SOIC-8

ECAD模型

下載ECAD模型
$4.24 查看

相關推薦

電子產(chǎn)業(yè)圖譜