我一直在试图找到一种方法,从我的PC(Windows 7)向Arduino Uno R3发送串行命令。我一直在做这个简单的程序,你应该通过USB电缆发送一个简单的“1”,以便打开车载LED。我的Arduino代码应该可以工作(我知道的,但我会确保上传它)。我一直在尝试使用Python和pySerial发送此命令,但我似乎无法让pySerial正常工作。我也尝试过使用CMD,但当我输入命令(ECHO 1)时,CMD似乎会冻结
这是我的arduino代码
int var = 0;
int LEDPin = 13;
int val = 0;
void setup() {
Serial.begin(9600);
pinMode(LEDPin, OUTPUT);
}
void loop() {
if (Serial.available()>0){
val = Serial.read();
}
if (val == 1){
digitalWrite(LEDPin, HIGH);
}
digitalRead(LEDPin);
if (LEDPin==HIGH){
var ++;
delay (1000);
if(var==10){
digitalWrite(LEDPin,LOW);
var = 0;
val = 0;
}
}
}
我有一个简短的Python程序:)
import serial
ser = serial.Serial('COM3', 9600, timeout=0)
while 1:
var = 1
ser.write(var)
delay(12000)
向迈克尔·韦德尔问好。
只需将此代码另存为。bat并确保您使用的是com 6。此代码允许您以9600bpm的速度输入命令并将其发送到串行端口
mode com6:9600,N,8,1
@echo off
:start
cls
Set /p commands="enter command:"
echo|set /p= %commands% >com6
goto start
现在你必须用Arduino中的这个来阅读连载
Serial.read();
当您在Arduino集成开发环境中的串行监视器中键入“1”时,代码是否有效?如果是,请检查通信端口。在我的电脑上(也是视窗7),COM3永远不是Arduino端口,因为它在内部用于其他用途。
顺便说一下,digitalRead()语句之后的所有内容都不会起任何作用,因为您正在将LEDpin(声明为13)与HIGH(定义为1)进行比较。我想你是想看看digitalRead的输出是否高,但我也不确定这是否有效,因为pin被声明为输出。你最好把这个逻辑放在(val==1)部分。
只是为了确定一下——阿尔杜伊诺真的和COM3有联系吗?
为了手动检查串行连接,可以使用Putty等工具。借助它,您可以连接到所需的串行端口并手动发送命令。为了检查Arduino是否收到了它,你可以添加Serial。println(val)
紧接着
val=Serial。read()
,使用这个Arduino应该将接收到的任何字符发送回序列号。
我正试图使用串口从C#向Arduino发送一个数组。在C#中,首先是输入字符串 然后,我将其转换为int数组 然后,我将其转换为字节数组,通过串行端口发送 最后,我把它寄出去了 那么,应该由我的Arduino接收 所以recdata应该是一个int数组 但事实并非如此。当我将其打印到另一个串行端口进行检查时。。 我得到3个输出,而不是1个,就好像serialport先发送一个int,然后发送第二个
我将像素数组转换为字符串,并将此字符串发送到arduino.但是我认为此字符串没有正确转换,因为Serial.write发送(8位或8字符)我不知道.并且还想发送100个字符的字符串到串行.请发送您的建议,并获得帮助我解决这个问题。对于任何错误,请提前道歉。 并告诉我如何停止字符串后100个字符不使用(\n或\r)
我的的部分当前如下所示: ...这意味着我可以运行来启动服务器。到目前为止还不错。 但是,我希望能够运行类似的东西,并将参数传递给(例如,=>)。这可能吗?
我试图做一些非常简单的东西,按钮计数器,有一个按钮在我的HTML-php当我点击它我发送数据'按'到我的arduino和它使led闪烁,到目前为止,还不错,但然后我想发送信号,当我在arduino中按下按钮,我想让我的php读取字符串"点击次数: N"的串行端口,N是从arduio的推送计数。 这里的问题是,在arduino串行我可以看到他字符串,一切正常,但在PHP我做
我试图让Arduino在串口读取字符“s”时触发一个中继。该字符“s”由python根据从屏幕读取的图像发送。 我的问题是arduino似乎无法从串行端口读取数据,因为它从不执行if条件。我的猜测是这两者之间存在某种死锁(这就是为什么我将ardu.close()放在函数foo中) 这是我的arduino代码: 这是我的python代码:
我对通过python发送串行数据有问题。让我这样解释。我在arduino上有一个马达代码,它从串口接收数据,并在接收到的数据中移动。然而,在本例中,每当我发送8个列表中的数据时,它都不会读取第8个列表。通过玩弄时间。在python代码中睡眠我可以看到一些差异(我可以看到发送了4个列表,然后我将time.sleep增加到8,现在它发送了7个列表)我知道玩弄时间。但睡眠并不是解决办法。我还尝试清空输入