พอดีซื้อบอร์ด 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("");
}
พอดีซื้อบอร์ด Arduino Uno R3 มาใหม่ แต่พอลองเอาไปรันโค้ดพบปัญหาว่าเวลาต่อ input 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("");
}