Veneen kauhan ohjaukseen tehty ohjelma. CAN viesteillä ohjataan kahta PWM lähtöä, jotka säätävät karamoottorien asemaa.
Code Block |
---|
#include <SPI.h>
#include <SoftwareSerial.h>
#include <CAN.h>
#define BAUDRATE 250
byte rx_len;
byte rx_msg[8]={0};
unsigned long rx_id;
byte PWM_suunta=30;
byte PWM_kauha=30;
int ledPin = 6;
int ledPin2 = 9;
byte kaasu1=0x11;
byte kaasu2=0x22;
byte kaasu3=0x33;
byte kaasu4=0x44;
byte kaasu5=0x55;
byte kaasu6=0x66;
byte candata[8];
unsigned long id_Kaasu=0x66;
void setup()
{
//CAN setup
CAN.begin(); //init CANClass, which also initializes SPI communication to CAN tranceiver
CAN.baudConfig(BAUDRATE); //set baudrate 250kbit/s
CAN.setMode(NORMAL); //set mode for CANClass
Serial.begin(9600); //initialize serial communication
}
void loop()
{
CAN.readDATA_ff_1(&rx_len, rx_msg, &rx_id);
if(rx_id==1337 || rx_id==0x539)
{
PWM_suunta=rx_msg[0];
PWM_kauha=rx_msg[1];
}
analogWrite(ledPin, PWM_suunta);
analogWrite(ledPin2, PWM_kauha);
Serial.print(PWM_suunta,DEC);
Serial.print(" ");
Serial.println(PWM_kauha,DEC);
}
|