หุ่นยนต์ทำภารกิจ นั้น ควรจะมีฟังก์ชั่นใช้งานพื้นฐานดังนี้
1. เดินตามเส้น เป็นเวลา เจอเส้นดำแล้วหยุด
2. เลี้ยวซ้าย
3.เลี้ยวขวา
4. ทำภารกิจด้วยแขนกล
ในที่นี้ กำหนดชื่อคำสั่งเดินตามเส้นแบบตารางไว้ดังนี้
1. เดินตามเส้น เจอเส้นตัดแล้วหยุด P();
2. เลี้ยวซ้าย L();
3. เลี้ยวขวา R();
///////////ตั้งค่าปุ่มกด///////////////////
int button = 2; /// กำหนดปุ่มกดสวิตซ์ขา 2
////////////ตั้งค่าพอร์ตมอเตอร์////////////////////
#define PWMR 6
#define DR1 7 /// กำหนดสัญญาณดิจิตอลขวาที่ 1 พอร์ต 7
#define DR2 8 /// กำหนดสัญญาณดิจิตอลขวาที่ 2 พอร์ต 8
/////////////////////////////////
#define PWML 5
#define DL1 9 // กำหนดสัญญาณดิจิตอลซ้ายที่ 1 พอร์ต 9
#define DL2 4 // กำหนดสัญญาณดิจิตอลซ้ายที่ 2 พอร์ต
////////ตัวแปรเก็บค่าแสงจากเซนเซอร์
int S1 = 0;
int S2 = 0;
int S3 = 0;
int S4 = 0;
//////////ค่ากลางเซนเซอร์ เอาไว้เปรียบเทียบค่าแสง//////////
int cen1 = 550;
int cen2 = 350;
int cen3 = 550;
int cen4 = 550;
//////////////////////////////////////////////
void setup() {
//////กำหนด pinMode ////
pinMode(2, INPUT);
pinMode(PWML, OUTPUT);
pinMode(DL1, OUTPUT);
pinMode(DL2, OUTPUT);
pinMode(PWMR, OUTPUT);
pinMode(DR1, OUTPUT);
pinMode(DR2, OUTPUT);
}
void loop() {
int sw = digitalRead(button); // ให้ sw อ่านค่า digital จากพอร์ต 2(button)
if (sw==1){
}
}
/////////////////////////////ฟังก์ชันมอเตอร์///////////////////////////////////
void Motor(int spl, int spr) // ประกาศฟังก์ชัน run(กำลังมอเตอร์ซ้าาย,กำลังมอเตอร์ขวา);
{
if (spl > 0)
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, HIGH);
analogWrite(PWML, spl);
}
else if (spl < 0)
{
digitalWrite(DL1, HIGH);
digitalWrite(DL2, LOW);
analogWrite(PWML, -spl);
}
else
{
digitalWrite(DL1, LOW);
digitalWrite(DL2, LOW);
}
//////////////////////////////////////
if (spr > 0)
{
digitalWrite(DR1, HIGH);
digitalWrite(DR2, LOW);
analogWrite(PWMR, spr);
}
else if (spr < 0)
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, HIGH);
analogWrite(PWMR, -spr);
}
else
{
digitalWrite(DR1, LOW);
digitalWrite(DR2, LOW);
}
}