0

我正在做一个涉及 Arduino Uno 和 Picaxe 14m2 的课程项目。

我正在尝试为 Arduino Uno 编写一个程序,该程序将允许我向 Picaxe 上的输入发送和输出值。

所以在外行,这就是我希望实现的目标:

我希望 Arduino 检查传感器,以及传感器是否返回特定值。(-我知道这部分,但不知道下一部分。)然后我希望 Arduino 发送一个值(HIGH,或 1 .. 类似的东西)作为输出到 Picaxe 输入引脚之一。然后我需要 Picaxe 来通知一个值已被发送,然后做其他事情。

任何帮助,将不胜感激。谢谢。

4

2 回答 2

0

如果您正在寻找它,您可能需要指定您拥有的 PICAXE 类型。由于这些芯片的类型有所不同。

之后,您可能想查看 PICAXE 的数据表,以便找到指令集和您拥有的程序存储器类型,“EEPROM....”。

在那之后:

  1. 列出您的 Is/O、输入和输出。
  2. 设置您的源代码编辑器。
  3. 编写源代码并烧录到 PICAXE 程序存储器中。(C、汇编...)
  4. 编写您的 Arduino 代码,设置 Is/O 并告诉 Arduino 如何处理输入和输出的信号。(C 语言)
  5. 为要在两个芯片之间连接的硬件制作电路图。
  6. 不要忘记查看 Arduino 和 PICAXE 上的加载效果,因为您毕竟不想烧毁您的项目硬件。
  7. 测试您的项目并注意,无论何时出现问题,您都必须对软件和硬件进行故障排除。

我建议您使用示波器来测试进出两个电路的信号 + 传感器的信号。

  • 对于您需要 PICAXE 执行的任何额外操作,请使用 If 语句,因为它们实现起来并不那么技术化,而且它们很容易编写和排除故障。

对于您的方案,您实际上是在让 Arduino 通过来自传感器的可变信号向 PICAXE 发出指令。

^给我反馈,我会提供更多帮助。

于 2014-11-18T11:53:12.893 回答
0

您可能需要考虑使用UART(又名串行)或i2c通信。

串行通信应该适用于任何 PICAXE 和 Arduino,而 i2c 仅在您使用 X2 系列 PICAXE 芯片时才有效。i2c 的主要优势是在使用多个从设备(加上主设备,即总共不止 2 个设备)时,您可以使用相同的两条线连接多达 128 个设备。串行(UART)通信更简单,只需要一根线(加上一个公共地线)以一种方式发送数据,这就是我将在本答案的其余部分展示的内容

这是PICAXE 串行输入的手动条目,这是 Arduino 串行输出的条目。给出您的问题所需的代码将类似于以下内容:

对于arduino:

void setup(){
  Serial.begin(9600);
}
void loop(){
   if (conditionMet){    //whatever the condition is in your code
       int bytesSent = Serial.write(“HIGH”); //send the string “HIGH"
   }
}

对于 PICAXE:

main:
    serin 6, T9600, ("HIGH")  'uses qualifier to look for exact message "HIGH"
    'do whatever when criteria met
goto main
于 2017-07-25T18:17:03.610 回答