小白做四轴前篇(2)设计电源与电池

#与你相遇
在我找资料的过程中,我见到了大四轴与小四轴,特别是crazepony的开源精神让我敬佩,我想做的就是一个小四轴,大四轴是我未来的想法,毕竟大四轴需要天地飞等比较贵的遥控器等,屌丝我表示买不起。

#四轴基本组成部分

  • 动力部分:电机、电机驱动、桨叶
  • 控制部分:MCU、sensor、无线通讯
  • 电源部分:电池、稳压模块
    首先我可以确认的是我想用STM32来做飞控,这样可以学到不少知识。
    ##power部分设计
    在我看来市场上所能买到的小四轴的锂电池为3.7V,那么现在我需要做的是如何将这个3.7V的电压稳定到5V。

这个电路已经验证完毕,同过VSYS的电压输入后,可以产生5V的电压。

具体是咋么算的。可以参考LM27313的spec。
还要检查电池的电量,告诉控制终端,电没了,快放我下来。

##代码实现
代码已经公开,请查看提交18

void  adc_setting(const uint32_t Periph,ADC_TypeDef* adc_bus,uint32_t adc_mode,FunctionalState adcscanmode,FunctionalState adcConvMode,uint32_t adc_extern,uint32_t adc_dataaign,int adc_channel)
{
    ADC_InitTypeDef ADC_InitStructure; 
	  RCC_APB2PeriphClockCmd(Periph, ENABLE );	  //
	  ADC_DeInit(adc_bus);  //
	 
    ADC_InitStructure.ADC_Mode = adc_mode;	//
	ADC_InitStructure.ADC_ScanConvMode = adcscanmode;	//
	ADC_InitStructure.ADC_ContinuousConvMode = adcConvMode;	//
	ADC_InitStructure.ADC_ExternalTrigConv = adc_extern;	//
	ADC_InitStructure.ADC_DataAlign = adc_dataaign;	//
	ADC_InitStructure.ADC_NbrOfChannel = adc_channel;	//
	ADC_Init(adc_bus, &ADC_InitStructure);	// 
	ADC_Cmd(adc_bus, ENABLE);	//
	
	ADC_ResetCalibration(adc_bus);	//
	 
	while(ADC_GetResetCalibrationStatus(adc_bus));	//
	
	ADC_StartCalibration(adc_bus);	 //
 
	while(ADC_GetCalibrationStatus(adc_bus));	 //
 
//	ADC_SoftwareStartConvCmd(ADC1, ENABLE);		
}

void adc_init(void)
{
	 gpio_register_input(RCC_APB2Periph_GPIOA,GPIOA,GPIO_Pin_4,GPIO_Mode_AIN);	 adc_setting(RCC_APB2Periph_ADC1,ADC1,ADC_Mode_Independent,DISABLE,DISABLE,ADC_ExternalTrigConv_None,ADC_DataAlign_Right,1);
}

u16 get_adc(u8 ch,ADC_TypeDef* adc_bus)   
{
	ADC_RegularChannelConfig(adc_bus, ch, 1, ADC_SampleTime_239Cycles5 );	  			    
  
	ADC_SoftwareStartConvCmd(adc_bus, ENABLE);		
	 
	while(!ADC_GetFlagStatus(adc_bus, ADC_FLAG_EOC ));

	return ADC_GetConversionValue(adc_bus);	
}

u16 Get_Adc_Average(u8 ch)
{
	u32 temp_val=0;
	u8 t;
	for(t=0;t<10;t++)
	{
		temp_val+=get_adc(ch,ADC1);
		systick_ms(5);
	}
	return temp_val/10;
} 	 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值