2022年8月17日水曜日

桔梗001 半固定抵抗器Aで両輪の出力を 同Bで左右のバランスを 220817_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
#define DTYB 1    //1番ピンをDTYBと定義 デューティー値B

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は入力です
  pinMode(DTYB,INPUT);     //DTYBは入力です
}

void analog1(){


 
  int i=256*analogRead(DTYA)/1024*analogRead(DTYB)/512;         //DTYAの電位を読みとり1024で割る(全出力比率)×DTYBの電位を読み取りそれを512で割る(左右バランの中の右比率);
  int j=256*analogRead(DTYA)/1024*(1024-analogRead(DTYB))/512;  //DTYAの電位を読みとり1024で割る(全出力比率)×(1024-DTYBの電位を読み取り)それを512で割る(左右バランの中の左比率) ;

  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,j);       //Bモーターの出力指定
  delay(9999);                //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();
}