ข้อมูล
น้ำหนัก
บาร์โค้ด
ลงสินค้า
อัพเดทล่าสุด
รายละเอียดสินค้า
เซนเซอร์รับสัญญาณจอยสติก Joystick PS2

ตัวอย่างโค๊ด ใช้งานกับบอร์ด Friend Robot Model Nano+
#include "ModelNanoPlus.h"

#define PS2_DAT 14 // ต่อขา DATA กับขาพอร์ต 14
#define PS2_CMD 16 // ต่อขา COMMAND กับขาพอร์ต 16
#define PS2_SEL 2 // ต่อขา SELECT กับขาพอร์ต 2
#define PS2_CLK 3 // ต่อขา CLOCK กับขาพอร์ต 3

PS2X ps2x; // ประกาศตัวแปรสำหรับจอยสติ๊ก PS2

void setup()
{
XIO();
delay(1000); // หน่วงเวลา 1 วินาทีเพื่อรอให้บอร์ดพร้อมทำงาน
oledClear(); // เคลียร์ภาพทั้งหมดบนหน้าจอแสดงผล
oledMode(0); // กำหนดให้หน้าจอแสดงผลเป็นแนวนอน
setTextSize(1); // กำหนดขนาดตัวหนังสือ
 
oled(0, 0, "Connecting"); // แสดงข้อความเพื่อแจ้งว่า กำลังเชื่อมต่อกับจอยสติ๊ก
 
while(true) // วนการทำงานเพื่อรอการเชื่อมต่อกับจอยสติ๊ก
{
// กำหนดขาเชื่อมต่อกับจอยสติ๊ก โดยมีการเก็บค่าที่ส่งกลับมาเป็น Integer เพื่อรู้ได้ว่า เชื่อมต่อได้หรือไม่
int error = ps2x.config_gamepad(PS2_CLK, PS2_CMD, PS2_SEL, PS2_DAT, false, false);
 
if(error == 0) // กรณีที่เชื่อมต่อได้ Error = 0
{
oled(0, 0, "OK "); // แสดงข้อความว่าเชื่อมต่อกับจอยสติ๊กเรียบร้อยแล้ว
delay(1000); // หน่วงเวลา 1 วินาที
oledClear(); // เคลียร์ภาพทั้งหมดบนหน้าจอแสดงผล
break; // ออกจาก while(true)
}
delay(500); // หน่วงเวลา 500 มิลลิวินาทีเพื่อรอการเชื่อมต่อครั้งต่อไปในกรณีที่เชื่อมต่อไม่สำเร็จ
}
}

void loop()
{
ps2x.read_gamepad(false, false); // อ่านข้อมูลจากจอยสติ๊ก
 
if(ps2x.Button(PSB_CIRCLE)) // ถ้าปุ่มวงกลมถูกกด
oled(1, 1, "Circle "); // แสดงข้อความว่า Circle บนหน้าจอ
else if(ps2x.Button(PSB_CROSS)) // ถ้าปุ่มกากบาทถูกกด
oled(1, 1, "Cross "); // แสดงข้อความว่า Cross บนหน้าจอ
else if(ps2x.Button(PSB_SQUARE)) // ถ้าปุ่มสี่เหลี่ยมถูกกด
oled(1, 1, "Square "); // แสดงข้อความว่า Square บนหน้าจอ
else if(ps2x.Button(PSB_TRIANGLE)) // ถ้าปุ่มสามเหลี่ยมถูกกด
oled(1, 1, "Triangle"); // แสดงข้อความว่า Triangle บนหน้าจอ
else if(ps2x.Button(PSB_L1)) // ถ้าปุ่ม L1 ถูกกด
oled(1, 1, "L1 "); // แสดงข้อความว่า L1 บนหน้าจอ
else if(ps2x.Button(PSB_L2)) // ถ้าปุ่ม L2 ถูกกด
oled(1, 1, "L2 "); // แสดงข้อความว่า L2 บนหน้าจอ
else if(ps2x.Button(PSB_L3)) // ถ้าปุ่ม L3 ถูกกด
oled(1, 1, "L3 "); // แสดงข้อความว่า L3 บนหน้าจอ
else if(ps2x.Button(PSB_R1)) // ถ้าปุ่ม R1 ถูกกด
oled(1, 1, "R1 "); // แสดงข้อความว่า R1 บนหน้าจอ
else if(ps2x.Button(PSB_R2)) // ถ้าปุ่ม R2 ถูกกด
oled(1, 1, "R2 "); // แสดงข้อความว่า R2 บนหน้าจอ
else if(ps2x.Button(PSB_R3)) // ถ้าปุ่ม R3 ถูกกด
oled(1, 1, "R3 "); // แสดงข้อความว่า R3 บนหน้าจอ
else if(ps2x.Button(PSB_START)) // ถ้าปุ่ม Start ถูกกด
oled(1, 1, "Start "); // แสดงข้อความว่า Start บนหน้าจอ
else if(ps2x.Button(PSB_SELECT)) // ถ้าปุ่ม Select ถูกกด
oled(1, 1, "Select "); // แสดงข้อความว่า Select บนหน้าจอ
else if(ps2x.Button(PSB_PAD_UP)) // ถ้าปุ่ม Up ถูกกด
oled(1, 1, "Up "); // แสดงข้อความว่า Up บนหน้าจอ
else if(ps2x.Button(PSB_PAD_DOWN)) // ถ้าปุ่ม Down ถูกกด
oled(1, 1, "Down "); // แสดงข้อความว่า Down บนหน้าจอ
else if(ps2x.Button(PSB_PAD_LEFT)) // ถ้าปุ่ม Left ถูกกด
oled(1, 1, "Left "); // แสดงข้อความว่า Left บนหน้าจอ
else if(ps2x.Button(PSB_PAD_RIGHT)) // ถ้าปุ่ม Right ถูกกด
oled(1, 1, "Right "); // แสดงข้อความว่า Right บนหน้าจอ
else // ถ้าไม่มีปุ่มใดๆถูกกด
oledClear(); // ลบข้อความที่แสดงอยู่ออก
 
delay(50); // หน่วงเวลา 50 มิลลิวินาที
}
เงื่อนไขอื่นๆ
Tags

วิธีการชำระเงิน

บมจ. ธนาคารกสิกรไทย สาขาเซ็นทรัล ขอนแก่น ออมทรัพย์
พูดคุย-สอบถาม