最近使用ATtiny85做一个应用的时候,需要模拟量采集,之前参考了一下网友的代码,analogRead(3)很容易就能采集到信号,但是换其余的引脚就不行。
后来翻了一下官方手册,查了引脚定义,觉得可能是Arduino IDE里面analogRead()函数用的是ADC序号而不是引脚序号。因为ADC3与PB3对应,所以analogRead(3)我的硬件连接是对的,其余ADC我的硬件连接错了,所以采集不到信号。
另外,在arduino网站上也搜到了类似的问题,下面有人给的解答也是这样的。
所以,如果使用Arduino IDE开发Digispark ATtiny85,那么ADC采样的引脚定义如下:
analogRead(ADC_NUMBER); //ADC_NUMBER填0、1、2、3
/* ADC_NUMBER -- 开发板引脚
ADC0 -- PB5
ADC1 -- PB2
ADC2 -- PB4
ADC3 -- PB3
*/
最近使用ATtiny85做一个应用的时候,需要模拟量采集,之前参考了一下网友的代码,analogRead(3)很容易就能采集到信号,但是换其余的引脚就不行。
后来翻了一下官方手册,查了引脚定义,觉得可能是Arduino IDE里面analogRead()函数用的是ADC序号而不是引脚序号。因为ADC3与PB3对应,所以analogRead(3)我的硬件连接是对的,其余ADC我的硬件连接错了,所以采集不到信号。
另外,在arduino网站上也搜到了类似的问题,下面有人给的解答也是这样的。
所以,如果使用Arduino IDE开发Digispark ATtiny85,那么ADC采样的引脚定义如下:
analogRead(ADC_NUMBER); //ADC_NUMBER填0、1、2、3
/* ADC_NUMBER -- 开发板引脚
ADC0 -- PB5
ADC1 -- PB2
ADC2 -- PB4
ADC3 -- PB3
*/
举报