Final code for our 4180 Drawing Robot!

Dependencies:   4DGL-uLCD-SE gCodeParser mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers pen.h Source File

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