本来我们主要有 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,
扫描二维码关注公众号,回复:
14456827 查看本文章
也就是取值为 0~5,然后我们放到abc子函数里,所以我们的数码管里的数字就会随着电压的变化而变化
3.可调蓝白电阻
一端接地 一端接正5伏 中间抽头接Ax(1<=x<=7)