#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
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は出力です
}
void analog1(){
int i; i=170; //0~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); //停止(惰性回転)貫通電流防止のため
digitalWrite(IN1,LOW); //逆転IN1をLOW、IN2をHIGH
digitalWrite(IN2,HIGH); //逆転
digitalWrite(IN3,LOW); //逆転IN3をLOW、IN4をHIGH
digitalWrite(IN4,HIGH); //逆転
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); //停止(惰性回転)貫通電流防止のため
//前進・左旋回
digitalWrite(IN1,HIGH); //正転IN1をHIGH、IN2をLOW
digitalWrite(IN2,LOW); //正転
digitalWrite(IN3,HIGH); //停止(ブレーキ)両方HIGH
digitalWrite(IN4,HIGH); //停止(ブレーキ)
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); //停止(惰性回転)貫通電流防止のため
//後進・左旋回
digitalWrite(IN1,LOW); //逆転IN1をLOW、IN2をHIGH
digitalWrite(IN2,HIGH); //逆転
digitalWrite(IN3,HIGH); //停止(ブレーキ)両方HIGH
digitalWrite(IN4,HIGH); //停止(ブレーキ)
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); //停止(惰性回転)貫通電流防止のため
//前進・右旋回
digitalWrite(IN1,HIGH); //停止(ブレーキ)両方HIGH
digitalWrite(IN2,HIGH); //停止(ブレーキ)
digitalWrite(IN3,HIGH); //正転IN3をHIGH、IN4をLOW
digitalWrite(IN4,LOW); //正転
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); //停止(惰性回転)貫通電流防止のため
//後進・右旋回
digitalWrite(IN1,HIGH); //停止(ブレーキ)両方HIGH
digitalWrite(IN2,HIGH); //停止(ブレーキ)
digitalWrite(IN3,LOW); //逆転IN3をLOW、IN4をHIGH
digitalWrite(IN4,HIGH); //逆転
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); //停止(惰性回転)貫通電流防止のため
//左超旋回
digitalWrite(IN1,HIGH); //正転IN1をHIGH、IN2をLOW
digitalWrite(IN2,LOW); //正転
digitalWrite(IN3,LOW); //逆転IN3をLOW、IN4をHIGH
digitalWrite(IN4,HIGH); //逆転
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); //停止(惰性回転)貫通電流防止のため
//右超旋回
digitalWrite(IN1,LOW); //逆転IN1をLOW、IN2をHIGH
digitalWrite(IN2,HIGH); //逆転
digitalWrite(IN3,HIGH); //正転IN3をHIGH、IN4をLOW
digitalWrite(IN4,LOW); //正転
delay(999); //delay 継続したい時間(ミリ秒)
digitalWrite(IN1,LOW); //停止(惰性回転)貫通電流防止のため
digitalWrite(IN2,LOW); //停止(惰性回転)貫通電流防止のため
digitalWrite(IN3,LOW); //停止(惰性回転)貫通電流防止のため
digitalWrite(IN4,LOW); //停止(惰性回転)貫通電流防止のため
delay(5000); //停止(惰性回転)貫通電流防止のため
}
void loop() {
analog1();
}