วันพฤหัสบดีที่ 27 กันยายน พ.ศ. 2561

งานปฏิบัติที่ 11 งานโปรแกรมการเชื่อมต่อกับ LDR แสดงผลด้วย LCD

wiring diagram




โค้ดที่10.1 (Code Arduino)


#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;

void setup()
{
  lcd.begin();
}
void loop() 
{
  aVal = analogRead(A0);

  if (tempaVal != aVal)
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("LDR");
    lcd.setCursor(0,1);
    lcd.print(aVal);
    delay(300);
  }
  tempaVal = aVal;
}



โค้ดที่10.2 (Code Arduino)


#include <LiquidCrystal_I2C.h> 

LiquidCrystal_I2C lcd(0x27,16,2);

int aVal=0,tempaVal=0;
void setup()
{
  lcd.begin();
}
void loop() 
{
  aVal = analogRead(A0);
  if (tempaVal != aVal)
  {
    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print(aVal);
    lcd.setCursor(0,1);
    if (aVal<100)
      lcd.print("Dark");
    else
      lcd.print("Light");
    delay(300);
  }
  tempaVal = aVal;
}

งานปฏิบัติที่ 10 งานโปรแกรมรับค่าจากอุปกรณ์ INPUT แบบต่าง ๆ แสดงผลด้วย LCD

wiring diagram

รูปที่ 1





โค้ดที่9.1 (Code Arduino)



#include <Wire.h>
#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
void setup()
{
  lcd.backlight();
  lcd.begin();//LiquidCrystal_I2C
}
void loop() 
{
  lcd.setCursor(0,0);
  lcd.print("Hello LCD I2C");
  lcd.setCursor(0,1);
  lcd.print("Pattayatech");


}



โค้ดที่9.2 (Code Arduino)



#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int x=48;
int y=-79;
float z=8.74586; 
void setup()
{
lcd.begin();
}
void loop() 
{
  lcd.setCursor(0,0);
  lcd.print("x = ");
  lcd.print(x);
  lcd.setCursor(8,0);
  lcd.print("y = ");
  lcd.print(y);
  lcd.setCursor(0,1);
  lcd.print("z = ");
  lcd.print(z,4);


}




โค้ดที่9.3 (Code Arduino)



#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
byte heart[8] = {0x00,0x0A,0x1F,0x1F,0x0E,0x04,0x00,0x00};
byte smile[8] = {0x00,0x11,0x00,0x00,0x11,0x0E,0x00,0x00};
void setup() 
{
  lcd.begin();
  lcd.createChar(0,heart);
  lcd.createChar(1,smile);
}
void loop() 
{
  lcd.setCursor(0,0);
  lcd.write(0);
  lcd.setCursor(0,1);
  lcd.write(1);


}



โค้ดที่9.4 (Code Arduino)

#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
void setup() 
{
  lcd.begin();
}
void loop() 
{
  lcd.home();
  lcd.print("ECS");
  for (int i=0;i<13;i++)
  {
    delay(400);
    lcd.scrollDisplayRight();
  }
  for (int i=0;i<13;i++)
  {
    delay(400);
    lcd.scrollDisplayLeft();
  }
}



รูปที่ 2



โค้ดที่9.5 (Code Arduino)

#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempaVal=0;
void setup()
{
lcd.begin();
}
void loop() 
{
aVal = analogRead(A0);
lcd.setCursor(0,0);
if (tempaVal != aVal)
{
  lcd.clear();
  lcd.print(aVal);
  delay(300);
}
tempaVal = aVal;
}



โค้ดที่9.6 (Code Arduino)

#include <LiquidCrystal_I2C.h> 
LiquidCrystal_I2C lcd(0x27,16,2);
int aVal=0,tempx=0,x;
void setup()
{
  lcd.begin();
}
void loop() 
{
aVal = analogRead(A0);
lcd.setCursor(0,0);
x = map(aVal,0,1023,1,17);
  if (tempx != x)
  {
    lcd.clear();
    for(int i=0;i<x;i++)
    {
      lcd.print("*");
    }
  }
  tempx = x;
}


รูปที่ 3



โค้ดที่9.7(Code Arduino)



#include <Keypad.h>


#include <LiquidCrystal_I2C.h>


LiquidCrystal_I2C lcd(0x27,16,2);

char keys[4][4] = {

  {'7','8','9','A'},

  {'4','5','6','B'},

  {'1','2','3','C'},
  {'*','0','#','D'}};
