Programa Arduino
Programa Arduino
* ============================================================================
* Name : RealDash_CAN.ino
* Part of : RealDash
* Author : Jani Immonen
* Created : 15.10.2017
*
* Arduino example sketch of how to use RealDash CAN protocol.
*
* This example code is free for any use.
*
* www.realdash.net
* ============================================================================
**/
void setup()
{
// init serial
Serial.begin(115200);
delay(100);
}
void loop()
{
ReadDigitalStatuses();
ReadAnalogStatuses();
SendCANFramesToSerial();
delay(5);
}
void ReadDigitalStatuses()
{
// read status of digital pins (1-13)
digitalPins = 0;
int bitposition = 0;
for (int i=1; i<14; i++)
{
if (digitalRead(i) == HIGH) digitalPins |= (1 << bitposition);
bitposition++;
}
}
void ReadAnalogStatuses()
{
// read analog pins (0-7)
for (int i=0; i<7; i++)
{
analogPins[i] = analogRead(i);
}
}
void SendCANFramesToSerial()
{
byte buf[8];
// build 1st CAN frame, RPM, MAP, CLT, TPS (just example data)
memcpy(buf, &rpm, 2);
memcpy(buf + 2, &kpa, 2);
memcpy(buf + 4, &clt, 2);
memcpy(buf + 6, &tps, 2);
// build 2nd CAN frame, Arduino digital pins and 2 analog values
memcpy(buf, &digitalPins, 2);
memcpy(buf + 2, &analogPins[0], 2);
memcpy(buf + 4, &analogPins[1], 2);
memcpy(buf + 6, &analogPins[2], 2);
// text payload
Serial.write(text, strlen(text) + 1);
}
}