Arduino(四)——可调电阻控制数码管数字
本来我们主要有 3 个方面
1.Arduino常见报错
2.AI模拟输入
3.可调电阻
1.Arduino常见的报错,我们来看下面这个
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0xdb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0xdb
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0xdb
...
我们最常见的报错,也就是这种,那这到底是什么出了问题呢?
其实他是板子引导少坏了,一种简单的办法就是,我们把USB线拔出来重新拔出来再插入就行了(亲测)
还有一种也就是你的代码输错了,也会出现这个错误,遇到错误的时候我们首先就是要检查是否是我们的代码出错了
2.AI模拟输入
int analogRead (pin)表示0~7,就是我们的A1~A,可以接受模拟信号,我们所用的单片机是10位的,所以我们把 0~5 v 分成1024份(2的5次方),所以我们用 int 定义这个函数(因为这是整型),
我们再看这个代码
int table[10] = {0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F};
void abc(int data)// 数字段码
{int c = table[data];for ( int i = 3 ; i <= 9 ; i++){digitalWrite(i, c & 0x01);c >>= 1;}delay(100);}void setup() {for (int i = 3 ; i <= 9 ; i++){pinMode(i, OUTPUT);}
}void loop() {int a;int b;a = analogRead(1);b = a / 200;abc(b);}
我们在这里 (前半部分参见Arduino(二)),后面的loop是我们的关键部分,我们定义一个 a,b,我们让 a 赋值 analogRead(1)所读取的数(也就是0~1024),然后我们 让b赋值为a/200,
也就是取值为 0~5,然后我们放到abc子函数里,所以我们的数码管里的数字就会随着电压的变化而变化
3.可调蓝白电阻
一端接地 一端接正5伏 中间抽头接Ax(1<=x<=7)

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
