求个不怕掉电有记忆状态的程序(最好使用EEPROM)
三个位置传感器输入(IN1=2脚,IN2=3脚,IN3=4脚),二个数字输出(A1=5脚,A2=6脚),都是数字信号。初始都是0,(即IN1=0,IN2=0,IN3=0;A1=0,A2=0)
条件是:
当IN1为1时翻转 A1为1, A2为0 锁定并记忆输出状态,同时清除IN3为1时的输出状态记忆;
当IN2为1时翻转 A1为0, A2为1 锁定并记忆输出状态,同时清除IN1为1时的输出状态记忆;
当IN3为1时翻转 A1为1, A2为0 锁定并记忆输出状态,同时清除IN2为1时的输出状态记忆;
求个不怕掉电有记忆状态的程序(最好使用EEPROM)用I2C也可以,会的朋友给个程序,我想了一周时间,就是不会用这个记忆,汗啊!谢谢大家! #include <EEPROM.h>
int address = 0;
int flag = 0;
int in1 = 2;
int in2 = 3;
int in3 = 4;
int a1 = 5;
int a2 = 6;
void setup()
{
pinMode(a1, OUTPUT);
pinMode(a2, OUTPUT);
flag = EEPROM.read(address);
}
void loop()
{
if(digitalRead(in1)==HIGH)
flag = 1;
if(digitalRead(in2)==HIGH)
flag = 2;
if(digitalRead(in3)==HIGH)
flag = 3;
switch (flag) {
case 1:
EEPROM.write(address, flag);
digitalWrite(a1, HIGH);
digitalWrite(a2, LOW);
flag = 0;
break;
case 2:
EEPROM.write(address, flag);
digitalWrite(a1, LOW);
digitalWrite(a2, HIGH);
flag = 0;
break;
case 3:
EEPROM.write(address, flag);
digitalWrite(a1, HIGH);
digitalWrite(a2, LOW);
flag = 0;
break;
default:
;// do nothing
}
}
i7456 发表于 2014-4-8 11:39 static/image/common/back.gif
3Q:)i7456,非常感谢!
页:
[1]