0
我们正在连接ardiuno和python,并且我们需要在不同的时间间隔后把我们的信号从python发送到ardiuno,因为我们用循环来发送数据和接收数据,但是我们不是从循环中获取python的信号。 但是,当我们使用相同的代码,发送信号从python到ardiuno而不使用循环,它工作得很好。python和arduino的接口
如何使用的Arduino UNO
,这是我们的代码
int ra = 3;
int ya = 4;
int ga = 5;
int rb = 6;
int yb = 7;
int gb = 8;
int x1=0;
int x2=0;
int x=0;
int led=10;
void setup() {
Serial.begin(9600);
pinMode(ra,OUTPUT);
pinMode(ya,OUTPUT);
pinMode(ga,OUTPUT);
pinMode(rb,OUTPUT);
pinMode(yb,OUTPUT);
pinMode(gb,OUTPUT);
pinMode(led,OUTPUT);
}
void loop() {
if(Serial.available()){
x2=Serial.parseInt();
//x2++;
Serial.end();}
if ((x2>=0)&&(x2<=9))
{
x=x2;
switch(x)
{
case 0 :
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(8000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
//digitalWrite(ra,HIGH);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(12000);
digitalWrite(gb,LOW);
digitalWrite(yb,HIGH);
digitalWrite(ya,HIGH);
delay(3000);
digitalWrite(yb,LOW);
digitalWrite(ya,LOW);
digitalWrite(ra,LOW);
delay(50);
break;
case 1:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(5000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
//digitalWrite(ra,HIGH);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(5000);
digitalWrite(gb,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(ra,LOW);
break;
case 2:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(9000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(9000);
digitalWrite(gb,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(ra,LOW);
break;
case 3:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(12000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(12000);
digitalWrite(gb,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(ra,LOW);
break;
case 4:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(15000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(15000);
digitalWrite(gb,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(ra,LOW);
break;
case 5:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(18000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(18000);
digitalWrite(gb,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(ra,LOW);
break;
case 6:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(2100);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(2100);
digitalWrite(gb,LOW);
digitalWrite(yb,HIGH);
digitalWrite(ya,HIGH);
delay(3000);
digitalWrite(yb,LOW);
digitalWrite(ya,LOW);
digitalWrite(ra,LOW);
break;
case 7:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(24000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(24000);
digitalWrite(gb,LOW);
digitalWrite(yb,HIGH);
digitalWrite(ya,HIGH);
delay(3000);
digitalWrite(yb,LOW);
digitalWrite(ya,LOW);
digitalWrite(ra,LOW);
break;
case 8:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(28000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(28000);
digitalWrite(gb,LOW);
digitalWrite(yb,HIGH);
digitalWrite(ya,HIGH);
delay(3000);
digitalWrite(yb,LOW);
digitalWrite(ya,LOW);
digitalWrite(ra,LOW);
break;
case 9:
digitalWrite(ga,HIGH);
digitalWrite(rb,HIGH);
delay(30000);
digitalWrite(ga,LOW);
digitalWrite(ya,HIGH);
digitalWrite(yb,HIGH);
delay(3000);
digitalWrite(ya,LOW);
digitalWrite(yb,LOW);
digitalWrite(rb,LOW);
delay(50);
digitalWrite(gb,HIGH);
digitalWrite(ra,HIGH);
delay(30000);
digitalWrite(gb,LOW);
digitalWrite(yb,HIGH);
digitalWrite(ya,HIGH);
delay(3000);
digitalWrite(yb,LOW);
digitalWrite(ya,LOW);
digitalWrite(ra,LOW);
break;
}}
}