【发布时间】:2018-05-07 05:39:49
【问题描述】:
我正在做一个项目,理想情况下我想用 Raspberru PI 启动和停止 Arduino 的循环。想法是从 Raspberry PI GPIO 引脚向 Arduino 引脚发送信号并触发和 ISR,如下所示:
volatile bool start = false;
void start(){
start = true;
}
void stop(){
start = false;
}
void setup(){
pinMode(2, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(2), start, RISING)
pinMode(3, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(3), stop, RISING)
}
void loop() {
if (start) {
//Do my stuff here...
}
}
任何关于如何从带有参数(开始或停止,1 或 0)的 C++ 应用程序中完成此操作的帮助?或者也许使用 Python?
我故意选择设置两个不同的引脚。我知道我们可以只设置一个引脚并使用“start =!start”功能使其作为触发器工作,但是这样我将有一个引脚,而不是总是启动(或继续)arduino,另一个停止(或确保 arduino 已停止)。
我的一个主要问题是我不知道如何设置两块板之间的连接(每对引脚使用一根电缆,还是我们还需要接地?)。 哪种类型的冲动更适合从树莓派发送? 我也知道 Arduino 在 5V 上工作,而树莓派在 3.3V 上工作。我们是否应该串联一个电阻以避免任何过电流?
感谢您提供的任何建议或参考书目, 亚历克西斯
【问题讨论】:
-
我投票结束这个问题,因为它是关于硬件接线,而不是编程。
-
好吧,您将 pinMode 设置为 INPUT_PULLUP,因此未激活时输入为高电平。而是使用从输入到 GND 的电阻器 (10K) 并删除 pinMode 声明中的 _PULLUP
标签: arduino raspberry-pi communication gpio isr