オーディオ入力されたらモーターが動くようにしていて、
オーディオ入力されなくなると止まるようにしています。
次に行おうとしているのは
そのモーターの動きを、
オーディオ入力されたら30度だけ動いて
すぐ0度に戻る。
色々調べて角度指定をするやり方を見たのですがあまり理解ができず、悩んでいる状態です。
使用しているのはバイポーラ ステッピングモーター SM-42BYG011です。
ステップ角:1.8度+ー5%
1回転ステップ数:200
相数:2
初歩的な質問ですみません・・。
どなたかお力をお貸しください・・
よろしくお願いいたします。
c++
1#include <Wire.h> 2#include <Adafruit_MotorShield.h> 3#include "utility/Adafruit_MS_PWMServoDriver.h" 4 5Adafruit_MotorShield AFMS = Adafruit_MotorShield(); 6Adafruit_StepperMotor *myMotor = AFMS.getStepper(200, 2); 7 8#define AUDIO_IN A0 9#define SAMPLE 100 10#define CENTER 512 11 12int vol; 13int angle; 14 15void setup() { 16 Serial.begin(9600); 17 Serial.println("Stepper test!"); 18 pinMode(AUDIO_IN, INPUT); 19 20 AFMS.begin(); 21 22 vol = 0; 23} 24 25void loop() { 26 27 //step(1); 28 29 vol = getLevel(AUDIO_IN); 30 for(int i; i<2; i++){ 31 angle = map(vol , 0, 2, 10, 10); 32 if (vol > 16 ) { 33 myMotor->step(5, BACKWARD,SINGLE); 34 35 } else { 36 myMotor->step(0, FORWARD,SINGLE); 37 } 38 } 39} 40 41uint8_t getLevel(uint8_t pin) { 42 float avg = 0; 43 float raw; 44 for (int sample = 0; sample < SAMPLE; sample++) { 45 raw = analogRead(pin); 46 avg += abs(raw - CENTER); 47 } 48 return avg / SAMPLE; 49}
回答1件
あなたの回答
tips
プレビュー