2014-git-work/arduino/test/Motor.h
2013-09-16 17:37:33 +09:00

75 lines
1.8 KiB
C++

/*
Motor.h - モータードライバ(1ピン/2ピン)のためのライブラリ
## 概要 ##
このライブラリは、1ピンあるいは2ピンを占有するモータードライバのためのシンプルなライブラリです。
PWM対応ピンが1つしか必要ないのがこのライブラリの特徴です。
ただし、その副作用として、GOとBACKの速度に差があることがあります。
## 使い方 ##
例:
#include "Motor.h"
Motor motor;
void setup(){
// motor.attach(pin1, pin2);
motor.attach(5, 6);
}
void loop(){
// motor.mode(GO); //正転
motor.mode(GO, 100); //0-255(ここでは、100)のスピードで正転
delay(1000);
motor.mode(STOP); //停止
delay(1000);
}
注意:
使用するモータードライバの動作は、
1ピンの場合:
動作 |pin1
-----+-----
STOP | L
GO | H
2ピンの場合:
動作 |pin1 |pin2
----------+-----+-----
STOP | L | L
GO | H | L
BACK | L | H
STOP/BRAKE| H | H
でなければなりません。また、
void Motor::mode(char mode, byte speed);
void Motor::speed(int speed);
これらを使用する場合、pin1はPWM対応でなければなりません。
## ライセンス ##
(C)2013 kou029w - MIT License
*/
#ifndef Motor_h
#define Motor_h
#if defined(ARDUINO) && ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
enum { STOP = 0, GO = 1, BACK = 2, BRAKE = 3 };
class Motor{
public:
Motor();
void mode(uint8_t mode);
void mode(uint8_t mode, uint8_t speed);
void speed(int speed);
void attach(uint8_t pin1);
void attach(uint8_t pin1, uint8_t pin2);
void detach();
private:
char _pin1;
char _pin2;
};
#endif