การใช้งาน 3 Channel CTRT5000






3 เซ็นเซอร์ สำหรับหุ่นยนต์หุ่นยนต์เดินตามเส้น ใช้อินฟราเรดในการตรวจจับ สามารถ ป้องกันการรบกวน ใช้ เซ็นเซอร์ CTRT5000 ,ความไวแสงสูง,มีเสถียรภาพในการทำงาน โมดูลอ่านค่าสะท้อนกลับของแสง ใช้ไฟ 3.3-5V เหมาะสำหรับใช้กับ Arduino ให้เอาต์พุตออกมา 2 แบบคือแบบดิจิตอล เมื่อค่าที่อ่านได้ถึงระดับที่ต้องการก็จะส่งค่า 1 ออกมา ถ้ายังไม่ถึงระดับก็จะส่งค่า 0 ออกมา และอีกแบบคือเอาต์พุตแบบอะนาล็อก อ่านค่าได้เป็นตัวเลข 0-1023 หรือสัญญาณไฟในช่วง 0-5V

 สามารถนำไปประยุกต์กับงานได้หลายแบบ เช่น ใช้เป็นตัวตรวจจับเส้นสีขาวกับสีดำสำหรับรถ smart car ทำงานแรงดันไฟฟ้า5โวลต์,  ติดตั้งง่ายได้ง่าย


ตัวอย่างการใช้งาน


ต่อวงจรดังนี้

Module -> Arduino

L -> A0

C -> A1

R -> A2

VCC -> 5V

GND -> GND




เปิดโปรแกรม Arduino (IDE) และ Upload โค้ดนี้ ไปยัง บอร์ด Arduino UNO R3


/*
read analog data from A0-A2 and send to PC via Serial port
*/

int sensor_L , sensor_C , sensor_R ; //optical sensor values
String tmp ;
int ADC_stabilize = 5 ;

void setup ( ) {
   // initialize the serial communication:
   Serial . begin ( 9600 ) ;
}

void loop ( ) {
   //take a snapshot
   sensor_L = digitalRead ( A0 ) ;
   delay ( ADC_stabilize ) ; //stabilize
   sensor_L = digitalRead ( A0 ) ;
   delay ( ADC_stabilize ) ;

   sensor_C = digitalRead ( A1 ) ;
   delay ( ADC_stabilize ) ;
   sensor_C = digitalRead ( A1 ) ;
   delay ( ADC_stabilize ) ;

   sensor_R = digitalRead ( A2 ) ;
   delay ( ADC_stabilize ) ;
   sensor_R = digitalRead ( A2 ) ;
   delay ( ADC_stabilize ) ;

   tmp = "L=" + String ( sensor_L ) + " C=" + String ( sensor_C ) + " R=" + String ( sensor_R ) ;

   // send the value of analog inputs:
   Serial . println ( tmp ) ;

   // wait a bit for next reading
   delay ( 1000 ) ; //1000=1 sec


}

เมื่อเปิดดูที่ Serial Monitor ผลลัพธ์ที่ได้ L=1 , C=1 , R=1 แสดงว่าอ่านค่าการสะท้อนกลับได้

 และเมื่อยก โมดูล CTRT5000  สูงขึ้น ผลลัพธ์ที่ได้ L=0 , C=0 , R=0 แสดงว่าอ่านค่าการสะท้อนกลับไม่ได้


เมื่อนำเทปสีดํามาทดสอบ โดยให้ เซ็นเซอร์ตัวกลาง (C) อยู่ในพื้นที่ของเทปสีดํา



เมื่อเปิดดูที่ Serial Monitor ผลลัพธ์ที่ได้ L=1 , C=0 , R = 1 แสดงว่า โมดูล CTRT5000 พร้อมใช้งานแล้ว




ตัวอย่างโค้ด แนวทางการพัฒนา สู่หุ่นยนต์เดินตามเส้น

// connect the sensors to digital pins
#define LEFT_SENSORPIN 2
#define CENTER_SENSORPIN 10
#define RIGHT_SENSORPIN 4

// do you have black line on white ground or white line on black ground?
#define LINE LOW
#define NOLINE HIGH

// define some symbolic constants for our driving directions
enum {GO_AHEAD, GO_LEFT, GO_RIGHT, STOP, GO_POWERLEFT, GO_POWERRIGHT};

