电平编码通信,即38通信,io口电平变化判定7种状态。
底下有最后版本。
这个程序有错误:
Openmv:
from pyb import Pin
import time
value=[0,0,0]
p_in_0 = Pin('P0', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻
p_in_1 = Pin('P1', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻
p_in_2 = Pin('P2', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻
value[0] = p_in_0.value() # get value, 0 or 1#读入p_in引脚的值
value[1] = p_in_1.value() # get value, 0 or 1#读入p_in引脚的值
value[2] = p_in_2.value() # get value, 0 or 1#读入p_in引脚的值
while(True):
print('value=',value)##000为arduino输出高电平
time.sleep(2000)
这个程序有错误:
arduino:
#define code_a 2
#define code_b 3
#define code_c 4
void setup() {
// put your setup code here, to run once:
pinMode(code_a,OUTPUT);
pinMode(code_b,OUTPUT);
pinMode(code_c,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
analogWrite(code_a,HIGH);
analogWrite(code_b,HIGH);
analogWrite(code_c,HIGH);
}
这个没用,switch写实现不了
#define code_a 2
#define code_b 3
#define code_c 4
int a=2;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
pinMode(code_a,OUTPUT);
pinMode(code_b,OUTPUT);
pinMode(code_c,OUTPUT);
}
void loop() {
a=1;
switch(a){
case 0:
digitalWrite(code_a,HIGH);
digitalWrite(code_b,HIGH);
digitalWrite(code_c,HIGH);
case 1:
digitalWrite(code_a,LOW);
digitalWrite(code_b,HIGH);
digitalWrite(code_c,HIGH);
case 2:
digitalWrite(code_a,HIGH);
digitalWrite(code_b,LOW);
digitalWrite(code_c,HIGH);
case 3:
digitalWrite(code_a,LOW);
digitalWrite(code_b,LOW);
digitalWrite(code_c,HIGH);
case 4:
digitalWrite(code_a,HIGH);
digitalWrite(code_b,HIGH);
digitalWrite(code_c,LOW);
case 5:
digitalWrite(code_a,LOW);
digitalWrite(code_b,HIGH);
digitalWrite(code_c,LOW);
case 6:
digitalWrite(code_a,LOW);
digitalWrite(code_b,LOW);
digitalWrite(code_c,HIGH);
case 7:
digitalWrite(code_a,LOW);
digitalWrite(code_b,LOW);
digitalWrite(code_c,LOW);
}
delay(10);
}
python:
from pyb import Pin
import time
v=[0,0,0]
num=[0,0,0,0,0,0,0,0]
count=200
p_in_0 = Pin('P7', Pin.IN, Pin.PULL_DOWN)#设置p_in为输入引脚,并开启上拉电阻
p_in_1 = Pin('P8', Pin.IN, Pin.PULL_DOWN)#设置p_in为输入引脚,并开启上拉电阻
p_in_2 = Pin('P9', Pin.IN, Pin.PULL_DOWN)#设置p_in为输入引脚,并开启上拉电阻
#p_in = Pin('P7', Pin.IN, Pin.PULL_UP)#设置p_in为输入引脚,并开启上拉电阻
def getCode():
while(True):
pass
v[0] = p_in_0.value() # get value, 0 or 1#读入p_in引脚的值
v[1] = p_in_1.value() # get value, 0 or 1#读入p_in引脚的值
v[2] = p_in_2.value() # get value, 0 or 1#读入p_in引脚的值
if v[0]==0 and v[1]==0 and v[2]==0:
num[0]+=1
if num[0]>count:
print('value=',0)##000为arduino输出高电平
num[0]=0
#return(0)
break
elif v[0]==0 and v[1]==0 and v[2]==1:
num[1]+=1
if num[1]>count:
print('value=',1)##000为arduino输出高电平
num[1]=0
return(1)
break
elif v[0]==0 and v[1]==1 and v[2]==0:
#print('value=',2)##000为arduino输出高电平
num[2]+=1
if num[2]
因篇幅问题不能全部显示,请点此查看更多更全内容