Veneen kauhan ohjaukseen tehty ohjelma. CAN viesteillä ohjataan kahta PWM lähtöä, jotka säätävät karamoottorien asemaa. PWM lähdöt pinneissä 6 ja 9.

Kirjastot:

CAN

SPI

Koodi:

#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 Pin1 = 6;
int Pin2 = 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(Pin1, PWM_suunta);
  analogWrite(Pin2, PWM_kauha);
  Serial.print(PWM_suunta,DEC);
  Serial.print(" ");
  Serial.println(PWM_kauha,DEC);
}
  • No labels
You must log in to comment.