Hi,
May i have the header file, as well as the source file for line sensor? I see from the manual, it also has EEPROM and RAM, like G15 servo motor. Thanks.
#define txM() digitalWrite(ctrlPin,LOW)
#define rxM() digitalWrite(ctrlPin,HIGH)
byte pingSensor(void)
{
byte rxbuffer[7];
rxM();
while(mySerial.available())
{
mySerial.read();
}
txM();
delay(100);
mySerial.write (0xFF); //Header
mySerial.write (0xFF); //Header
mySerial.write (0x68); //ID=103
mySerial.write (0x02); //Length
mySerial.write (0x01); //Ping
mySerial.write (0x94); //Checksum
mySerial.flush(); //wait for transmission done
rxM();
int count=0;
while(mySerial.available()<6)
{
count++; //wait for response
if(count>10)
break;
delay(100);
}
byte bytenum= mySerial.readBytes(rxbuffer,6);
txM();
if(bytenum<6)
return (0);
else
return(1);
}
void setLEDval(byte val)
{
rxM();
while(mySerial.available())
{
mySerial.read();
}
txM();
delay(100);
mySerial.write (0xFF); //Header
mySerial.write (0xFF); //Header
mySerial.write (0x68); //ID=104
mySerial.write (0x04); //Length
mySerial.write (0x03); //write
mySerial.write (0x0D); //Address to write
mySerial.write (val); //data
byte checksum=0xFF-(0x68+0x04+0x03+0x0D+val);
mySerial.write (checksum); //Checksum
mySerial.flush(); //wait for transmission done
rxM();
while(mySerial.available())
{
mySerial.read();
}
}
void calibrate(byte val)
{
rxM();
while(mySerial.available())
{
mySerial.read();
}
txM();
delay(100);
mySerial.write (0xFF); //Header
mySerial.write (0xFF); //Header
mySerial.write (0x68); //ID=104
mySerial.write (0x04); //Length
mySerial.write (0x03); //write
mySerial.write (0x14); //Address to write
mySerial.write (val); //data
byte checksum=0xFF-(0x68+0x04+0x03+0x14+val);
mySerial.write (checksum); //Checksum
mySerial.flush(); //wait for transmission done
rxM();
while(mySerial.available())
{
mySerial.read();
}
}
byte readSensorVal(void)
{
byte rxbuffer[8];
rxM();
while(mySerial.available())
{
mySerial.read();
}
txM();
delay(100);
mySerial.write (0xFF); //Header
mySerial.write (0xFF); //Header
mySerial.write (0x68); //ID=104
mySerial.write (0x04); //Length
mySerial.write (0x02); //read
mySerial.write (0x12); //Address to read
mySerial.write (0x01); //number of byte to read
mySerial.write (0x7E); //Checksum
mySerial.flush(); //wait for transmission done
rxM();
int count=0;
while(mySerial.available()<7)
{
count++; //wait for response
if(count>10)
break;
delay(100);
}
byte bytenum= mySerial.readBytes(rxbuffer,7);
txM();
// for(int i=0;i<7;i++)
// {
// Serial.write(rxbuffer[i]);
//
// }
if(bytenum<7)
return (0xFF);
else
return(rxbuffer[5]);
}
Users browsing this forum: No registered users and 3 guests