【问题标题】:Arduino for TTL triggering: trigger received as soon as pinmode is defined用于 TTL 触发的 Arduino:一旦定义了 pinmode,就会收到触发
【发布时间】:2023-03-26 06:02:01
【问题描述】:

我有一个带有 Zaber (X-AS01) 盾牌的 Arduino Uno。我使用屏蔽的其中一个数字输出来提供 5V 触发信号(当连接的设备接收到 5V 信号时,数据采集开始)。

但是,只要我的脚本上传,外部设备就会注册一个触发信号,尽管我没有将引脚设置为高电平。一旦我声明了相应引脚的引脚模式,就会发生这种行为(参见下面的代码)。

当我上传另一个定义其他引脚并触发它们的脚本时,我的数据采集设备很好地显示“等待触发信号”。

/*
Start data acquisition
*/

int acquisition = 6; // the pin data aquisition system is connected to

void setup() {
  pinMode(acquisition, OUTPUT); // Declare pin as an output
}

void loop(){
  //
}

【问题讨论】:

  • 你在哪个边触发?
  • 尝试在 pinMode 之前将 pin 设置为 HIGH
  • @Juraj:这行得通!太好了,非常感谢,这很容易解决。
  • 您的设备在信号引脚上处于低电平状态

标签: arduino


【解决方案1】:

根据最佳猜测,缺少任何进一步的信息是,当您将 pinmode 设置为 OUTPUT 时,您要么触发了一些噪声,要么触发了下降沿。

但是,一旦我的脚本上传,外部设备 注册一个触发信号,虽然我没有把引脚设置为 HIGH。

上传代码需要重置微控制器。 数字引脚在复位时默认为 INPUT。这意味着他们的状态是浮动的。由于噪声,上升沿或下降沿可能随时出现。一旦你把它们变成 OUTPUT,它们的状态默认为 LOW。可能导致下降沿。

我会在触发引脚上使用下拉电阻。这样,在您将输出状态设置为 HIGH 之前,您的信号一直很低

【讨论】:

  • 谢谢!这是一个很好的观点。我试图找出如何实现这一点:这是否意味着将来自输出引脚的电缆分开并通过电阻器(10kOhm?)将一根电缆连接到 arduino 地?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-13
  • 2021-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-20
  • 1970-01-01
相关资源
最近更新 更多