#include #include const int SPI_CS_PIN = 10; MCP_CAN CAN(SPI_CS_PIN); int cm ; void setup() { pinMode(A5,OUTPUT); analogWrite(A5,0); pinMode(A0, INPUT); Serial.begin(115200); Serial.println("restart UNO PDC CAN BUS"); while (CAN_OK != CAN.begin(CAN_500KBPS)) {Serial.println("CAN BUS MCP 2515 / MCP 2562 init fail"); Serial.println(" Init CAN BUS again"); delay(100); } Serial.println("CAN BUS init ok!"); } unsigned char stmp[8] = {0, 0, 0, 0, 0, 0, 0, 0}; void loop() { if ( analogRead(A0)> 400){ Serial.print("r : "); Serial.println(" ON !!!!!!!!!!!!!!!!!!!!"); stmp[0] = 64; } else { stmp[0] = 0; } for ( int pdc = 2; pdc < 8; pdc++ ){ stmp[pdc] = 0; pinMode(pdc,OUTPUT); delayMicroseconds(5); digitalWrite(pdc, LOW); delayMicroseconds(75); digitalWrite(pdc, HIGH); delayMicroseconds(5); pinMode(pdc,INPUT); long duration = pulseIn(pdc,HIGH,16000); Serial.print("pdc: "); Serial.print(pdc);Serial.print("duration = "); Serial.println(duration); if ( duration > 0){ cm = (duration/2)/25.6; stmp[pdc] = cm; Serial.print("send pdc: ");Serial.print(pdc);Serial.print("/");Serial.print("cm = "); Serial.println(cm); } delay(5); } Serial.print("canSend : "); Serial.print(stmp[0]);Serial.print("/");Serial.print(stmp[1]);Serial.print("/");Serial.print(stmp[2]);Serial.print("/");Serial.print(stmp[3]);Serial.print("/"); Serial.print(stmp[4]);Serial.print("/");Serial.print(stmp[5]);Serial.print("/");Serial.print(stmp[6]);Serial.print("/");Serial.print(stmp[7]); Serial.println(" now"); CAN.sendMsgBuf(0x100, 0, 8, stmp); Serial.println("********************************"); }