void setup() 
{
  Serial.begin(9600);
  Serial.println("*** LINE FOLLOWER ***");
  pinMode(LEFT_SENSORPIN,INPUT);
  pinMode(CENTER_SENSORPIN,INPUT);
  pinMode(RIGHT_SENSORPIN,INPUT);
}

void loop()
{
  // read input from sensors
  byte leftSensor=digitalRead(LEFT_SENSORPIN);
  byte centerSensor=digitalRead(CENTER_SENSORPIN);
  byte rightSensor=digitalRead(RIGHT_SENSORPIN);
  
  // calculate direction
  byte goDirection;
  // if only center sensor detects line, go straight ahead
  if (leftSensor==NOLINE && centerSensor==LINE && rightSensor==NOLINE)
      goDirection= GO_AHEAD;
  // if only left sensor detects line, turn left
  else if (leftSensor==LINE && centerSensor==NOLINE && rightSensor==NOLINE)
      goDirection= GO_LEFT;
  // if only right sensor detects line, turn right    
  else if (leftSensor==NOLINE && centerSensor==NOLINE  && rightSensor==LINE)
      goDirection= GO_RIGHT;
  // if no sensor detects any line: we are either finished or out of control and will stop    
  else if (leftSensor==NOLINE && centerSensor==NOLINE && rightSensor==NOLINE)
      goDirection= STOP;
  // if left and center sensor detect line, must be 90° turn to the left
  else if (leftSensor==LINE && centerSensor==LINE && rightSensor==NOLINE)
      goDirection= GO_POWERLEFT;
  // if right and center sensor detect line, must be 90° turn to the right
  else if (leftSensor==NOLINE && centerSensor==LINE && rightSensor==LINE)
      goDirection= GO_POWERRIGHT;
      
  // Now we have found the direction, 
  // show it on Serial and control motors accordingly
  switch (goDirection)
  {
    case GO_AHEAD: 
      Serial.println("Go ahead");
      // place motor code here
      break;
    case GO_RIGHT:
      Serial.println("Turn right");
      // place motor code here
      break;
    case GO_LEFT:
      Serial.println("Turn left");
      // place motor code here
      break;
    case STOP:
      Serial.println("No line detected - STOP!");
      // place motor code here
      break;
    case GO_POWERLEFT:
      Serial.println("Power-turn 90 degrees left");
      // place motor code here
      break;
    case GO_POWERRIGHT:
      Serial.println("Power-turn 90 degrees right");
      // place motor code here
      break;
  }
}

โปรเจครถบังคับ Arduino Nano 3.0 ควบคุมด้วย บลูทูธ HC-06


โปรเจครถบังคับ Arduino Nano 3.0 ควบคุมด้วย App Android  อุปกรณ์ที่ต้องใช้ก็คือ

     1. Small 2WD Smart Car Robot Chassis Kits

     2.  Arduino Nano 3.0

     3. Motor Drive Module L298N

     4. Bluetooth HC-06 Slave

     5. สาย Jumper Female to Male ยาว 10cm.

     6. สาย Jumper Female to  Female  ยาว 10cm.
   
     7. สาย Jumper Male to  Male  ยาว 10cm.

     8. รางถ่านแบบ 18650 ใส่ถ่าน 2 ก้อน

     9. แบตเตอรี่ลิเธียม 18650 จำนวน 2 ก้อน

    10. สกรูหัวกลม+น็อตตัวเมีย ขนาด 3มม ยาว 12มม



ประกอบ Small 2WD Smart Car Robot Chassis Kits



ยึด รางถ่านแบบ 18650 แบบ 2 ก้อน



ใช้ สกรูหัวกลม+น็อตตัวเมีย ขนาด 3มม. ยึด Motor Drive Module L298N




ภาพรวมการต่อวงจร




รายละเอียด ขาต่างๆ ของ Arduino Nano 3.0



ต่อสายสีดำจากรางถ่าน เข้า ที่ GND ของ L298N และ และต่อสายสีแดงจากรางถ่าน เข้า ที่ + 12V ของ L298N



เชื่อมต่อ สาย GND ของ L298N ไปที่ (29) GND ของ Arduino Nano 3.0 และ เชื่อมต่อ สาย + 5V ของ L298N ไปที่ (27) + 5V ของ Arduino Nano 3.0



