Lab_interaccio/2011/iaac_summerschool/iaac_master/iaac_master.pde

94 lines
1.6 KiB
Plaintext
Raw Permalink Normal View History

2025-02-25 21:29:42 +01:00
#include <CAN.h>
#include <pinout.h>
int i=0;
int s1=0;
void setup()
{
Serial.begin(115200);
Serial.println("Starting Master...");
CAN.begin(1);
pinMode(3, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(5, LOW);
digitalWrite(3, LOW);
}
void loop()
{
if(!s1)
{
s1=1;
digitalWrite(3,HIGH);
}
else {
s1=0;
digitalWrite(3,LOW);
}
CAN_TxMsg.id=0x200; //Device with speaker sends ID=200, Device with sensor sends=ID=100
CAN_TxMsg.header.rtr=0;
CAN_TxMsg.header.length=5;
CAN_TxMsg.data[0]=s1;
CAN_TxMsg.data[1]=0x00;
CAN_TxMsg.data[2]=0x00;
CAN_TxMsg.data[3]=0x00;
CAN_TxMsg.data[4]=0x00;
// CAN_TxMsg.data[5]=0x00;
// CAN_TxMsg.data[6]=0x00;
// CAN_TxMsg.data[7]=0x00;
CAN.send(&CAN_TxMsg);
if (CAN.CheckNew())
{
CAN.ReadFromDevice(&CAN_RxMsg);
//Print message via Serial Port
Serial.print(CAN_RxMsg.id,HEX);
Serial.print(" => ");
Serial.print(CAN_RxMsg.data[0],HEX);
Serial.print(" - ");
Serial.print(CAN_RxMsg.data[1],HEX);
Serial.print(" - ");
Serial.print(CAN_RxMsg.data[2],HEX);
Serial.print(" - ");
Serial.print(CAN_RxMsg.data[3],HEX);
Serial.print(" - ");
Serial.print(CAN_RxMsg.data[4],HEX);
Serial.print(" - ");
Serial.println(CAN_RxMsg.data[5],HEX);
// Serial.print(" - ");
// Serial.print(CAN_RxMsg.data[6],HEX);
// Serial.print(" - ");
// Serial.println(CAN_RxMsg.data[7],HEX);
//Byte 0 => Info from the other board with the sensor status
if (CAN_RxMsg.id==0x100 && CAN_RxMsg.data[0])
{
digitalWrite(5, HIGH);
}
else
digitalWrite(5, LOW);
}
delay(1000);
}