Arduino和电子初学者

Arduino和电子初学者,arduino,arduino-uno,Arduino,Arduino Uno,我正在用Arduino Uno微控制器进行一系列初学者练习。(不过,这是一个通用的,因为这是我得到的。) 我正在运行的程序,根据瞬时开关的状态,在发送1和0到串行输出之间交替,已将针脚2设置为开关的输入。但是在接线时,我意外地将跨接电缆最初插入到引脚3,发现按下按钮时,它仍然主要发送1。有些是0,但大部分是1 起初我认为可能只是董事会有点狡猾,但我认为我应该做一点实验。当按下按钮时,插入插脚3而不是插脚2仍然相当一致地发送1,尽管1的流动比插入插脚2时稍微不一致。在引脚2中,通过比较,它是完全一

我正在用Arduino Uno微控制器进行一系列初学者练习。(不过,这是一个通用的,因为这是我得到的。)

我正在运行的程序,根据瞬时开关的状态,在发送1和0到串行输出之间交替,已将针脚2设置为开关的输入。但是在接线时,我意外地将跨接电缆最初插入到引脚3,发现按下按钮时,它仍然主要发送1。有些是0,但大部分是1

起初我认为可能只是董事会有点狡猾,但我认为我应该做一点实验。当按下按钮时,插入插脚3而不是插脚2仍然相当一致地发送1,尽管1的流动比插入插脚2时稍微不一致。在引脚2中,通过比较,它是完全一致的。所以我尝试了第4针,但那一个根本没有反应

我是否正确地假设,当我将电缆从我编程用作输入的引脚上移开得越远时,程序读数的响应性似乎就越差?有人能帮我理解为什么会这样吗

很明显,我对电子技术还不熟悉。:)

我上传到董事会的程序如下:

// digital pin 2 has a pushbutton attached to it. Give it a name:
int pushButton = 2;
// the setup routine runs once when you press reset:
void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  // make the pushbutton's pin an input: 
  pinMode(pushButton, INPUT);
}
// the loop routine runs over and over again forever:
void loop() {
  // read the input pin:
  int buttonState = digitalRead(pushButton);
  // print out the state of the button: 
  Serial.println(buttonState);
  delay(1); // delay in between reads for stability
}

浮动销容易产生噪音。如果您实际上没有将任何东西连接到引脚2,您将读取噪声。连接到引脚2的任何导线(即使是电路板上的连接)都将起到天线的作用并拾取噪声。在这种情况下,您应该始终使用物理连接的管脚编号。

浮动管脚容易产生噪音。如果您实际上没有将任何东西连接到引脚2,您将读取噪声。连接到引脚2的任何导线(即使是电路板上的连接)都将起到天线的作用并拾取噪声。在这种情况下,您应该始终使用物理连接的管脚号。

保持输入管脚打开会使微控制器读取一个浮动值,该值在0到1之间波动。此外,当将开关连接到任何引脚时,确保勾住一些下拉电阻器,使输入为0。
这些对于许多电子产品来说都是常见的,在设计自己的电路时要适当注意。

保持输入引脚打开会使微控制器读取一个浮动值,该值在0到1之间波动。此外,当将开关连接到任何引脚时,确保勾住一些下拉电阻器,使输入为0。
这些对于许多电子产品来说都很常见,在设计自己的电路时需要注意。

您需要查看数据表,其中描述了管脚的功能

MCU的引脚可以通过特殊寄存器分配各种功能

引脚最常见的两个功能是输入和输出。MCU提供内部上拉和下拉电阻器,正确使用时可显著简化电子模式

如果输入作为
input
激活,而没有任何
pull-?
,则其状态未定义,可以用作随机数生成器的启动器。由于这个原因,最好通过连接
拉-?
电阻器来定义输入引脚的默认状态

在Arduino IDE中,您不仅限于提供的功能,还可以直接使用
寄存器
操作,您只需要了解MCU的内部结构

若你们做得很好,那个么2KB的程序通常可以小到几百字节,它的运行速度会快上百倍

在C++中,操作<代码>寄存器与代码>汇编>代码没有太大的不同,在C++中,你可以得到显著的开销——尽管代码>寄存器的一些好处仍然很明显。 库向程序员隐藏了MCU内部的优点,因为它简化了编程,并且不需要了解MCU是如何工作的,哪些寄存器是按什么顺序更改的

但是,当你了解硬件的进出时——你可以从小型MCU中挤出使用库所不可能的东西(代码将无法放入芯片中)。MCU了解其内部并没有那么复杂(Atmel)——好处是巨大的


知识是许多人都回避的一种能力。

您需要查看数据表,其中描述了引脚的功能

MCU的引脚可以通过特殊寄存器分配各种功能

引脚最常见的两个功能是输入和输出。MCU提供内部上拉和下拉电阻器,正确使用时可显著简化电子模式

如果输入作为
input
激活,而没有任何
pull-?
,则其状态未定义,可以用作随机数生成器的启动器。由于这个原因,最好通过连接
拉-?
电阻器来定义输入引脚的默认状态

在Arduino IDE中,您不仅限于提供的功能,还可以直接使用
寄存器
操作,您只需要了解MCU的内部结构

若你们做得很好,那个么2KB的程序通常可以小到几百字节,它的运行速度会快上百倍

在C++中,操作<代码>寄存器与代码>汇编>代码没有太大的不同,在C++中,你可以得到显著的开销——尽管代码>寄存器的一些好处仍然很明显。 库向程序员隐藏了MCU内部的优点,因为它简化了编程,并且不需要了解MCU是如何工作的,哪些寄存器是按什么顺序更改的

但是,当你了解硬件的进出时——你可以从小型MCU中挤出使用库所不可能的东西(代码将无法放入芯片中)。MCU了解其内部并没有那么复杂(Atmel)——好处是巨大的

知识是许多人回避的一种力量。

+1事实如此