Created
October 30, 2024 13:08
-
-
Save RyoKosaka/4a920a9ee144bb55830ad7aeed2e239e 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 <Stepper.h> //Stepperライブラリを使いますよという宣言 | |
Stepper myStepper(2048, 8, 10, 9, 11); //2048はステッピングモーターの分解能(28BYJ-48の場合) | |
bool flag = false; //直前のセンサーの状態を記録しておくための変数 | |
int threshold = 500; //閾値 | |
int steps = 3072; //送るステップ数を格納する為の変数(3072は1回転半) | |
void setup() { //電源をつけた時に一回だけ行われる | |
Serial.begin(9600); //シリアルモニタを使いますという宣言 | |
myStepper.setSpeed(18); //myStepperの速度を18に指定。 | |
} | |
void loop() { | |
int sensorValue = analogRead(A0);//A0ピンで読んだ値に名前をつける | |
Serial.print(sensorValue);//シリアルモニタに値を表示 | |
Serial.print(","); | |
Serial.println(flag); | |
//直前までセンサーに反応がなく、sensorValueが500以下になったとき | |
if (sensorValue < threshold && flag == false) { | |
flag = true; //flagをtrueに センサーが反応している状態の保存 | |
steps = -1 * steps; //ボタンが押されるたびに正負を反転させる | |
myStepper.step(steps); //myStepperをstepsの値まで動かすという指定 | |
} | |
//直前までセンサーに反応があり、sensorValueが550より大きくなったとき | |
if(sensorValue >= threshold + 50 && flag == true){ | |
flag = false; //flagをfalseに センサーが反応していない状態の保存 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment