プロジェクト:3つのセンサーを搭載したライン追跡ロボット KY-033。 必要な機材:     1.  

2WDスマートカーロボットシャーシキット     2.  

Arduino UNO R3(イタリア製)     3. 

Arduinoセンサーシールド V 5.0     4. 

モータードライブモジュール L298N     5. 

メス-オスジャンパーケーブル(長さ20cm)     6. 

メス-メスジャンパーケーブル(長さ20cm)     7.  

18650バッテリーレール(バッテリー2個を収納可能     ) 8.  

18650リチウムバッテリー2個     9.  

3mm丸頭メスネジ(長さ10mm)
     10.  

1 チャンネル KY-033 トラック センサー、  3 個     11. 

25 mm 角型金属 PCB サポート ポール。     12. 

標準の22AWG赤と黒のワイヤー。まず、2WDスマートカーロボットシャーシキットを組み立て、18650バッテリーレールを組み立て、図に示すようにモータードライブモジュールL298NをArduinoセンサーシールドV 5.0回路に接続します。注意: L298N ボードの ENA ピンと ENB ピンにジャンパーがある場合は、それらを取り外します。

Arduino Sensor Shield V5.0ボードをL298Nボードに接続する  

*** Arduino センサーシールド V5.0 の VCC は V ***

2WD スマートカー ロボット シャーシ キットを組み立て、18650 バッテリー ホルダーを組み立て、モーター ドライブ モジュール L298N の 5V と GND を Arduino センサー シールドの V と G に接続します。 

モータードライブモジュールL298Nのモーター制御をArduinoセンサーシールドに接続します。

その後、予備テストを行います。ホイールの回転が正しいかどうかを確認します。Arduinoプログラム (IDE) を開き、このコードを Arduino UNO R3 ボードにアップロードします。 // モーター A のピン (enableA = モーター有効、pinA1 = 前進、pinA2 = 後進) int enableA = 3; int pinA1 = 6; int pinA2 = 7; // モーター B のピン (enabledB = モーター有効、pinB2 = 前進、pinB2 = 後進) int enableB = 5; int pinB1 = 8; int pinB2 = 9; // これにより、テストのためにループを 1 回実行できますboolean run = true; void setup() {  pinMode(enableA, OUTPUT);  pinMode(pinA1, OUTPUT);  pinMode(pinA2, OUTPUT);  pinMode(enableB, OUTPUT);  pinMode(pinB1, OUTPUT);  pinMode(pinB2, OUTPUT); } void loop() {   if (run) {     delay(2000);     enableMotors();     //前進    forward(200);     //後進    backward(200);     //左折    turnLeft(400);     coast(200);     //右折    turnRight(400);     coast(200);     //ループを停止    run = false;    } } //高レベルのHブリッジコマンドを定義しますvoid enableMotors() {  motorAOn();  motorBOn(); } void disableMotors() {  motorAOff();  motorBOff(); } void forward(int time) {  motorAForward();  motorBForward();  delay(time); } void backward(int time) {  motorABackward();  motorBBackward();  delay(time); } void turnLeft(int time) {  motorABackward();  motorBForward();  delay(time); } void turnRight(int time) {  motorAForward();  motorBBackward();  delay(time); } void coast(int time) {  motorACoast();  motorBCoast();  delay(time); } void break(int time) {  motorABrake();  motorBBrake();  delay(time); } //低レベルHブリッジコマンドを定義する//モーターを有効にするvoid motorAOn() {  digitalWrite(enableA, HIGH); } void motorBOn() {  digitalWrite(enableB, HIGH); }  //モーターを無効にするvoid motorAOff() {  digitalWrite(enableB, LOW); } void motorBOff() {