2022年8月16日火曜日

桔梗001のモーターの出力を半固定抵抗器で調整 220816_001

#define ENA 9     //9番ピンをENAと定義 右PWM
#define IN1 8     //8番ピンをIN1と定義 右
#define IN2 7     //7番ピンをIN2と定義 右
#define IN3 5     //5番ピンをIN3と定義 左
#define IN4 4     //4番ピンをIN4と定義 左
#define ENB 3     //3番ピンをENBと定義 左PWM
#define DTYA 0    //0番ピンをdtyaと定義 デューティー値A

void setup() {
  pinMode(ENA,OUTPUT);     //ENAは出力です
  pinMode(IN1,OUTPUT);     //IN1は出力です
  pinMode(IN2,OUTPUT);     //IN2は出力です
  pinMode(IN3,OUTPUT);     //IN3は出力です
  pinMode(IN4,OUTPUT);     //IN4は出力です
  pinMode(ENB,OUTPUT);     //ENBは出力です
  pinMode(DTYA,INPUT);     //DTYAは入力です
}

void analog1(){
  int i=analogRead(DTYA)/4;  // DTYAの電位を読みとり4で割ってiに代入する(DTYAは1~1023で来る。 iは1~255で入力する。);

  digitalWrite(IN1,HIGH);     //正転IN1をHIGH、IN2をLOW
  digitalWrite(IN2,LOW);      //正転
    analogWrite(ENA,i);       //Aモーターの出力指定
  digitalWrite(IN3,HIGH);     //正転IN3をHIGH、IN4をLOW
  digitalWrite(IN4,LOW);      //正転
    analogWrite(ENB,i);       //Bモーターの出力指定
  delay(999);                //delay 継続したい時間(ミリ秒)

  digitalWrite(IN1,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN2,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN3,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN4,LOW);      //停止(惰性回転)貫通電流防止のため
  delay(1);                   //停止(惰性回転)貫通電流防止のため

  digitalWrite(IN1,HIGH);     //停止(ブレーキ)両方HIGH
  digitalWrite(IN2,HIGH);     //停止(ブレーキ)
  digitalWrite(IN3,HIGH);     //停止(ブレーキ)両方HIGH
  digitalWrite(IN4,HIGH);     //停止(ブレーキ)
  delay(1999);

  digitalWrite(IN1,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN2,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN3,LOW);      //停止(惰性回転)貫通電流防止のため
  digitalWrite(IN4,LOW);      //停止(惰性回転)貫通電流防止のため
  delay(1);                   //停止(惰性回転)貫通電流防止のため

}

void loop() {
  analog1();
}