Final code for our 4180 Drawing Robot!
Dependencies: 4DGL-uLCD-SE gCodeParser mbed
pen.h
00001 #ifndef PEN_H 00002 #define PEN_H 00003 00004 #include "mbed.h" 00005 00006 class Pen { 00007 00008 public: 00009 Pen(PinName p, float r); 00010 ~Pen(); 00011 00012 void up(); 00013 void down(); 00014 void pos(float angle); 00015 00016 private: 00017 PwmOut* pen_pin; 00018 float range; 00019 float up_range, down_range; 00020 00021 }; 00022 00023 Pen::Pen(PinName p, float r) { 00024 range = r; 00025 up_range = 1; 00026 down_range = 1+90.0/range; 00027 pen_pin = new PwmOut(p); 00028 pen_pin->period_ms(20); 00029 up(); 00030 } 00031 00032 Pen::~Pen() { 00033 delete pen_pin; 00034 } 00035 00036 // Go to angle in degrees 00037 inline void Pen::pos(float angle) { 00038 pen_pin->pulsewidth_ms(1+angle/range); 00039 } 00040 00041 inline void Pen::up() { 00042 pen_pin->pulsewidth_ms(up_range); 00043 } 00044 00045 inline void Pen::down() { 00046 pen_pin->pulsewidth_ms(down_range); 00047 } 00048 00049 #endif
Generated on Thu Jul 21 2022 12:50:48 by 1.7.2