ใช้สาย Jumper Female to Male ยาว 10cm. เชื่อมต่อ จุดเชื่อมต่อ มอเตอร์ ของ L298N ทั้ง 2 ด้าน ไปที่ มอเตอร์ ทั้ง 2 ตัว




การเชื่อมต่อ มอเตอร์ด้านล่าง
 



ภาพรวมการต่อสายระหว่าง  L298N กับ Arduino Nano 3.0




เชื่อมต่อสายระหว่าง  L298N กับ Arduino Nano 3.0
 


เชื่อมต่อสายระหว่าง  Bluetooth HC-06 Slave กับ Arduino Nano 3.0




เชื่อมต่อสาย USB ระหว่าง  คอมพิวเตอร์ กับ Arduino Nano 3.0

  เรียนรู้ การใช้งาน Arduino Nano 3.0 และ การติดตั้งไดรเวอร์

https://robotsiam.blogspot.com/2016/11/arduino-nano-30.html






Upload ซอสโค้ด ด้านล่างเข้าสู่ Arduino Nano 3.0


int izqA = 5;
int izqB = 6;
int derA = 9;
int derB = 10;
int vel = 255; // Velocidad de los motores (0-255)
int estado = 'g'; // inicia detenido

void setup() {
Serial.begin(9600); // inicia el puerto serial para comunicacion con el Bluetooth
pinMode(derA, OUTPUT);
pinMode(derB, OUTPUT);
pinMode(izqA, OUTPUT);
pinMode(izqB, OUTPUT);
}

void loop() {

if(Serial.available()>0){ // lee el bluetooth y almacena en estado
estado = Serial.read();
}
if(estado=='a'){ // Boton desplazar al Frente
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, vel);
analogWrite(izqA, vel);
}
if(estado=='b'){ // Boton IZQ
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, vel);
}
if(estado=='c'){ // Boton Parar
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(derA, 0);
analogWrite(izqA, 0);
}
if(estado=='d'){ // Boton DER
analogWrite(derB, 0);
analogWrite(izqB, 0);
analogWrite(izqA, 0);
analogWrite(derA, vel);
}

if(estado=='e'){ // Boton Reversa
analogWrite(derA, 0);
analogWrite(izqA, 0);
analogWrite(derB, vel);
analogWrite(izqB, vel);
}
if (estado =='f'){ // Boton ON se mueve sensando distancia

}
if (estado=='g'){ // Boton OFF, detiene los motores no hace nada
}
}


เลือก Board "Arduino Nano" แล้วจึง Upload



หมายเหตุ : ถ้ามีปัญหาในการ Upload ตามรูปด้านล่าง






ให้ถอดการเชื่อมต่อ Bluetooth HC-06 ออกก่อน แล้วจึงเชื่อมต่อ Bluetooth HC-06 อีกครั้ง หลังจาก Upload เสร็จแล้ว


เก็บรัดสายให้เรียบร้อย



ใส่ถ่าน 18650 จำนวน 2 ก้อน





ใช้สมาร์ทโฟน Android เปิดบลูทูธ ค้นหาอุปกรณ์ HC-06




ถ้าใช้งานครั้งแรก ให้คีย์ 1234




ดาวน์โหลดและติดตั้ง แอพควบคุมรถบังคับ  Arduino Control Car ที่


https://play.google.com/store/apps/details?id=appinventor.ai_el_profe_garcia.Arduino_Control_Car&hl=en


ติดตั้งเหมือนแอพทั่วๆไป



หน้าตาโปรแกรม Arduino Control Car



คลิกที่ปุ่ม Bluetooth แล้วคลิกเลือก  HC-06




ก่อนหน้าไฟ LED สีแดง ของ HC-06 จะติดแบบกระพริบอยู่ หลังจากติดต่อได้ไฟจะติดค้างเป็นสีแดงตลอด จากนั้นทดลองควบคุมดู ถ้าทิศทางการเคลื่อนที่ไม่ตรงกับการควบคุบ ให้ตรวจสอบการต่อสายของมอเตอร์ทั้ง 2 ตัว และแก้ไขให้ถูกต้อง

วีดีโอผลลัพธ์การทำงานของ โปรเจครถบังคับ Arduino Nano 3.0 ควบคุมด้วย บลูทูธ HC-06
 

การใช้งาน Arduino Nano 3.0

