智能创客,中国最大的极客空间,智能平台,免费教学,视频教程,手把手教你创造儿时梦想!

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 11548|回复: 33
打印 上一主题 下一主题

[Arduino入门教程]第九课--用Arduino做0-5V量程的电压表

  [复制链接]

110

主题

396

帖子

2329

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2329
QQ
跳转到指定楼层
楼主
发表于 2014-3-25 16:22:29 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式
我们今天要涉及两个新的内容,arduino的串口通讯与模拟口的使用,模拟口之前我们介绍过就是可以测量0-5V的电压,然后对应返回0-1024的数值,今天我们就要利用arduino模拟口这个功能,来制作一个0-5V的电压表

注意:本实验电路设计没有相对复杂的保护电路,所以,千万别使用超过两节以上的AA电池,并且不要用来测量锂电池或者其他电源!!


需要准备的电子元件清单

ocrobot mango控制板(Arduino兼容)  一块  
面包板  一块  
面包板专用跳线  一盒  
1KΩ电阻  一枚  
USB连接线  一根  


下面我们来看设计的电路连接图



图上使用1K电阻的目的是在测量端悬空的情况下,将GND的基准电平引导到测量口,避免接口悬空受到干扰,

我们按照电路连接图搭建对应的实物电路





[C] 纯文本查看 复制代码
/*
 作者:极客工坊-迷你强
 时间:2012年6月19日
 IDE版本号:1.0.1
 发布地址:[url]www.geek-workshop.com[/url]
 作用:介绍使用arduino模拟口测量电压,作为0-5V电压表使用实验
 
*/
 
float temp;   //创建一个浮点型变量temp作为存储空间准备存放数据
void setup()
{
  Serial.begin(9600);     //使用9600的波特率进行串口通讯
}
void loop()
{
 
  int V1 = analogRead(A0);                    
//从A0口读取电压数据存入刚刚创建整数型变量V1,模拟口的电压测量范围为0-5V 返回的值为0-1024
  float vol = V1*(5.0 / 1023.0);               
//我们将 V1的值换算成实际电压值存入浮点型变量 vol
  if (vol == temp)                             
//这部分的判断是用来过滤重复的数据,只有本次的电压值和上次不一时才进行输出
  {
    temp = vol;                               //比较完成后,将这次的值存入比对比用的变量temp
  }
  else
  { 
    Serial.print(vol);                       //串口输出电压值,并且不换行  
    Serial.println(" V");                    //串口输出字符V,并且换行
    temp = vol;
    delay(1000);                           //输出完成后等待1秒钟,用于控制数据的刷新速度。
  }
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 支持支持 反对反对
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|小黑屋|手机版|智能创客 ( 桂ICP备14000828号

GMT+8, 2024-5-7 07:51 , Processed in 0.078827 second(s), 31 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表