byte rowPins[4] = {7,6,5,4}; 
byte colPins[4] = {3,2,1,0}; 
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
void setup()
{
  lcd.begin();
  lcd.setCursor(0,0);
}
void loop()
{
  char key = keypad.getKey();
  if (key != NO_KEY)
  {
    lcd.print(key);
  }
}




โค้ดที่9.8 (Code Arduino)

#include <Keypad.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
char keys[4][4] = {
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},
  {'*','0','#','D'}};
byte rowPins[4] = {7,6,5,4}; 
byte colPins[4] = {3,2,1,0}; 
char num[4];
int m=3;
Keypad keypad = Keypad(makeKeymap(keys),rowPins,colPins,4,4);
void setup()
{
  lcd.begin();
  lcd.setCursor(0,0);
  lcd.print("PW : ");
  lcd.setCursor(5,0);
  lcd.cursor();
}
void loop()
{  
  char key = keypad.getKey();
  if ((key != NO_KEY) && (key>=48) && (key<=57))
  {
    lcd.print(key);
    num[m]=key;
    m--;
    if(m<0)
    {
      delay(500);
      lcd.setCursor(0,1);
      if((num[3]=='4')&&(num[2]=='5')&&(num[1]=='9')&&(num[0]=='6'))
      {
        lcd.print("OPEN");
      }
      else
      {             
        lcd.print("CLOSE");
      }      
      delay(1500);      
      m=3;
      lcd.clear();
      lcd.setCursor(0,0);
      lcd.print("PW : ");
      lcd.setCursor(5,0);  
     }
   }
}







วันอาทิตย์ที่ 16 กันยายน พ.ศ. 2561

โปรเจค งานที่ 20 ไฟ LED กะพริบกับ Arduino Uno

ไฟ LED กะพริบกับ Arduino Uno
ไฟ LED กะพริบกับ Arduino Uno

ARDUINO UNO เป็นบอร์ดควบคุมของ ATMEGA ที่ออกแบบมาสำหรับวิศวกรอิเล็กทรอนิกส์และนักช็อปปิ้ง สภาพแวดล้อมการพัฒนาโปรแกรม Arduino เป็นวิธีที่ง่ายในการเขียนโปรแกรมเมื่อเทียบกับโปรแกรมการพัฒนาสภาพแวดล้อมอื่น ๆ

องค์ประกอบที่จำเป็น

