!uno_canshield.JPG|border=1,width=629,height=292!
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|^CAN.zip]
[SPI|^SPI.zip]
*Koodi:*
{code}
#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);
}
{code} |