#include #include #include struct can_frame canMsg1; struct can_frame canMsg2; struct can_frame canMsg; String strx,message1; MCP2515 mcp2515(10); float vnn, vnnx,vmim,vsp,vmin; int flag, vm,pwm1,vn1,val2; String str; void setup() { Wire.begin(); Serial.begin(115200) ; pinMode(5, OUTPUT); pinMode(6, OUTPUT); pinMode(13, OUTPUT); vnn = 0; vsp=0; pwm1=100; val2=0; mcp2515.reset(); mcp2515.setBitrate(CAN_500KBPS,MCP_8MHZ); mcp2515.setNormalMode(); Serial.println("------- CAN Read ----------"); Serial.println("ID DLC DATA"); Serial.print("vnn=3333"); // analogWrite(11, 0); digitalWrite(13, 0); } void sen_data(String vst,int vid) { canMsg1.can_id = vid; canMsg1.can_dlc = 8; canMsg1.data[0] = vst[0]; canMsg1.data[1] = vst[1]; canMsg1.data[2] = vst[2]; canMsg1.data[3] = vst[3]; canMsg1.data[4] = vst[4]; canMsg1.data[5] = vst[5]; canMsg1.data[6] = vst[6]; canMsg1.data[7] = vst[7]; // canMsg1.data[8] = vst[8]; // canMsg1.data[9] = vst[9]; mcp2515.sendMessage(&canMsg1); } String int_to_str(int vnn) { String vss=""; if ( vnn<10 ) vss= "0000"+String(vnn); else if ( vn1<100 ) vss= "000"+String(vnn); else if ( vn1<1000 ) vss= "00"+String(vnn); else if ( vn1<10000 ) vss= "0"+String(vnn); else if ( vn1<100000 ) vss= String(vnn); return vss; } String int_to_str3(int vnn) { String vss=""; if ( vnn<10 ) vss= "00"+String(vnn); else if ( vn1<100 ) vss= "0"+String(vnn); else if ( vn1<1000 ) vss= String(vnn); return vss; } void loop() { if (millis()-vmin>1000) { vmin = millis(); //sen_data("sak66666",901 ); // if (val2==10) // sen_data("013255",901 ); //if (val2==20) // sen_data("350255",901 ); val2=val2+1; if (val2>20) val2=0; // Serial.print("PA="); Serial.println(val2); } read_data(); } void read_data() { if (mcp2515.readMessage(&canMsg) == MCP2515::ERROR_OK) { if (canMsg.can_id==900) { String message2 = ""; for (int i = 0; i < canMsg.can_dlc-1; i++) { if ((char)canMsg.data[i]!=' ') message2 = message2 + (char)canMsg.data[i]; } Serial.println(message2); } } } void serialEvent() { while (Serial.available()) { char inChar = (char)Serial.read(); // add it to the inputString: str += inChar; if (inChar == '\n' || inChar == '\r' ) { strx = str; str = ""; // Serial.println(strx); if (strx[0] == 'M' && strx[1] == '1') { sen_data("050255",901 ); } if (strx[0] == 'M' && strx[1] == '2') { sen_data("150255",901 ); } if (strx[0] == 'P' && strx[1] == '1' ) { String str1=strx.substring(2,5); str1=str1+"255"; Serial.println(str1); sen_data(str1,901 ); } } } }