ライントレーサPD制御 ロボット製作セミナー演習ex

Dependencies:   mbed

Committer:
jksoft
Date:
Sat Aug 10 04:13:15 2013 +0000
Revision:
0:b5d91230ff3c
Rev1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jksoft 0:b5d91230ff3c 1 /**
jksoft 0:b5d91230ff3c 2 * Motor Driver TB6612 Control Library
jksoft 0:b5d91230ff3c 3 *
jksoft 0:b5d91230ff3c 4 * -- TB6612 is a device of the TOSHIBA.
jksoft 0:b5d91230ff3c 5 *
jksoft 0:b5d91230ff3c 6 * Copyright (C) 2012 Junichi Katsu (JKSOFT)
jksoft 0:b5d91230ff3c 7 */
jksoft 0:b5d91230ff3c 8
jksoft 0:b5d91230ff3c 9
jksoft 0:b5d91230ff3c 10 #include "TB6612.h"
jksoft 0:b5d91230ff3c 11
jksoft 0:b5d91230ff3c 12 // TB6612 Class Constructor
jksoft 0:b5d91230ff3c 13 TB6612::TB6612(PinName pwm, PinName fwd, PinName rev):
jksoft 0:b5d91230ff3c 14 _pwm(pwm), _fwd(fwd), _rev(rev) {
jksoft 0:b5d91230ff3c 15
jksoft 0:b5d91230ff3c 16 _fwd = 0;
jksoft 0:b5d91230ff3c 17 _rev = 0;
jksoft 0:b5d91230ff3c 18 _pwm = 0.0;
jksoft 0:b5d91230ff3c 19 _pwm.period(0.001);
jksoft 0:b5d91230ff3c 20 }
jksoft 0:b5d91230ff3c 21
jksoft 0:b5d91230ff3c 22 // Speed Control
jksoft 0:b5d91230ff3c 23 // arg
jksoft 0:b5d91230ff3c 24 // int speed -100 -- 0 -- 100
jksoft 0:b5d91230ff3c 25 void TB6612::speed(int speed) {
jksoft 0:b5d91230ff3c 26
jksoft 0:b5d91230ff3c 27 if( speed > 0 )
jksoft 0:b5d91230ff3c 28 {
jksoft 0:b5d91230ff3c 29 _pwm = ((float)speed) / 100.0;
jksoft 0:b5d91230ff3c 30 _fwd = 1;
jksoft 0:b5d91230ff3c 31 _rev = 0;
jksoft 0:b5d91230ff3c 32 }
jksoft 0:b5d91230ff3c 33 else if( speed < 0 )
jksoft 0:b5d91230ff3c 34 {
jksoft 0:b5d91230ff3c 35 _pwm = -((float)speed) / 100.0;
jksoft 0:b5d91230ff3c 36 _fwd = 0;
jksoft 0:b5d91230ff3c 37 _rev = 1;
jksoft 0:b5d91230ff3c 38 }
jksoft 0:b5d91230ff3c 39 else
jksoft 0:b5d91230ff3c 40 {
jksoft 0:b5d91230ff3c 41 _fwd = 1;
jksoft 0:b5d91230ff3c 42 _rev = 1;
jksoft 0:b5d91230ff3c 43 }
jksoft 0:b5d91230ff3c 44 }
jksoft 0:b5d91230ff3c 45
jksoft 0:b5d91230ff3c 46
jksoft 0:b5d91230ff3c 47 // Speed Control with time-out
jksoft 0:b5d91230ff3c 48 // arg
jksoft 0:b5d91230ff3c 49 // int speed -100 -- 0 -- 100
jksoft 0:b5d91230ff3c 50 // int time 0
jksoft 0:b5d91230ff3c 51 void TB6612::move(int sspeed , int time)
jksoft 0:b5d91230ff3c 52 {
jksoft 0:b5d91230ff3c 53 speed(sspeed);
jksoft 0:b5d91230ff3c 54 wait_ms(time);
jksoft 0:b5d91230ff3c 55 }