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:
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); }