พอดีซื้อบอร์ด Arduino Uno R3 มาใหม่ แต่พอลองเอาไปรันโค้ดพบปัญหาว่าเวลาต่อ input 3 ขา มันจะอ่านค่าได้ขาเดียว

กระทู้คำถาม
พอดีซื้อบอร์ด Arduino Uno R3 มาใหม่ แต่พอลองเอาไปรันโค้ดพบปัญหาว่าเวลาต่อ input 3 ขา มันจะอ่านค่าได้ขาเดียวไม่สามารถอ่านได้ทั้ง 3 ขา
แต่ถ้าต่อทีละ 1 ขา มันก็สามารถอ่านค่าได้ปกติทุกขา เลยสงสัยว่ามันมีปัญหาที่บอร์ดหรือโค้ดกันแน่

โค้ด (ใช้ควบคุมมอเตอร์ด้วยรีเลย์ผ่านวิทยุ)
int ch1;
int ch2;
int ch3;
const int relay1 = 2;
const int relay2 = 3;
const int relay3 = 4;
const int relay4 = 5;

void setup() {

pinMode(6, INPUT); // Set our input pins as such
pinMode(7, INPUT);
pinMode(10, INPUT);
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
pinMode(relay3, OUTPUT);
pinMode(relay4, OUTPUT);
Serial.begin(9600); // Pour a bowl of Serial

}

void loop() {
ch1 = pulseIn(6, HIGH, 25000); // Read the pulse width of
ch2 = pulseIn(7, HIGH, 25000); // each channel
ch3 = pulseIn(10, HIGH, 25000);
Serial.print("Channel 1:"); // Print the value of
Serial.println(ch1); // each channel
Serial.print("Channel 2:");
Serial.println(ch2);
Serial.print("Channel 3:");
Serial.println(ch3);
delay(1000);
digitalWrite(relay1,LOW);
digitalWrite(relay2,LOW);
digitalWrite(relay3,LOW);
digitalWrite(relay4,LOW);

if (ch2 >1900)
{
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);//
digitalWrite(relay3, HIGH); 
digitalWrite(relay4, LOW);//
}

if (ch2 <1200)
{
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, LOW);
digitalWrite(relay4, HIGH);
}

if (ch1 >1900)
{
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);
digitalWrite(relay3, LOW);
digitalWrite(relay4, HIGH);
}

if (ch1 <1200)
{
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
digitalWrite(relay3, HIGH);
digitalWrite(relay4, LOW);
}

Serial.println("");
}
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่