看到你的流程图,我在公司里面按照你的流程图写了一个实现的程序,按照流程走已经实现,不过单片机的数据通道你应该可以自己打开吧,以及把单片机传感器上获得的值给我写的那些参数就可以了,自己去实现以下就可以了,我用的C++写的,你可以把预处理文件改称C,更具自己的编译器来吧
#include
using namespace std;
void checkWaterLevel(int uLevel,int dLevel); //检查水位函数
bool controlWaterLevel(); //PI算法检查水位 ,算法自己添加进去,
int main()
{
int upLevel,downlevel;
upLevel = 3; // 设置水位的最高值
downlevel = 7;// 设置水位的最低值
cout << "The water's upLevel is 3 and downlevel is 7! " << endl;
checkWaterLevel(upLevel,downlevel);
return 0;
}
void checkWaterLevel(int uLevel,int dLevel)
{
int level;
cout << "Get a water level: ";
cin >> level;
if (level < uLevel) // 检查是否在最高水位的下限
{
cout << "start work!"<
else
{
if(level > dLevel) // 检查是否在最低水位的下限
{
cout << "stop work!" << endl; // 自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
}
else
{
controlWaterLevel();
}
}
}
bool controlWaterLevel() // PI算法自己有的话,可以把PI算法放进这个函数里面去就可以了
{
int setWaterLevel,getWaterLevel;
cout << "Set water's level!" << endl; //设置水位的 预设值
cin >> setWaterLevel;
cout << "now water's Level is: ";
cin >> getWaterLevel; //获得水位,怎么获得水位更具自己单片机的传感器来设置
cout << endl;
if (getWaterLevel == setWaterLevel) // 判断水位是否等于设置水位
cout << "end work!" << endl; //自己把这里的方法改成单片机的控制命令就OK了,我就不帮你写了
return false;
controlWaterLevel();
}