ฮาร์ดแวร์:บอร์ด Arduino uno, หมุดต่อ, ตัวต้านทาน220Ω, LED, แท่นไม้กระดาน
ซอฟต์แวร์: Arduino Nightly ( https://www.arduino.cc/en/Main/Software )

แผนภาพวงจรและคำอธิบายการทำงาน


Arduino Uno ไฟ LED กระพริบแผนภาพวงจร

ที่นี่เราจะเขียนโปรแกรมที่จะกระพริบ LED สำหรับทุก 500ms ใน arduino uno LED จะได้รับการออกแบบมาแล้วที่ pin13 แต่เราจะไม่ใช้มัน ต่อไปนี้เราจะเชื่อมต่อ LED ที่ระบุถึง PIN0 ผ่านตัวต้านทาน จำกัด กระแส
ตัวควบคุมใน arduino ได้รับการตั้งโปรแกรมไว้แล้วสำหรับการทำงานกับคริสตัลภายนอก ดังนั้นเราจึงไม่จำเป็นต้องกังวลเรื่องฟิวส์บิตหรืออะไรเลย Arduino ทำงานบนนาฬิกาคริสตัลขนาด 16 ล้านพิกเซลซึ่งฝังอยู่ในบอร์ดแล้ว

รหัส
/ / ฟังก์ชั่นการตั้งค่าทำงานเมื่อกดปุ่มรีเซ็ตหรือเปิดเครื่อง
การตั้งค่าเป็นโมฆะ ()
{
 // เริ่มต้นขาดิจิตอล 0 เป็นเอาท์พุท
pinMode (0, OUTPUT);
 }
// ฟังก์ชันลูปทำงานซ้ำไปเรื่อย ๆ
void loop ()
{
digitalWrite (0, สูง); / / เปิดไฟ LED (HIGH คือระดับแรงดันไฟฟ้า)
ล่าช้า (500); / รอสักครู่
digitalWrite (0, ต่ำ); / / ไฟ LED ปิดโดยการทำให้แรงดันต่ำ
ล่าช้า (500); / รอสักครู่
วีดีโอ

โปรเจค งานที่ 19 เครื่องตรวจจับสีโดยใช้ Arduino Uno

เครื่องตรวจจับสีโดยใช้ Arduino
เครื่องตรวจจับสีโดยใช้ Arduino Uno

ในโครงการนี้เราจะไปติดต่อเซ็นเซอร์สี TCS3200 กับ Arduino UNO TCS3200 เป็นเซ็นเซอร์สีซึ่งสามารถตรวจจับสีได้หลายสีด้วยการเขียนโปรแกรมที่ถูกต้อง TCS3200 ประกอบด้วยอาร์เรย์ RGB (สีแดงสีเขียว) ดังที่แสดงในภาพในระดับจุลภาคหนึ่งสามารถดูกล่องสี่เหลี่ยมภายในตาบนเซ็นเซอร์ กล่องสี่เหลี่ยมเหล่านี้เป็นอาร์เรย์ของเมทริกซ์ RGB กล่องแต่ละกล่องมีเซนเซอร์สามตัวหนึ่งชิ้นสำหรับตรวจจับความเข้มของแสงสีแดงหนึ่งสำหรับตรวจจับความเข้มแสงสีเขียวและเป็นครั้งสุดท้ายสำหรับการตรวจจับความเข้มของแสง BLUE
TCS230 สี Pinout Sensor

อาร์เรย์ของเซนเซอร์แต่ละตัวในอาร์เรย์ทั้งสามนี้จะถูกเลือกแยกต่างหากตามความต้องการ ดังนั้นมันจึงเป็นที่รู้จักกันเป็น  เซ็นเซอร์ที่สามารถตั้งโปรแกรม โมดูลสามารถให้ความสำคัญกับความรู้สึกเฉพาะสีและปล่อยให้คนอื่น ๆ มีตัวกรองสำหรับวัตถุประสงค์ในการเลือกนั้น มีโหมดที่ไม่อยู่ในโหมดกรอง โดยไม่มีตัวกรองสัญญาณเซ็นเซอร์ตรวจจับแสงสีขาว

องค์ประกอบที่จำเป็น

ฮาร์ดแวร์: ARDUINO UNO, แหล่งจ่ายไฟ (5v), LED, JHD_162ALCD (16 * 2LCD), เซ็นเซอร์สี TCS3200
ซอฟต์แวร์: ARDUINO IDE (ARDUINO nightly)

แผนภาพวงจรและคำอธิบายการทำงาน

ในจอ LCD ขนาด 16x2 มีหมุด 16 ตัวหากมีแสงด้านหลังหากไม่มีแสงด้านหลังจะมีหมุด 14 ตัว หนึ่งสามารถใช้พลังงานหรือปล่อยให้หมุดแสงกลับ ตอนนี้ใน 14 ขามี 8 หมุดข้อมูล (7-14 หรือ D0-D7) 2 หมุดแหล่งจ่ายไฟ (1 & 2 หรือ VSS & VDD หรือ GND & + 5V) 3 พินสำหรับการควบคุมความคมชัด (วีควบคุมวิธีการหนาตัวละครที่ควรจะเป็น แสดง) และ 3 หมุดควบคุม (RS & RW & E)

ในวงจรคุณสามารถสังเกตฉันมีเพียงสองหมุดควบคุม บิตตรงกันข้ามและอ่าน / เขียนไม่ได้ใช้บ่อยเพื่อให้พวกเขาสามารถ shorted กับพื้น ทำให้จอ LCD มีความคมชัดสูงสุดและโหมดการอ่าน เราจำเป็นต้องควบคุมการเปิดใช้งานและหมุด RS เพื่อส่งอักขระและข้อมูลตามลำดับ [ยังตรวจสอบ: LCD interfacing กับ Arduino Uno ]
การเชื่อมต่อที่ทำกับ LCD จะได้รับดังนี้:
PIN1 หรือ VSS ไปที่พื้น
PIN2 หรือ VDD หรือ VCC ถึง + 5V power
PIN3 หรือ VEE กับพื้น (ให้ความคมชัดสูงสุดสำหรับผู้เริ่มต้นใช้งาน)
PIN4 หรือ RS (เลือกลงทะเบียน) เป็น PIN8 ของ ARDUINO UNO
PIN5 หรือ RW (อ่าน / เขียน) ไปที่พื้น (ทำให้ LCD ในโหมดอ่านช่วยลดการสื่อสารสำหรับผู้ใช้)
PIN6 หรือ E (เปิดใช้งาน) toPIN9 ของ ARDUINO UNO
PIN11 หรือ D4 ถึง PIN7 ของ ARDUINO UNO
PIN12 หรือ D5 เป็น PIN11 ของ ARDUINO UNO
PIN13 หรือ D6 เป็น PIN12 ของ ARDUINO UNO
PIN14 หรือ D7 เป็น PIN13 ของ ARDUINO UNO

การเชื่อมต่อที่ทำขึ้นสำหรับเซ็นเซอร์สีจะได้รับดังนี้:
VDD ถึง +5V
GND เป็น GROUND
OE (เอาท์พุทเปิดใช้งาน) เป็น GND
S0 ถึง UNO พิน 2
S1 ไปยัง UNO พิน 3
S2 ไปยัง UNO pin 4
S3 ถึง UNO พิน 5
ออกไปที่ UNO pin 10
วงจรเซนเซอร์สี Arduino Based
สีที่ต้องการจะตรวจจับโดยเซ็นเซอร์สีจะถูกเลือกโดยหมุดสองดวง S2 และ S3 ด้วยการควบคุมตรรกะสองขานี้เราสามารถบอกได้ว่าความเข้มแสงสีจะวัดได้อย่างไร
สมมติว่าเราต้องรู้สึกถึงความเข้มของสีแดงที่เราต้องตั้งค่าทั้งสองหมุดให้ต่ำ เมื่อเซ็นเซอร์ตรวจจับความเข้มและส่งค่าไปยังระบบควบคุมภายในโมดูลแล้ว
S2
S3
ประเภท Photodiode
L
L
สีแดง
L
H
สีน้ำเงิน
H
L
ล้าง (ไม่มีตัวกรอง)
H
H
สีเขียว
ระบบควบคุมภายในโมดูลดังแสดงในรูป ความเข้มแสงที่วัดได้จากอาร์เรย์จะถูกส่งไปยังตัวแปลงกระแสไฟฟ้ากระแสตรง สิ่งที่ได้คือทำให้คลื่นสแควร์มีความถี่สัมพันธ์กับกระแสที่ส่งโดย ARRAY
โฟโต้ไดโอด
ดังนั้นเราจึงมีระบบที่ส่งคลื่นสแควร์ที่มีความถี่ขึ้นอยู่กับความเข้มแสงที่เลือกโดย S2 และ S3

ความถี่สัญญาณที่ส่งมาจากโมดูลสามารถปรับได้ขึ้นอยู่กับการใช้งาน เราสามารถเปลี่ยนความถี่สัญญาณเอาท์พุทได้
S0
S1
การปรับความถี่เอาต์พุต (f 0 )
L
L
อำนาจลง
L
H
2%
H
L
20%
H
H
100%
การปรับความถี่จะกระทำโดยสองบิต S0 และ S1 เพื่อความสะดวกเราจะ จำกัด การปรับความถี่เป็น 20% นี้ทำโดยการตั้งค่า S0 ไปสูงและ S1 ถึง LOW คุณลักษณะนี้มีประโยชน์เมื่อเราใช้โมดูลในระบบที่มีนาฬิกาต่ำ

ความไวของอาร์เรย์ต่อสีจะแสดงไว้ในรูปด้านล่าง
ความไวของอาร์เรย์
แม้ว่าสีที่แตกต่างกันมีความไวที่แตกต่างกันสำหรับการใช้งานปกติจะไม่สร้างความแตกต่างมาก
UNO ส่งสัญญาณไปยังโมดูลเพื่อตรวจจับสีและข้อมูลที่ได้รับจากโมดูลจะปรากฏในจอ LCD 16 * 2 ที่เชื่อมต่ออยู่
UNO ตรวจจับความเข้มของสีสามสีแยกกันและแสดงบนจอ LCD
Uno สามารถตรวจจับระยะเวลาชีพจรของสัญญาณโดยที่เราจะได้รับความถี่ของคลื่นสี่เหลี่ยมที่ส่งมาจากโมดูล ด้วยความถี่ในมือเราสามารถจับคู่สีกับเซ็นเซอร์ได้
  1. ความถี่ Int = ชีพจรใน (10, ต่ำ);

โดยเงื่อนไขดังกล่าวข้างต้น UNO อ่านระยะเวลาชีพจรเมื่อวันที่ 10 THขา UNO และเก็บค่าใน“ความถี่” จำนวนเต็ม
พวกเราจะไปทำเช่นนี้สำหรับทั้งสามสีสำหรับการรับรู้สี ความแรงของสีทั้งสามสีแสดงด้วยความถี่ในจอ LCD ขนาด 16x2
รหัส
int OutPut = 10; // การตั้งชื่อ pin10 ของ uno เป็นเอาท์พุท
ความถี่ int unsigned = 0;

#include <LiquidCrystal.h>
// เริ่มต้นไลบรารีด้วยหมายเลขของหมุดอินเตอร์เฟส
LiquidCrystal lcd (8, 9, 7, 11, 12, 13); // RS, EN, D4, D5, D6, D7

การตั้งค่าเป็นโมฆะ ()
{
                // ตั้งค่าจำนวนคอลัมน์และแถวของแอลซีดี
                lcd.begin (16, 2);

                pinMode (2, OUTPUT);
                pinMode (3, OUTPUT); // PINS 2, 3,4,5 เป็น OUTPUT
                pinMode (4, เอาท์พุท);
                pinMode (5, เอาท์พุท);
                pinMode (10, INPUT); // PIN 10 เป็นอินพุต

                digitalWrite (2, HIGH);
                digitalWrite (3, LOW); // การตั้งค่าความถี่เป็น 20%
}
void loop ()
{
                lcd.print ("R ="); // ชื่อการพิมพ์
                digitalWrite (4, LOW);
                digitalWrite (5, LOW); // การตั้งค่าสำหรับเซ็นเซอร์สีแดง
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์สีแดง
                lcd.print ("");
                lcd.setCursor (7, 0); // ย้ายนักวิ่งไปยังตำแหน่งที่ 7
                ล่าช้า (500);
               
               lcd.print ("B ="); // ชื่อการพิมพ์
                digitalWrite (4, LOW);
                digitalWrite (5, HIGH); // การตั้งค่าเซ็นเซอร์สี BLUE
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์ความถี่สี BLUE
                lcd.print ("");
                lcd.setCursor (0, 1);
                ล่าช้า (500);
               
               lcd.print ("G ="); // ชื่อการพิมพ์
                digitalWrite (4, HIGH);
                digitalWrite (5, HIGH); // การตั้งค่าสำหรับเซ็นเซอร์สี GREEN
                ความถี่ = ชีพจร (OutPut, LOW); // อ่านความถี่
                lcd.print (ความถี่) // พิมพ์ความถี่สีเขียว
                lcd.print ("");
                lcd.setCursor (0, 0);
                ล่าช้า (500);        
}              
วีดีโอ

โปรเจค งานที่ 18 รถของเล่นควบคุมด้วย Bluetooth ใช้ Arduino

บลูทู ธ ควบคุมรถ Robo ใช้ Arduino
 รถของเล่นควบคุมด้วย Bluetooth ใช้ Arduino

หลังจากการพัฒนาที่นิยมไม่กี่โครงการหุ่นยนต์เหมือนหุ่นยนต์สายลูกศิษย์ , ขอบหลีกเลี่ยงหุ่นยนต์ , DTMF หุ่นยนต์ , ท่าทางการควบคุมหุ่นยนต์อื่น ๆ ในโครงการนี้เราจะไปพัฒนาบลูทูธ ควบคุมรถโบ ที่นี่เราใช้โมดูลบลูทูธ เพื่อควบคุมรถและเป็นแอปพลิเคชันที่ใช้ Android

ส่วนประกอบ


  • Arduino UNO
  • มอเตอร์กระแสตรง
  • โมดูล Bluetooth HC-05
  • มอเตอร์ไดร์เวอร์ L293D
  • แบตเตอรี่ 9 โวลต์และแบตเตอรี่ 6 โวลต์
  • ขั้วต่อแบตเตอรี่
  • รถของเล่น

บลูทูธควบคุมรถถูกควบคุมโดยใช้โทรศัพท์มือถือ Android แทนวิธีอื่นใดเช่นปุ่มท่าทางเป็นต้นที่นี่ต้องสัมผัสปุ่มในโทรศัพท์ Android เพื่อควบคุมรถไปข้างหน้าย้อนกลับทิศทางซ้ายและขวา ดังนั้นที่นี่โทรศัพท์ Android จะใช้เป็นอุปกรณ์ส่งสัญญาณและโมดูล Bluetooth วางอยู่ในรถจะใช้เป็นผู้รับ โทรศัพท์ Android จะส่งคำสั่งโดยใช้บลูทูธ ในตัวกับรถยนต์เพื่อให้สามารถเคลื่อนไปในทิศทางที่ต้องการเช่นการเดินหน้าย้อนกลับเลี้ยวซ้ายเลี้ยวขวาและหยุด

โมดูลบลูทูธ
โมดูล HC Bluetooth ประกอบไปด้วยสองสิ่งคือโมดูลอินเทอร์เฟซแบบบลูทูธ และอะแดปเตอร์บลูทูธ โมดูลอนุกรม Bluetooth ใช้สำหรับแปลงพอร์ตอนุกรมเป็น Bluetooth

วิธีการใช้งานโมดูลบลูทูธ 
คุณสามารถใช้โมดูลบลูทูธ ได้โดยตรงหลังจากซื้อจากตลาดเนื่องจากไม่จำเป็นต้องเปลี่ยนการตั้งค่าใด ๆ ของโมดูล Bluetoothค่าเริ่มต้นของโมดูลบลูทูธ ใหม่คือ 9600 bps คุณเพียงแค่ต้องเชื่อมต่อ rx และ tx กับคอนโทรลเลอร์หรือตัวแปลงอนุกรมและให้แหล่งจ่ายไฟ 5 โวลต์ dc ที่กำหนดให้กับโมดูล
โมดูลบลูทูธ มีสองโหมดหนึ่งคือโหมดต้นแบบและโหมดที่สองคือโหมดทาส ผู้ใช้สามารถตั้งค่าโหมดใดก็ได้โดยใช้คำสั่ง AT บางคำ แม้ผู้ใช้สามารถตั้งค่าของโมดูลโดยใช้คำสั่ง AT ต่อไปนี้เป็นคำสั่งใช้จะได้รับ:
ก่อนอื่นผู้ใช้ต้องเข้าสู่โหมด AT ด้วยอัตราความเร็วในการรับส่งข้อมูล 38400 bps โดยกดปุ่ม EN ที่โมดูลบลูทูธ หรือโดยให้ระดับ HIGH ที่ EN PIN หมายเหตุ: คำสั่งทั้งหมดควรลงท้ายด้วย \ r \ n (0x0d และ 0x0a) หรือ ENTER KEY จากแป้นพิมพ์
หลังจากนั้นถ้าคุณส่ง AT ไปที่โมดูลโมดูลจะตอบสนองด้วยตกลง
AT → Test Command
AT + ROLE = 0 →เลือกโหมด Slave
AT + ROLE = 1 →เลือกโหมดต้นแบบ
AT + NAME = xyz →ตั้งชื่อบลูทูธ
AT + PSWD = xyz →ตั้งรหัสผ่าน
AT + UART = <value1>, <value2>, <value3> →ตั้งอัตราการถ่ายโอนข้อมูล
เช่น. ที่ + UART = 9600,0,0
Pin คำอธิบายของ accelerometer
  1. STATE →เปิด
  2. Rx →ขารับสัญญาณอนุกรม
  3. Tx →พินส่งสัญญาณแบบอนุกรม
  4. GND → ground
  5. Vcc → + 5volt dc
  6. EN →เพื่อเข้าสู่โหมด AT


อธิบายการทำงาน

ในโครงการนี้เราได้ใช้รถของเล่นเพื่อสาธิตที่นี่เราได้เลือกรถของเล่นแบบเรดิโอด้วยคุณสมบัติพวงมาลัยซ้ายขวา หลังจากซื้อรถคันนี้เราได้เปลี่ยนวงจร RF ด้วยวงจร Arduinoของเราแล้ว รถคันนี้มีมอเตอร์ dc สองตัวที่ด้านหน้าและด้านหลัง มอเตอร์ด้านหน้าจะใช้สำหรับให้ทิศทางรถหมายถึงการหันไปทางซ้ายหรือขวา (เช่นคุณสมบัติของระบบบังคับเลี้ยวจริง) และมอเตอร์ด้านหลังใช้สำหรับขับรถไปข้างหน้าและถอยหลัง โมดูลบลูทูธ ใช้เพื่อรับคำสั่งจากโทรศัพท์ Android และ Arduino UNO ใช้สำหรับควบคุมระบบทั้งหมด
บลูทู ธ ควบคุม robo รถแผนภาพบล็อก
บลูทูธควบคุมรถเคลื่อนที่ตามปุ่มที่สัมผัสในแอนดรอยด์บลูทูธแอปมือถือในการใช้โปรเจกต์นี้ก่อนอื่นเราต้องดาวน์โหลดแอปพลิเคชันรูปแบบแอปพลิเคชัน Google Play สโตร์ เราสามารถใช้แอปพลิเคชันบลูทูธใด ๆ ที่สนับสนุนหรือสามารถส่งข้อมูลต่อไปนี้คือชื่อแอปบางส่วนที่อาจทำงานได้อย่างถูกต้อง
- Bluetooth Spp pro
- ตัวควบคุม Bluetooth

หลังจากติดตั้งแอปพลิเคชันแล้วคุณต้องเปิดและค้นหาอุปกรณ์บลูทูธแล้วเลือกอุปกรณ์บลูทูธที่ต้องการแล้วกำหนดค่าคีย์ ที่นี่ในโครงการนี้เราได้ใช้แอพพลิเคบลูทูธควบคุม
  1. ดาวน์โหลดและติดตั้ง Bluetooth Controller
  2. เปิด Bluetooth มือถือ
  3. เปิดแอปพลิเคชันบลูทูธตัวควบคุมแล้ว
  4. กดสแกน
  5. เลือกอุปกรณ์บลูทูธ ที่ต้องการ
  6. ตอนนี้ตั้งค่าคีย์โดยการกดปุ่มตั้งบนหน้าจอเมื่อต้องการตั้งค่าคีย์เราจำเป็นต้องกดปุ่มตั้งค่าและตั้งค่าตามภาพด้านล่าง:
แอพพลิเคชัน Bluetooth Controller Android
หลังจากตั้งค่าคีย์กด ok 
เมื่อเราแตะปุ่มไปข้างหน้าในแอพพลิเคชัน Bluetooth controller รถจะเริ่มเคลื่อนที่ไปข้างหน้าและเคลื่อนที่ต่อไปจนกว่าจะมีคำสั่งต่อไป
เมื่อเราแตะปุ่มย้อนกลับในแอปพลิเคชัน Bluetooth controller รถจะเริ่มเคลื่อนที่ไปในทิศทางย้อนกลับและเคลื่อนที่ต่อไปจนกว่าจะถึงคำสั่งถัดไป
เมื่อเราแตะปุ่มซ้ายในแอปพลิเคชัน Bluetooth controller รถจะเริ่มเคลื่อนที่ไปทางซ้ายและเคลื่อนที่ต่อไปจนกว่าคำสั่งถัดไปจะมาถึง ในสภาพนี้มอเตอร์ด้านหน้าจะหมุนล้อหน้าไปทางซ้ายและมอเตอร์หลังจะวิ่งไปข้างหน้า
เมื่อเราแตะปุ่มขวาในแอปพลิเคชันตัวควบคุม Bluetooth รถจะเริ่มเคลื่อนที่ไปในทิศทางที่ถูกต้องและเคลื่อนไปทางขวาจนกว่าจะมีคำสั่งต่อไป ในสภาพนี้มอเตอร์ด้านหน้าจะหมุนล้อหน้าไปทางขวาและมอเตอร์หลังจะทำงานในทิศทางไปข้างหน้า
และโดยการกดปุ่มหยุดเราสามารถหยุดรถได้

แผนผังวงจรและคำอธิบาย

 บลูทู ธ ไดรฟ์วงจรควบคุมรถยนต์
แผนภาพวงจรสำหรับรถบลูทูธควบคุมจะแสดงในรูปข้างต้น คนขับมอเตอร์เชื่อมต่อกับ arduino เพื่อขับรถ ขาเข้าขาเข้าของมอเตอร์ 2, 7, 10 และ 15 เชื่อมต่อกับหมายเลขดิจิตอล 12, 11, 10 และ 9 ตามลำดับของ arduino ที่นี่เราได้ใช้มอเตอร์ DC สองตัวกับคนขับรถซึ่งมอเตอร์ตัวหนึ่งเชื่อมต่อที่ขาขาออกของมอเตอร์ 3 และ 6 และมอเตอร์ตัวอื่นเชื่อมต่อที่ 11 และ 14 แบตเตอรี่ 6 โวลต์ยังใช้เพื่อขับเคลื่อนมอเตอร์สำหรับขับมอเตอร์แท่ง rx และ tx ของโมดูลบลูทูธเชื่อมต่อโดยตรงที่ tx และ rx ของ Arduino และ vcc และสายดินของโมดูลบลูทูธ เชื่อมต่อที่ +5 โวลต์และ gnd ของ Arduino และใช้แบตเตอรี่ 9 โวลต์เพื่อจ่ายกระแสไฟวงจรที่ขา Vin ของ Arduino
  

คำอธิบายโครงการ

 ในโปรแกรมแรกเราได้กำหนดขาออกสำหรับมอเตอร์
# กำหนด m11 11 // มอเตอร์ด้านหลัง
#define m12 12
#define m21 10 // มอเตอร์ด้านหน้า
#define m22 9
จากนั้นในเซ็ตอัพเราให้คำแนะนำในการปักหมุด
การตั้งค่าเป็นโมฆะ () 
{
  Serial.begin (9600);
  pinMode (m11, OUTPUT);
  pinMode (m12, OUTPUT);
  pinMode (m21, OUTPUT);
  pinMode (m22, เอาท์พุท);
}
หลังจากนี้เราจะอ่านข้อมูลเข้าโดยใช้โมดูลการสื่อสารแบบอนุกรมของ Bluetooth และดำเนินการตามขั้นตอนดังกล่าว
void loop () 
{
  ในขณะที่ (Serial.available ())
  {
    char ch = Serial.read ();
    STR [ผม ++] = CH;
    
    ถ้า (STR [I-1] == '1')
    {
     Serial.println ( "ไปข้างหน้า");
     ไปข้างหน้า ();
     i = 0;
    }

    else if (str [i-1] == '2')
    {
     Serial.println ( "ซ้าย");
     ขวา();
     i = 0;
    }

    else if (str [i-1] == '3')
    {
      Serial.println ( "ขวา");
      ซ้าย();
      i = 0;
    }
จากนั้นเราได้สร้างฟังก์ชันสำหรับทิศทางต่างๆของรถ มีห้าเงื่อนไขสำหรับรถยนต์ที่มีการควบคุมบลูทูธนี้ซึ่งใช้ในการระบุทิศทาง:
ปุ่มสัมผัสในแอพพลิเคชันตัวควบคุม Bluetooth
 เอาต์พุตสำหรับมอเตอร์ด้านหน้าเพื่อให้ทิศทาง

เอาต์พุตสำหรับมอเตอร์ด้านหลังเพื่อเลื่อนไปข้างหน้าหรือย้อนกลับ

ปุ่ม
M11
M12
M21
M22
ทิศทาง
หยุด
0
0
0
0
หยุด
ข้างหน้า
0
0
0
1
ข้างหน้า
ย้อนกลับ
0
0
1
0
ย้อนกลับ
ขวา
1
0
0
1
ขวา
ซ้าย
0
1
0
1
ซ้าย
รหัส
# ระบุ m11 11 // มอเตอร์ด้านหลัง
# กำหนด m12 12 
# ระบุ m21 10 // มอเตอร์ด้านหน้า
#define m22 9
char str [2], i;
โมฆะไปข้างหน้า () 

   digitalWrite (m11, LOW); 
   digitalWrite (m12, LOW); 
   digitalWrite (m21, สูง); 
   digitalWrite (m22, LOW); 
}
โมฆะถอยหลัง () 

   digitalWrite (m11, LOW); 
   digitalWrite (m12, LOW); 
   digitalWrite (m21, LOW); 
   digitalWrite (m22, สูง); 
}
ถือเป็นโมฆะทางซ้าย () 

   digitalWrite (m11, HIGH); 
   digitalWrite (m12, LOW); 
   ล่าช้า (100); 
   digitalWrite (m21, สูง); 
   digitalWrite (m22, LOW); 
}
สิทธิเป็นโมฆะ () 

   digitalWrite (m11, LOW); 
   digitalWrite (m12, สูง); 
   ล่าช้า (100); 
   digitalWrite (m21, สูง); 
   digitalWrite (m22, LOW); 
}
โมฆะ Stop () 

   digitalWrite (m11, LOW); 
   digitalWrite (m12, LOW); 
   digitalWrite (m21, LOW); 
   digitalWrite (m22, LOW); 
}
การตั้งค่าเป็นโมฆะ ()  

  Serial.begin (9600); 
  pinMode (m11, OUTPUT); 
  pinMode (m12, OUTPUT); 
  pinMode (m21, OUTPUT); 
  pinMode (m22, เอาท์พุท); 
}
void loop ()  

  ขณะที่ (Serial.available ()) 
  { 
    char ch = Serial.read (); 
    STR [ผม ++] = CH; 
   
    if (str [i-1] == '1') 
    { 
     Serial.println ("Forward"); 
     ไปข้างหน้า (); 
     i = 0; 
    }
    else if (str [i-1] == '2') 
    { 
     Serial.println ("ซ้าย"); 
     ขวา(); 
     i = 0; 
    }
    else if (str [i-1] == '3') 
    { 
      Serial.println ("Right"); 
      ซ้าย(); 
      i = 0; 
    } 
   
    else if (str [i-1] == '4') 
    { 
      Serial.println ("ย้อนกลับ"); 
      ย้อนกลับ(); 
      i = 0; 
    }
    else if (str [i-1] == '5') 
    { 
      Serial.println ("หยุด"); 
      หยุด(); 
      i = 0; 
    } 
    ล่าช้า (100); 
  } 
}
วีดีโอ


งานครั้งที่ 5 ในสถานที่ฝึกงานของ นศ ใช้ระบบควบคุณภาพอย่างไร

มาตรฐาน ISO 9001 ISO 9001 เป็นมาตรฐานสากลที่องค์กรธุรกิจทั่วโลกให้ความสำคัญ เพื่อความเป็นเลิศทางด้านคุณภาพ และความมีประสิทธิภาพของการด...