#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=analogRead(DTYA)/4; // DTYAの電位を読みとり4で割ってiに代入する(DTYAは1~1023で来る。 iは1~255で入力する。);
int j=analogRead(DTYB)/4; // DTYBの電位を読みとり4で割ってjに代入する(DTYBは1~1023で来る。 jは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,j); //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();
}
#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=analogRead(DTYA)/4; // DTYAの電位を読みとり4で割ってiに代入する(DTYAは1~1023で来る。 iは1~255で入力する。);
int j=analogRead(DTYB)/4; // DTYBの電位を読みとり4で割ってjに代入する(DTYBは1~1023で来る。 jは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,j); //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();
}