我是无意中看到这个论坛的,一直来很想学学单片机,书买了几本在家看看太难太难,慢慢地就死了这份心。
前几天无意中发现这里Arduino学习板,于是死了的心又复燃了,买了一块板子回来捣鼓了两天发现难度还是有的,太多的疑问没搞懂。反正是捣鼓出来的就放了上来献下丑!!
原理是这样的,A0口读取光敏电阻上的电压送给4为数码(我实际用了两位)管显示出来,Arduino板根据A0口数值来判断做出,小于200数值A5有输出黄色发光管亮,A0大于700数值A4脚有输出红色发光管亮。代码都是这里抄来的,我水平太差只能看的半懂不懂??
本想弄成有外部按键可以调整int a =200; int b =700;这两个数值的,太难了搞不定的。留给楼下大侠继续捣鼓。
/*
作者:极客工坊-迷你强
时间:2013年1月11日
IDE版本号:1.0.1
发布地址:www.geek-workshop.com
作用:arduino驱动数码管使用电位器旋转调整数值
7段数码管具体表现方法如下
A
____
| |
F |____| B
| G |
E |____| C
o DP
D
引脚分布情况是这样滴
10 9 8 7 6
________
| __ |
| |__| |
| |__|o |
|________|
1 2 3 4 5
* 怎么接到arduino上呢?
* 首先看3和8这两个管脚,一般是共级,套件是共阳数码管,所以这两个是+极,两个引脚其实是接在一起的,所以我们使用其中一个即可
* 1 (E) 接到arduino的 10号引脚
* 2 (D) 接到arduino的 9号引脚
* 3 因为我们只使用1位数码管,所以请将本引脚或者8号引脚的任意一个接到arduino的5号数字口即可
* 4 (C) 接到arduino的 8号引脚
* 5 (DP) 接到arduino的13号引脚
* 6 (B) 接到arduino的7号引脚
* 7 (A) 接到arduino的6号引脚
* 8 因为我们只使用1位数码管,所以请将本引脚或者3号引脚的任意一个接到arduino的5号数字口即可
* 9 (F) 接到arduino的11号引脚
* 10 (G) 接到arduino的12号引脚
*/
int a =200;
int b =700;
#include "SevSeg.h"
SevSeg sevseg;
void setup() {
//定义需要使用的引脚
pinMode(A5,OUTPUT);
pinMode(A4,OUTPUT);
sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13);
}
void loop() {
//激活输出功能
int n = analogRead(A0);
Serial.println(n);
if (n>= a )
{
digitalWrite(A5,HIGH);
}
else
{
digitalWrite(A5,LOW);
}
if (n<=b)
{
digitalWrite(A4,HIGH);
}
else
{
digitalWrite(A4,LOW);
}
sevseg.PrintOutput();
int val = analogRead(A0);
val = map(val,0,1023,0,99); //使用map函数来做数值映射
sevseg.NewNum(val, 3); //数码管函数输出数字,其中数值为小数点所在位置,我放在第四格所以效果就是不显示小数点
} |