#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();
}
#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();
}