Arduino Nano 3.0 Mini USB รุ่นใหม่ใช้ชิฟ CH340G (แถมสาย Mini USB)
Arduino Nano 3.0 พร้อมสาย Mini USB ตัวนี้ เหมือน Arduino Nano 3.0 รุ่นเดิมทุกอย่าง แต่ราคาถูกกว่า

ต่างกันที่ใช้ชิฟ CH340G เป็นชิฟ USB Driver แทนรุ่น Arduino Nano 3.0 เดิม สามารถใช้ได้กับ Windows

XP,Windows 7 , Windows 8 ทั้ง 32/64bit, Linux , Mac OS ได้ และมีราคาถูกลง



Arduino Nano 3.0 เป็น Arduino ที่ใช้หน่วยประมวลผล ATmega328 เช่นเดียวกับ Arduino Uno ความ

สามารถจึงเท่ากัน แตกต่างที่ Arduino Nano 3.0 ถูกออกแบบให้มีขนาดเล็ก โดยตัดส่วนของ Socket ที่ไม่

จำเป็นออก และยังคงความสามารถในการติดต่อผ่าน USB port เหมือนบอร์ด Arduino ตัวใหญ่ไว้ อาจจะ

เรียกได้ว่า Arduino Nano 3.0 ตัวนี้ คือ Arduino Uno ขนาดย่อส่วนลงมา


ดาวน์โหลดไดรเวอร์ได้ที่นี่



การติดตั้งไดรเวอร์ Windows 7 

นำ USB ต่อเข้ากับคอมพิวเตอร์ผ่านทาง USB Port


คลิกขวา Computet -> Properties



คลิกที่ Device Manager




คลิกขวา USB 2.0 Serial -> Update Dirver Software...



เลือก Browse my computer for diver software




ไปที่ เราดาวน์โหลดไดรเวอร์ มา และ คลายซิป เรียบร้อยแล้ว




คอมพิวเตอร์ จะติดตั้ง ไดรเวอร์ ของ Arduino Nano 3.0



ตรวจสอบ เมื่อติดตั้งเสร็จแล้ว



เปิดโปรแกรม Arduino (IDE) เขียนโปรแกรม หรือ Sketch ตามโค้ดด้านล่างนี้


void setup() 
{
   Serial.begin(9600);
}

void loop() 
{
   Serial.println("Hello World");
}



ไปที่ Tools -> Board  แล้วเลือกให้ตรงกับบอร์ดที่ใช้งาน สำหรับ Arduino Nano 3.0 ให้เลือกบอร์ด Arduino Nano



ตรวสอบ Port ว่าถูกต้องหรือไม่ โดยไปที่ Tools -> Port



อัพโหลดโปรแกรมเข้าสู่ บอร์ด Arduino Nano 3.0 โดยไปที่ Sketch -> Upload



จากนั้นเปิด Serial Monitor ของ Arduino IDE โดยไปที่  Tools -> Serial Monitor



เมื่อเปิด Serial Monitor ได้ข้อความดังรูป แสดงว่า บอร์ด Arduino Nano 3.0  ของเราพร้อมใช้งานแล้วครับ

ประดิษฐ์รถบังคับจากแผ่นซีดี ควบคุมด้วยแอพแอนดรอยด์


สิ่งประดิษฐ์ทางวิทยาศาสตร์ โดยใช้มอเตอร์ ทำจากเศษวัสดุ โดยเราจะประดิษฐ์ รถบังคับ Arduino จาก จากแผ่นซีดี ควบคุมด้วยแอพแอนดรอยด์

     อุปกรณ์ที่ต้องใช้ก็คือ

     1. แผ่น CD ที่ไม่ใช้แล้ว จำนวน 2 แผ่น

     2. Arduino UNO R3 - Made in italy

     3. Motor Drive Module L298N

     4. HC-05 Bluetooth Master Slave

     5. สาย Jumper Female to Male ยาว 10cm.

     6. สาย Jumper Male to  Male ยาว 10cm.

     7. เกียร์มอเตอร์และล้อรถ จำนวน 2 ชุด

     8. ล้อหน้า สำหรับ 2WD

     9. รางถ่าน AA 6 ก้อน 9 โวลต์

     10. ถ่านอัลคาไลน์ ขนาด AA จำนวน 6 ก้อน


ขั้นตอนการทำงาน

เตรียมปืนยิงกาว



