Last active
October 10, 2016 14:52
-
-
Save takumus/2c3a9df9009e12e123b9cdf35def053a to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <Arduino.h> | |
#include "Suteppa.h" | |
#define IN1 9 | |
#define IN2 10 | |
#define IN3 11 | |
#define IN4 12 | |
#define SW 2 | |
Suteppa s; | |
void step(int d) | |
{ | |
static const int hs[8] = {0b1000,0b1100,0b0100,0b0110,0b0010,0b0011,0b0001,0b1001}; | |
static int i; | |
i += d; | |
if(i > 7) i = 0; | |
if(i < 0) i = 7; | |
byte b = hs[i]; | |
digitalWrite(IN1, bitRead(b, 0)); | |
digitalWrite(IN2, bitRead(b, 1)); | |
digitalWrite(IN3, bitRead(b, 2)); | |
digitalWrite(IN4, bitRead(b, 3)); | |
} | |
void calibrate() | |
{ | |
s.rotate(Suteppa::RELATIVE, -999, false); | |
while(digitalRead(SW) && s.tick()); | |
s.setHome(); | |
} | |
void setup() | |
{ | |
pinMode(IN1, OUTPUT); | |
pinMode(IN2, OUTPUT); | |
pinMode(IN3, OUTPUT); | |
pinMode(IN4, OUTPUT); | |
pinMode(SW, INPUT_PULLUP); | |
//初期化 | |
s.init(4096, step); | |
//キャリブレーション用速度。最初は早く | |
s.setSpeed(2000); | |
//キャリブレーション | |
calibrate(); | |
//一度スイッチから離して | |
delay(100); | |
s.rotate(Suteppa::RELATIVE, 20); | |
delay(100); | |
//キャリブレーション用速度。二回目は丁寧にゆっくり | |
s.setSpeed(4000); | |
//もう一度キャリブレーション | |
calibrate(); | |
//スムージング有効 | |
s.beginSmooth(50, 2000); | |
//通常速度は早めに | |
s.setSpeed(1200); | |
delay(100); | |
} | |
void loop() | |
{ | |
//中心から+100の位置 | |
s.rotate(Suteppa::ABSOLUTE, 488/2+100); | |
delay(10); | |
//中心から-100の位置 | |
s.rotate(Suteppa::ABSOLUTE, 488/2-100); | |
delay(10); | |
//行ったり来たりするだけ。 | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment