動きを操る

ステッピングモータを使ってみよう

aruduinoでステッピングモーターで動かす

コード

モーターを回す基本のコード

  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8. }
  9. void loop() {
  10.   for (int i=0; i <= 50; i++){
  11.     clockwise(5000);
  12.   }
  13.   for (int i=0; i <= 50; i++){
  14.     counter_clockwise(5000);
  15.   }
  16. }
  17. void clockwise(int delaytime){
  18.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  19.   digitalWrite(STEP, HIGH);
  20.   delayMicroseconds(delaytime);
  21.   digitalWrite(STEP, LOW);
  22.   delayMicroseconds(delaytime);
  23. }
  24. void counter_clockwise(int delaytime){
  25.   digitalWrite(DIR, LOW);//はLOWは反時計回り
  26.   digitalWrite(STEP, HIGH);
  27.   delayMicroseconds(delaytime);
  28.   digitalWrite(STEP, LOW);
  29.   delayMicroseconds(delaytime);
  30. }

明るさセンサーを組み合わせて暗くしたとき反対に回す

  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.     int val=0;
  12.   val=analogRead(1);
  13.   Serial.println(val);
  14.   for (int i=0; i <= 50; i++)
  15.   if(200<val){
  16.     clockwise(50000);
  17.   }
  18.   else
  19.     {
  20.     clockwise(5000);
  21.   }
  22. }
  23. void clockwise(int delaytime){
  24.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  25.   digitalWrite(STEP, HIGH);
  26.   delayMicroseconds(delaytime);
  27.   digitalWrite(STEP, LOW);
  28.   delayMicroseconds(delaytime);
  29. }
  30. void counter_clockwise(int delaytime){
  31.   digitalWrite(DIR, LOW);//はLOWは反時計回り
  32.   digitalWrite(STEP, HIGH);
  33.   delayMicroseconds(delaytime);
  34.   digitalWrite(STEP, LOW);
  35.   delayMicroseconds(delaytime);
  36. }

明るさセンサーを使ってモーターの速さを変える

  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.     int val=0;
  12.   val=analogRead(1);
  13.   Serial.println(val);
  14.   for (int i=0; i <= 50; i++)
  15.   if(200<val){
  16.     clockwise(50000);
  17.   }
  18.   else
  19.     {
  20.     counter_clockwise(50000);
  21.   }
  22. }
  23. void clockwise(int delaytime){
  24.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  25.   digitalWrite(STEP, HIGH);
  26.   delayMicroseconds(delaytime);
  27.   digitalWrite(STEP, LOW);
  28.   delayMicroseconds(delaytime);
  29. }
  30. void counter_clockwise(int delaytime){
  31.   digitalWrite(DIR, LOW);//はLOWは反時計回り
  32.   digitalWrite(STEP, HIGH);
  33.   delayMicroseconds(delaytime);
  34.   digitalWrite(STEP, LOW);
  35.   delayMicroseconds(delaytime);
  36. }

明るさセンサーの値に応じて明るさを変化させる

  1. const int DIR = 8;
  2. const int STEP = 9;
  3. void setup() {
  4.   pinMode(DIR, OUTPUT);
  5.   pinMode(STEP, OUTPUT);
  6.   digitalWrite(DIR, LOW);
  7.   digitalWrite(STEP, LOW);
  8.   Serial.begin(9600);
  9. }
  10. void loop() {
  11.   int val=0;
  12.   val=analogRead(1);
  13.   Serial.println(val);
  14.   clockwise(val*300);
  15. }
  16. void clockwise(int delaytime){
  17.   digitalWrite(DIR, HIGH);//HIGHは時計回り
  18.   digitalWrite(STEP, HIGH);
  19.   delayMicroseconds(delaytime);
  20.   digitalWrite(STEP, LOW);
  21.   delayMicroseconds(delaytime);
  22. }
  23. void counter_clockwise(int delaytime){
  24.   digitalWrite(DIR, LOW);//はLOWは反時計回り
  25.   digitalWrite(STEP, HIGH);
  26.   delayMicroseconds(delaytime);
  27.   digitalWrite(STEP, LOW);
  28.   delayMicroseconds(delaytime);
  29. }

商品・サービス企画設計(デザイン思考)

グループワークまとめ(HMVとYes,and)のiniation

いつも調子がいいについて

「調子がいい」と「調子が悪い」についてどういった理由でそれぞれのシチュエーションが起こるか考える。

班の仲間たち