ตามหัวกระทู้เลยค่ะ คือว่าตอนนี้กำลังเขียนโปรแกรมภาษาซี โดยเขียนโดยโปรแกรม Arduino ซึ่งเอาไปบังคับหุ่นยนต์ มีคนแนะนำมาว่าให้ใช้ encoder ไปด้วยเพื่อเพิ่มความแม่นยำ แต่อ่านยังไงๆก็ไม่เข้าใจว่ามันใช้ยังไงแล้วเขียนยังไง แล้วต้องใช้ตอนไหน
#include <ATX2.h>
int L,R,RefL=384,RefR=465;
int x;
void setup()
{
}
void loop()
{ }
void FFF()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(40);delay(800);
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void RRR()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(50);
while(analog(4)>RefR){SR(70);}
while(analog(4)<RefR){SR(70);}
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void LLL()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(50);
while(analog(4)>RefR){SL(70);}
while(analog(4)<RefR){SL(70);}
break;
}
else if(L>RefL&&R>RefR) {FD(50);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void BBB()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
BK(50);delay(100);
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void AAA()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
AO();
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void UUU()
{
while(1)
{
FD(40);
while(sonar()>10);
BK(100);AO();
servo(8,160);delay(500);
servo(7,161);delay(300);
servo(8,64);delay(500);
BK(60); delay(550);AO();
break;
}
}
void DDD()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
BK(50);delay(100);AO();
servo(8,160);delay(300);
servo(7,106);delay(300);
servo(8,64);delay(300);
break;
}
else if(L>RefL&&R>RefR) {FD(50);}
if(L>RefL&&R<RefR) {SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
นี่คือโค้ตที่เขียนส่วนนึง แต่ยังไงมันก็ยังไม่เข้าที่ อยากจะลองใช้ encoder เพิ่ม ต้องเพิ่ในส่วนไหน รบกวนผู้รู้ทีนะคะ
encoder คืออะไร ทำหน้าที่อะไร ใช้และเขียนยังไง
#include <ATX2.h>
int L,R,RefL=384,RefR=465;
int x;
void setup()
{
}
void loop()
{ }
void FFF()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(40);delay(800);
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void RRR()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(50);
while(analog(4)>RefR){SR(70);}
while(analog(4)<RefR){SR(70);}
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void LLL()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
FD(50);
while(analog(4)>RefR){SL(70);}
while(analog(4)<RefR){SL(70);}
break;
}
else if(L>RefL&&R>RefR) {FD(50);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void BBB()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
BK(50);delay(100);
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void AAA()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
AO();
break;
}
else if(L>RefL&&R>RefR) {FD(60);}
if(L>RefL&&R<RefR){SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
void UUU()
{
while(1)
{
FD(40);
while(sonar()>10);
BK(100);AO();
servo(8,160);delay(500);
servo(7,161);delay(300);
servo(8,64);delay(500);
BK(60); delay(550);AO();
break;
}
}
void DDD()
{
while(1)
{
L=analog(5);
R=analog(4);
if(L<RefL&&R<RefR)
{
BK(50);delay(100);AO();
servo(8,160);delay(300);
servo(7,106);delay(300);
servo(8,64);delay(300);
break;
}
else if(L>RefL&&R>RefR) {FD(50);}
if(L>RefL&&R<RefR) {SR(70);}
if(L<RefL&&R>RefR) {SL(70);}
}
}
นี่คือโค้ตที่เขียนส่วนนึง แต่ยังไงมันก็ยังไม่เข้าที่ อยากจะลองใช้ encoder เพิ่ม ต้องเพิ่ในส่วนไหน รบกวนผู้รู้ทีนะคะ