เตรียมแผ่น CD ที่ไม่ใช้แล้ว จำนวน 2 แผ่น



ใช้ปืนยิงกาวยึด CD 2 แผ่นเข้าด้วยกันทั้ง 2 ด้าน ดังรูป



ยึด มอเตอร์ตัวที่1 เข้าที่ด้านล่าง ของแผ่น CD โดยหันขั้วของมอเตอร์เข้าด้านใน


ยึด มอเตอร์ตัวที่2 เข้าที่ด้านล่าง ของแผ่น CD โดยหันขั้วของมอเตอร์เข้าด้านใน


ประกอบ ล้อรถ ทั้ง 2 ล้อ เข้า กับ เกียร์มอเตอร์



ยึด ล้อหน้า


เมื่อกลับดูด้านบน



ยึด Motor Drive Module L298N




ยึด Arduino UNO R3




ยึด รางถ่าน AA 6 ก้อน 9 โวลต์




ประกอบวงจร






ต่อสาย สีดำ และ สีแดง ของรางถ่าน AA เข้ากับ Motor Driver ดังรูป



ต่อสาย 5V ของ Motor Drive Module L298N ไปยัง 5V ของ Arduino UNO R3




ต่อสาย จาก Motor Drive Module L298N  ไปยัง มอเตอร์ ทั้ง 2 ตัว




บัดกรี เชื่อมสาย เข้ากับมอเตอร์ด้านล่างทั้ง 2 ตัว



ต่อสาย ระหว่าง Motor Drive Module L298N  กับ Arduino UNO R3

เรียนรู้เพิ่มเติม : https://robotsiam.blogspot.com/2016/08/l298n-motor-driver-connect-arduino-r3.html

*** VCC ของ Arduino UNO R3 คือ 5V ***







ต่อสาย ระหว่าง HC-05 Bluetooth Master Slave กับ Arduino UNO R3

เรียนรู้เพิ่มเติม : https://robotsiam.blogspot.com/2016/08/hc-05-bluetooth-module.html

HC-05 ใช้ไฟ 5V จุดเดียวกับ L298N จำเป็น ต้อง เชื่อมต่อทั้ง 2 สาย ร่วมกันก่อน แล้วจึงต่อลงไปที่ 5V อีกครั้ง




บัดกรี สาย 5V ทั้ง 3 สายเข้า ด้วยกัน



แล้วจึงต่อลงไปที่ 5V อีกครั้ง





ต่อสายสีดำ GND <-> GND




ต่อสายที่เหลือ ระหว่าง HC-05 กับ บอร์ด UNO พิน 8 , 9 , 10




เชื่อมต่อ สายกราวด์ GND  ของ L298N กับ บอร์ด UNO เข้าด้วยกัน โดยถอดสายสีดำของรางถ่าน ออกจาก L298N  บัดกรี หรือ มัดรวมกัน แล้วใส่คืน GND  ของ L298N อีกครั้ง




ต่อ สายกราวด์ GND ที่เชื่อมต่อ รางถ่านสีดำ กับ GND ของ L298N ไว้แล้ว ไปยัง GND ของ บอร์ด UNO



เชื่อมต่อสาย USB ระหว่าง คอมพิวเตอร์ กับ บอร์ด UNO




เรียนรู้เพิ่มติม : https://robotsiam.blogspot.com/2016/08/arduino-ide.html
เรียนรู้เพิ่มติม : https://robotsiam.blogspot.com/2016/08/hello-world-arduino-uno-r3.html

เปิดโปรแกรม Arduino (IDE)  เขียน โค้ด และ Upload  ไปยังบอร์ด Arduino UNO ดังนี้

#include <SoftwareSerial.h>
SoftwareSerial BTSerial(9, 10);

int dir1PinA = 2;
int dir2PinA = 3;
int speedPinA = 6;
int dir1PinB = 4;
int dir2PinB = 5;
int speedPinB = 7;
int SPEED = 191;  // Speed PWM สามารถปรับความเร็วได้ถึง 255

void setup() 
{   

  pinMode(dir1PinA,OUTPUT);
  pinMode(dir2PinA,OUTPUT);
  pinMode(speedPinA,OUTPUT);
  pinMode(dir1PinB,OUTPUT);
  pinMode(dir2PinB,OUTPUT);
  pinMode(speedPinB,OUTPUT);
  pinMode(8,OUTPUT);
  digitalWrite(8, HIGH);
  Serial.begin(9600);
  BTSerial.begin(9600); 
}


