76 lines
1.8 KiB
C
76 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
|