ADC是什么?
ADC代表模数转换器。ADC用于将模拟输入电压转换为数字形式。每个微控制器都有必要内置ADC,因为所有微控制器都只能处理数字输入和输出电压。因此,ADC将模拟电压转换为数字电压,并将其提供给微控制器。在Arduino UNO板中,有一个多通道10位ADC。这里,10位意味着0-3.3V或0-5V的输入电压被映射成范围0到1023的数字值。Arduino UNO上共有6个ADC引脚。这些引脚是A0、A1、A2、A3、A4和A5。为了最简单地理解这一点,我们将使用电位计和Arduino UNO板创建一个电路。在这个电路中,我们将使用电位计向Arduino UNO提供模拟电压。
电位计的引脚图
带Arduino UNO的电位器电路图
在Arduino编程中,我们将使用analogRead()函数读取模拟电压并将其转换为数字电压。语法是:analogRead(Pin_name)。在括号内,你必须提到你想从中读取模拟电压的引脚。下面是从电位计读取模拟电压的示例代码。
用于连接电位计和Arduino UNO的Arduino代码
int pot_pin=A0;
void setup()
{
pinMode(pot_pin,INPUT);
Serial.begin(9600);
}
void loop()
{
int pot_data=analogRead(pot_pin);
Serial.print(“Pot Data:”);
Serial.println(pot_data);
delay(500);
}
代码的工作
int pot_pin=A0;
首先,创建一个名为pot_pin的变量来存储连接了中间管脚的管脚号
void setup()
{
pinMode(pot_pin,INPUT);
Serial.begin(9600);
}
在void setup()函数中,首先将pot _ Set A0引脚设置为输入,因为Arduino将使用此引脚从电位计读取数据。然后使用Serial.begin(96000)命令,以9600的波特率启动串行通信。这是在串行监视器上显示电位计数据所必需的。
void loop()
{
int pot_data=analogRead(pot_pin);
在void loop()函数中,创建另一个名为pot_data的变量来存储Arduino从电位计接收的数据。为此,我们将使用analogRead()函数。
Serial.print(“Pot Data:”);
Serial.println(pot_data);
delay(500);
}
将电位计数据打印到串行监视器上,最后给出500毫秒的延迟。
输出窗
您可以在串行监视器中清楚地看到,我们正在串行监视器上获取0到1023之间的数字值。电位计连接在0到5伏之间。因此,ADC将获得0至5伏之间的值,并将其转换为0至1023伏的范围。假设输入电压是1伏,那么它的等效数字值将是204。你会在串行监视器上看到204。类似地,如果输入电压为2伏,您将获得串行监视器的等效数字值408。像这样,0到5伏之间的所有值都映射成0到1023。