在旋转倒立摆的制作过程中,我们主要需要用到两个传感器,一个是位于底部的带编码器直流减速电机,还有一个是连接摆杆的角位移传感器

首先给大家介绍一下角位移传感器的原理,并贴上STM32库函数的配置代码。

电容式角位移传感器用于测量固定部件(定子)与转动部件(转子)之间的旋转角度,因其具有结构简单,测量精度高,灵敏度高,适合动态测量等特点,而被广泛应用于工业自动控制。

一般来说,电容式角位移传感器由一组或若干组扇形固定极板和转动极板组成,为保证传感器的精度和灵敏度,同时避免因环境温度等因素的改变导致介电常数、极板形状等的间接变化,进而对传感器性能产生不利影响,对传感器的制作材料、加工工艺以及安装精度提出了较高要求,为了克服电容角位移传感器的局限性,国内外科学工作者进行了长期的大量研究工作,其主要思想方法是将传感器设计成差动结构。

这是该传感器的代码

void Adc_Init(void)
{    
 	ADC_InitTypeDef ADC_InitStructure; 
	GPIO_InitTypeDef GPIO_InitStructure;
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_ADC1	, ENABLE );	 
	RCC_ADCCLKConfig(RCC_PCLK2_Div6);  
                       
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_6;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;	
	GPIO_Init(GPIOA, &GPIO_InitStructure);	
	ADC_DeInit(ADC1);  
	ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;	
	ADC_InitStructure.ADC_ScanConvMode = DISABLE;
	ADC_InitStructure.ADC_ContinuousConvMode = DISABLE;	
	ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;	
	ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;	
	ADC_InitStructure.ADC_NbrOfChannel = 1;	
	ADC_Init(ADC1, &ADC_InitStructure);
  ADC_Cmd(ADC1, ENABLE);	
	ADC_ResetCalibration(ADC1);		 
	while(ADC_GetResetCalibrationStatus(ADC1));		
	ADC_StartCalibration(ADC1);	
	while(ADC_GetCalibrationStatus(ADC1));	 
}		









u1Get_Adc_Average(u8 ch,u8 times)
{
	u32 temp_val=0;
	u8 t;
	for(t=0;t<times;t++)
	{
		temp_val+=Get_Adc(ch);
		delay_us(200);
	}
	return temp_val/times;
}