พอดีว่าตอนนี้ผมใช้ Arduino UNO R3 ต่อกับ จอLCD เพื่อแสดงค่า
แต่ผมต้องการให้จอ LCD แสดงค่าแบบไร้สาย NRF24L01 สามารถช่วยได้ไหมครับ
ทำได้ครับ ลองดูตัวอย่างโคดที่ หน้าบทความ เรื่องจอ LCD กับ NRF24L01 ครับ จะมีโคดตัวอย่างให้ครบถ้วน ทำให้ออกทีละตัวแล้วเอามารวมกันครับ
บทความ เรื่องจอ LCD กับ NRF24L01 หาไม่เจออ่ะครับ
บทความตามลิงค์นี้ครับ
ใช้ if เช็คเงื่อนไขครับ
#include <SPI.h>
#include <nRF24L01p.h>
nRF24L01p transmitter(7,8);//CSN,CE
void setup(){
delay(150);
Serial.begin(115200);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
transmitter.channel(90); // ตั้งช่องความถี่ให้ตรงกัน
transmitter.TXaddress("ALL"); // ตั้งชื่อตำแหน่งให้ตรงกัน ชื่อตั้งได้สูงสุด 5 ตัวอักษร
transmitter.init();
}
String message;
void loop(){
if(เงื่อนไข){
transmitter.txPL("Welcome ArduinoAll"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000);
}
}
เงื่อนไข sensor ผมประมานเท่านี้อ่า เอาไปใส่ได้เรยช่ายมั้ยคับ
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int In_Pin1 = A0;
int Value_in1 = 0;
int LEDA = 13;
int LEDB = 10;
int LEDC = 9;
int LEDD = 8;
int LEDE = 7;
int LEDF = 6;
float volt = 0.0;
float R1 = 100.0;
float I = 0.0;
void setup()
{ pinMode(LEDA, OUTPUT);
pinMode(LEDB, OUTPUT);
pinMode(LEDC, OUTPUT);
pinMode(LEDD, OUTPUT);
pinMode(LEDE, OUTPUT);
pinMode(LEDF, OUTPUT);
Serial.begin(9600);
lcd.begin(16,2);
lcd.print("Fault");
lcd.setCursor(0,1);
lcd.print("I Fault =");
lcd.setCursor(14,1);
lcd.print("kA");
}
void loop()
{
Value_in1 = analogRead(In_Pin1);
/*lcd.setCursor(10,1);
lcd.print(Value_in1);
delay(500);*/
if((980<Value_in1)&&(Value_in1<1023))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[A]=> 3400m");
digitalWrite(LEDA, HIGH);
delay(10);
}
else if((905<Value_in1)&&(Value_in1<980))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[B]=> 230 m");
digitalWrite(LEDB, HIGH);
delay(10);
}
else if((845<Value_in1)&&(Value_in1<905))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[B]=> 435 m");
digitalWrite(LEDB, HIGH);
delay(10);
}
else if((805<Value_in1)&&(Value_in1<845))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[C]=> 156 m");
digitalWrite(LEDC, HIGH);
delay(10);
}
else if((770<Value_in1)&&(Value_in1<790))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[C]=> 280 m");
digitalWrite(LEDC, HIGH);
delay(10);
}
else if((790<Value_in1)&&(Value_in1<805))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[D]=> 263 m");
digitalWrite(LEDD, HIGH);
delay(10);
}
else if((720<Value_in1)&&(Value_in1<770))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[D]=> 523 m");
digitalWrite(LEDD, HIGH);
delay(10);
}
else if((680<Value_in1)&&(Value_in1<720))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[D]=> 761 m");
digitalWrite(LEDD, HIGH);
delay(10);
}
else if((650<Value_in1)&&(Value_in1<680))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[D]=> 968 m");
digitalWrite(LEDD, HIGH);
delay(10);
}
else if((610<Value_in1)&&(Value_in1<622))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[E]=> 247 m");
digitalWrite(LEDE, HIGH);
delay(10);
}
else if((580<Value_in1)&&(Value_in1<600))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[E]=> 428 m");
digitalWrite(LEDE, HIGH);
delay(10);
}
else if((540<Value_in1)&&(Value_in1<580))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[E]=> 668 m");
digitalWrite(LEDE, HIGH);
delay(10);
}
else if((622<Value_in1)&&(Value_in1<630))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[F]=> 188 m");
digitalWrite(LEDF, HIGH);
delay(10);
}
else if((580<Value_in1)&&(Value_in1<600))
{
volt = (Value_in1*5.0)/1023.0;
I = (1.0488*volt)-0.2;
lcd.setCursor(10,1);
lcd.print(I);
delay(500);
lcd.setCursor(5,0);
lcd.print("[F]=> 412 m");
digitalWrite(LEDF, HIGH);
delay(10);
}
else
{
lcd.setCursor(10,1);
lcd.print("0 ");
lcd.setCursor(5,0);
lcd.print("[_]");
lcd.setCursor(9,0);
lcd.print(" ");
digitalWrite(LEDA, LOW);
digitalWrite(LEDB, LOW);
digitalWrite(LEDC, LOW);
digitalWrite(LEDD, LOW);
digitalWrite(LEDE, LOW);
digitalWrite(LEDF, LOW);
}
}
เอาตรงนี้ไปใส่ ตามเงื่อนไขที่จะให้ส่งไป ยังไงลองเล่นดูอีกทีนะครับ
if(เงื่อนไข){
transmitter.txPL("Welcome ArduinoAll"); // ค่าที่ต้องการส่ง
transmitter.send(FAST); // สั่งให้ส่งออกไป
delay(1000);
}