在旋转倒立摆的制作过程中,我们主要需要用到两个传感器,一个是位于底部的带编码器直流减速电机,还有一个是连接摆杆的角位移传感器。
首先给大家介绍一下角位移传感器的原理,并贴上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;
}