void loop(void) {
data = \上次接受到的值清0
while (Serial.available() > 0) //等新的串口数据 {
data += char(Serial.read()); delay(2);//稳定作用 }
if(data.length()>0)// 串口数据处理,校验; {
digitalWrite(led, HIGH);
if(data[0]==0xff & data[4]==0xfe & data[3]==data[1]^data[2]) {
object=data[1]; if(object==0xaa)
{ servo=data[2] ; } if(object==0xdd)
{ diandeng=data[2] ; } digitalWrite(led, LOW); } }
myservo.write(servo);
delay(15); //等待伺服到达位臵; val = analogRead(RPotPin);//读取模拟量值;
sensors.requestTemperatures(); // 发送命令获取温du wendu=sensors.getTempCByIndex(0)*100;//获取温度值;
26
wendugao=wendu/100;//拆分温度值; wendudi=wendu0;
valhigh=val/100;//拆分光线值; vallow=val0;
Serial.write(0xFF); //数据发送; Serial.write(wendugao); Serial.write(wendudi); Serial.write(valhigh); Serial.write(vallow);
Serial.write(wendugao^wendudi^valhigh^vallow); // Serial.write(0xFE); delay(2);//稳定作用 }
校验 27