คือตอนนี้ ผมกำลังสร้างเครื่อง ตัวรับส่งข้อมูล ผ่านการส่งสัญญาณจาก x-bee 2ตัว คือตอนนี้ส่งข้อความหากันได้แล้ว แต่พอเวลาแสดงผล
1. เมื่อได้รับข้อความเข้ามา เช่น รับข้อความ A มา ไฟจะติดที่หลอด LED1 แต่เมื่อได้รับข้อความ B มา อยากให้ LED2ติด แต่มันไปติดที่ LED1 เหมือนเดิม
2.ผมอยากถามการใช้คำสั่งควรแก้ไขตรงจุดไหนดีครับ
อันนี้เป็นโค้ดโปรแกรมที่ผมกำลังเขียนครับ เหลือแค่หลอดแสดงผล ตอนแรกผมใช้ คำสั่ง if ทั้งหมด ไม่ใช่ else if ครับผม
#include <SoftwareSerial.h>
#define RxD 2
#define TxD 3
SoftwareSerial mySerial(RxD,TxD); // RX, TX
int incoming=0;
const int led1 = 4;
const int led2 = 5;
const int led3 = 6;
const int led4 = 7;
int voice = A5;
void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
mySerial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(voice, OUTPUT);
}
void loop()
{
if (mySerial.available())
{
incoming = mySerial.read();
int a=Serial.write(incoming);
if(a ='A')
{
digitalWrite(led1,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='AA')
{
digitalWrite(led1,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='B')
{
digitalWrite(led2,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='BB')
{
digitalWrite(led2,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='C')
{
digitalWrite(led3,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='CC')
{
digitalWrite(led3,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='D')
{
digitalWrite(led4,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='CC')
{
digitalWrite(led4,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
}
}
รบกวนช่วยแนะนำทีนะครับ
รบกวนช่วยดู โค้ดโปรแกรม arduino ของผมทีครับ T_T
1. เมื่อได้รับข้อความเข้ามา เช่น รับข้อความ A มา ไฟจะติดที่หลอด LED1 แต่เมื่อได้รับข้อความ B มา อยากให้ LED2ติด แต่มันไปติดที่ LED1 เหมือนเดิม
2.ผมอยากถามการใช้คำสั่งควรแก้ไขตรงจุดไหนดีครับ
อันนี้เป็นโค้ดโปรแกรมที่ผมกำลังเขียนครับ เหลือแค่หลอดแสดงผล ตอนแรกผมใช้ คำสั่ง if ทั้งหมด ไม่ใช่ else if ครับผม
#include <SoftwareSerial.h>
#define RxD 2
#define TxD 3
SoftwareSerial mySerial(RxD,TxD); // RX, TX
int incoming=0;
const int led1 = 4;
const int led2 = 5;
const int led3 = 6;
const int led4 = 7;
int voice = A5;
void setup()
{
Serial.begin(9600);
pinMode(RxD, INPUT);
pinMode(TxD, OUTPUT);
mySerial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(voice, OUTPUT);
}
void loop()
{
if (mySerial.available())
{
incoming = mySerial.read();
int a=Serial.write(incoming);
if(a ='A')
{
digitalWrite(led1,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='AA')
{
digitalWrite(led1,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='B')
{
digitalWrite(led2,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='BB')
{
digitalWrite(led2,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='C')
{
digitalWrite(led3,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='CC')
{
digitalWrite(led3,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='D')
{
digitalWrite(led4,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
else if(a ='CC')
{
digitalWrite(led4,HIGH);
analogWrite(voice,1023);
delay(5000);
analogWrite(voice,0);
}
}
}
รบกวนช่วยแนะนำทีนะครับ