智能小车二十一 《电压检测模块设计》

Posted 北漂程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了智能小车二十一 《电压检测模块设计》相关的知识,希望对你有一定的参考价值。

小车经常出现一个问题:玩着玩着,操作它前后左右动,但它不动。这时候就不知道到底是那儿的问题,是线断了还是电压不够了。经过我很多次的经验得出,这是因为没电了。因为我每次这时候都会拿电压表去测一下,发现电池电压都在6v以下了。根据这个线索我设计了一个小电路来测电压。

技术分享

我计划是用小led灯来报警,当电压不足时,灯就常亮。电压不够时(6v)一般小灯还是能够点亮的。经查资料,5mm小灯的工作电流是20ma,红、黄颜色电压是1.8-2.4之间,蓝、白、绿的电压则是3.0-3.6之间.我现在有一个白灯,那么需要的电阻上的电压是2v(5v-3v),而电阻是20ma,那么电阻值就应该是100欧(2/0.02)。上面是计算出的理论值,而我实际测试发现220欧的太亮,用10k欧的亮度还比较合适,电压是2.6v。我就用这个电阻了。

技术分享

测试的电压需小于5v,那么最小电阻是250欧(5/0.02)。因为这两电阻要直接串到电源两端,相当于放电,那么电阻要足够大,这样电流比较小才不会很快放完电。我用两个440k的,这样电流是2微安,应该可以了。

技术分享

最终搭建电路效果如图:

技术分享

最后是写代码来测试电压与控制小灯的开和关。代码如下:
float tVoltage=0;//ao读取电压值
float tCurrent; //电流
float tResistance=500000;//电阻
int tVcc=5;//电压换算单位,最大5v
int limitVoltage=3;//电压在这个数以下就报警
int time=0;//计数
int lightFlagPin=3;//电灯开头引脚
void setup() {
  pinMode(lightFlagPin,OUTPUT);
  digitalWrite(lightFlagPin,LOW);
  Serial.begin(9600);  //定义串口波特率为9600
}

void loop() {
time=time+1;
tVoltage = analogRead(A0);  //读取A0口值
tVoltage=tVoltage/1023*tVcc;  //换算为电压值
if(tVoltage<limitVoltage){
  digitalWrite(lightFlagPin,HIGH);
}else{
   digitalWrite(lightFlagPin,LOW);
}
tCurrent=tVoltage/tResistance;
delay(3000);        // 3秒刷新一次
}










































以上是关于智能小车二十一 《电压检测模块设计》的主要内容,如果未能解决你的问题,请参考以下文章

智能小车十一《完成小车电路板设计》

毕业设计:基于单片机的超声波智能跟随小车 - 物联网 智能小车 嵌入式单片机 stm32 跟随小车

智能小车二十《摄像头和路由器装上小车》

基于单片机智能自动循迹小车控制系统设计 毕设课设资料

IoT寻光智能车与循迹智能车

毕业设计 - 题目:基于 STM32 的自动泊车系统 -智能小车 自动停车