void loop() 
{  
  if (BTSerial.available())
    Serial.write(BTSerial.read());

  if (Serial.available())
    BTSerial.write(Serial.read());

  if (BTSerial.available() > 0) {

    int inByte = BTSerial.read();
    int speed;
    switch (inByte) {

    case 'F':

      analogWrite(speedPinA, SPEED);
      analogWrite(speedPinB, SPEED);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinA, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 1 Forward");
      Serial.println("Motor 2 Forward");
      Serial.println("   "); 

      break;



    case 'S': 

      analogWrite(speedPinA, 0);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Stop");
      analogWrite(speedPinB, 0);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Stop");
      Serial.println("   ");

      break;

    case 'B':

      analogWrite(speedPinA, SPEED);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back");
      analogWrite(speedPinB, SPEED);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back");
      Serial.println("   ");

      break;

    case 'L':

      analogWrite(speedPinA, 0);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Left");
      analogWrite(speedPinB, SPEED);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Left");
      Serial.println("   ");

      break;

    case 'R':

      analogWrite(speedPinA, SPEED);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Right");
      analogWrite(speedPinB, 0);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Right");
      Serial.println("   ");

      break;

    case 'I':

      analogWrite(speedPinA, 150);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Forward L");
      analogWrite(speedPinB, SPEED);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Forward L");
      Serial.println("   ");

      break;

    case 'G':

      analogWrite(speedPinA, SPEED);
      digitalWrite(dir1PinA, LOW);
      digitalWrite(dir2PinA, HIGH);
      Serial.println("Motor 1 Forward R");
      analogWrite(speedPinB, 150);
      digitalWrite(dir1PinB, HIGH);
      digitalWrite(dir2PinB, LOW);
      Serial.println("Motor 2 Forward R");
      Serial.println("   ");

      break;

    case 'J':

      analogWrite(speedPinA, 200);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back L");
      analogWrite(speedPinB, SPEED);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back L");
      Serial.println("   ");

      break;

    case 'H':

      analogWrite(speedPinA, SPEED);
      digitalWrite(dir1PinA, HIGH);
      digitalWrite(dir2PinA, LOW);
      Serial.println("Motor 1 Back R");
      analogWrite(speedPinB, 200);
      digitalWrite(dir1PinB, LOW);
      digitalWrite(dir2PinB, HIGH);
      Serial.println("Motor 2 Back R");
      Serial.println("   ");

      break;


    default:



      for (int thisPin = 2; thisPin < 11; thisPin++) 

      {

        digitalWrite(thisPin, LOW);

      }

    }

  }

}




หาแก้วสำหรับ ยกตัวรถ เพื่อไม่ให้ล้อแตะพื้น สำหรับการทดสอบ






จากนั้น ทดลองนำ โทรศัพท์มือถือ แอนดรอยด์  เปิด บลูทูธ  แล้ว ดาวน์โหลดและติดตั้ง โปรแกรม Arduino Bluetooth RC Car ดังนี้






สังเกตุ เมื่อเปิดขึ้นมา รูปวงกลมซ้ายมือ จะเป็นสีแดง



คลิกที่ ไอคอนเฟือง ขวามือสุด แล้ว เลือก Connect to car




เลือก HC-05 (ถ้าถามหา พาสเวิร์ด ให้คีย์ 1234)




สังเกตุ รูปวงกลมซ้ายมือเป็นสีเขียวแสดงว่า โปรแกรมสามารถใช้งานได้แล้ว ทดลองควบคุมดูเลยครับ





เมื่อล้อรถหมุน ตรวจสอบการหมุนของล้อ ว่าถูกต้องหรือไม่ ถ้าไม่ถูกต้องตรวจสอบแก้ไขการต่อสายต่างๆ ขั้วของมอเตอร์ถูกต้องหรือไม่




ถ้าทุกอย่างถูกต้อง รถบังคับ Arduino จาก แผ่น CD เก่า ของเรา ก็พร้อมใช้งานแล้วครับ




วีดีโอผลลัพธ์การทำงานของ ประดิษฐ์รถบังคับจากแผ่นซีดี ควบคุมด้วยแอพแอนดรอยด์