keep IR sketch keeps getting the same code: 4294967295
and ignoreIgnore the mess that I have made on the top I.
I tried the script in a simulator and found out that every button I pressed, gave me the same code, which is 4294967295.
keep getting the same code
and ignore the mess that I have made on the top I tried the script in a simulator and found out that every button I pressed, gave me the same code which is 4294967295
IR sketch keeps getting the same code: 4294967295
Ignore the mess that I have made on the top.
I tried the script in a simulator and found out that every button I pressed gave me the same code, which is 4294967295.
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <IRremote.h>
// Khai báo địa chỉ I2C của màn hình LCD LiquidCrystal_I2C lcd(0x27,16, 2);
// Khai báo chân analog A0 (cảm biến độ ẩm) const int moisturePin = A0; // Khai báo chân analog A1 (cảm biến nhiệt độ) const int tempPin = A1; // Khai báo chân analog A2 (cảm biến ánh sáng) const int lightPin = A2;
#include <Servo.h> Servo myservo1; // Khởi tạo đối tượng Servo const int servoPin1 = 2; // Chân điều khiển Servo 1 Servo myservo2; // Khởi tạo đối tượng Servo const int servoPin2 = 3; // Chân điều khiển Servo 2 Servo myservo3; // Khởi tạo đối tượng Servo const int servoPin3 = 4; // Chân điều khiển Servo 3 Servo myservo4; // Khởi tạo đối tượng Servo const int servoPin4 = 5; // Chân điều khiển Servo 4
int servoPos = 0; // Biến lưu trữ vị trí của Servo
// Khai báo chân điều khiển relay cho đèn (dựa trên độ ẩm) const int lightRelayPin = 13; // Khai báo chân điều khiển relay cho quạt const int fanRelayPin = 12; // Khai báo chân điều khiển relay cho đèn (dựa trên nhiệt độ) const int tempLightRelayPin = 11;
// Ngưỡng độ ẩm quy định để mở relay (độ ẩm cao hơn sẽ mở relay) const int moistureThreshold = 500; // Ngưỡng nhiệt độ quy định để bật quạt const int highTempThreshold = 300; // Nhiệt độ cao hơn sẽ bật quạt // Ngưỡng nhiệt độ quy định để bật đèn const int lowTempThreshold = 100; // Nhiệt độ thấp hơn sẽ bật đèn
// Ngưỡng cường độ ánh sáng quy định để thực hiện hành động const int lightThreshold = 30; // Giá trị cường độ ánh sáng
// Biến lưu trữ trạng thái chế độ (auto hoặc manual) bool autoMode = true;
// Khai báo đối tượng IRrecv và mã học từ remote const int RECV_PIN = 8; IRrecv irrecv(RECV_PIN); decode_results results;
void setup() { // Khởi tạo cổng Serial với tốc độ 9600 bps để ghi log dữ liệu Serial.begin(9600);
// Khởi tạo màn hình LCD lcd.init(); lcd.setCursor(0,0); lcd.backlight(); // Bật đèn nền LCD lcd.display();
// Đặt chân điều khiển relay là output pinMode(lightRelayPin, OUTPUT); pinMode(fanRelayPin, OUTPUT); pinMode(tempLightRelayPin, OUTPUT);
// Kết nối Servo với chân điều khiển myservo1.attach(servoPin1); myservo2.attach(servoPin2); myservo3.attach(servoPin3); myservo4.attach(servoPin4);
// Khởi tạo đối tượng IRrecv irrecv.enableIRIn(); }
void loop() { // Kiểm tra nếu có dữ liệu từ remote if (irrecv.decode(&results)) { // Lưu giá trị mã học vào biến code unsigned long code = results.value; Serial.println(code); // Xử lý dữ liệu từ remote if (code == 4294967295) { // Mã học của nút "Auto Mode" autoMode = !autoMode; // Chuyển đổi chế độ tự động // Hiển thị trạng thái chế độ lên LCD Serial.println(code); lcd.clear(); lcd.setCursor(0, 0); if (autoMode) { lcd.print("Auto Mode: ON"); } else { lcd.print("Auto Mode: OFF"); } delay(1000); // Đợi 1 giây để tránh việc nhận các lệnh liên tiếp từ remote } irrecv.resume(); // Tiếp tục nhận dữ liệu từ remote } }
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
// Khai báo địa chỉ I2C của màn hình LCD
LiquidCrystal_I2C lcd(0x27,16, 2);
// Khai báo chân analog A0 (cảm biến độ ẩm)
const int moisturePin = A0;
// Khai báo chân analog A1 (cảm biến nhiệt độ)
const int tempPin = A1;
// Khai báo chân analog A2 (cảm biến ánh sáng)
const int lightPin = A2;
#include <Servo.h>
Servo myservo1; // Khởi tạo đối tượng Servo
const int servoPin1 = 2; // Chân điều khiển Servo 1
Servo myservo2; // Khởi tạo đối tượng Servo
const int servoPin2 = 3; // Chân điều khiển Servo 2
Servo myservo3; // Khởi tạo đối tượng Servo
const int servoPin3 = 4; // Chân điều khiển Servo 3
Servo myservo4; // Khởi tạo đối tượng Servo
const int servoPin4 = 5; // Chân điều khiển Servo 4
int servoPos = 0; // Biến lưu trữ vị trí của Servo
// Khai báo chân điều khiển relay cho đèn (dựa trên độ ẩm)
const int lightRelayPin = 13;
// Khai báo chân điều khiển relay cho quạt
const int fanRelayPin = 12;
// Khai báo chân điều khiển relay cho đèn (dựa trên nhiệt độ)
const int tempLightRelayPin = 11;
// Ngưỡng độ ẩm quy định để mở relay (độ ẩm cao hơn sẽ mở relay)
const int moistureThreshold = 500;
// Ngưỡng nhiệt độ quy định để bật quạt
const int highTempThreshold = 300; // Nhiệt độ cao hơn sẽ bật quạt
// Ngưỡng nhiệt độ quy định để bật đèn
const int lowTempThreshold = 100; // Nhiệt độ thấp hơn sẽ bật đèn
// Ngưỡng cường độ ánh sáng quy định để thực hiện hành động
const int lightThreshold = 30; // Giá trị cường độ ánh sáng
// Biến lưu trữ trạng thái chế độ (auto hoặc manual)
bool autoMode = true;
// Khai báo đối tượng IRrecv và mã học từ remote
const int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
// Khởi tạo cổng Serial với tốc độ 9600 bps để ghi log dữ liệu
Serial.begin(9600);
// Khởi tạo màn hình LCD
lcd.init();
lcd.setCursor(0,0);
lcd.backlight(); // Bật đèn nền LCD
lcd.display();
// Đặt chân điều khiển relay là output
pinMode(lightRelayPin, OUTPUT);
pinMode(fanRelayPin, OUTPUT);
pinMode(tempLightRelayPin, OUTPUT);
// Kết nối Servo với chân điều khiển
myservo1.attach(servoPin1);
myservo2.attach(servoPin2);
myservo3.attach(servoPin3);
myservo4.attach(servoPin4);
// Khởi tạo đối tượng IRrecv
irrecv.enableIRIn();
}
void loop() {
// Kiểm tra nếu có dữ liệu từ remote
if (irrecv.decode(&results)) {
// Lưu giá trị mã học vào biến code
unsigned long code = results.value;
Serial.println(code);
// Xử lý dữ liệu từ remote
if (code == 4294967295) { // Mã học của nút "Auto Mode"
autoMode = !autoMode; // Chuyển đổi chế độ tự động
// Hiển thị trạng thái chế độ lên LCD
Serial.println(code);
lcd.clear();
lcd.setCursor(0, 0);
if (autoMode) {
lcd.print("Auto Mode: ON");
} else {
lcd.print("Auto Mode: OFF");
}
delay(1000); // Đợi 1 giây để tránh việc nhận các lệnh liên tiếp từ remote
}
irrecv.resume(); // Tiếp tục nhận dữ liệu từ remote
}
}
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <IRremote.h>
// Khai báo địa chỉ I2C của màn hình LCD LiquidCrystal_I2C lcd(0x27,16, 2);
// Khai báo chân analog A0 (cảm biến độ ẩm) const int moisturePin = A0; // Khai báo chân analog A1 (cảm biến nhiệt độ) const int tempPin = A1; // Khai báo chân analog A2 (cảm biến ánh sáng) const int lightPin = A2;
#include <Servo.h> Servo myservo1; // Khởi tạo đối tượng Servo const int servoPin1 = 2; // Chân điều khiển Servo 1 Servo myservo2; // Khởi tạo đối tượng Servo const int servoPin2 = 3; // Chân điều khiển Servo 2 Servo myservo3; // Khởi tạo đối tượng Servo const int servoPin3 = 4; // Chân điều khiển Servo 3 Servo myservo4; // Khởi tạo đối tượng Servo const int servoPin4 = 5; // Chân điều khiển Servo 4
int servoPos = 0; // Biến lưu trữ vị trí của Servo
// Khai báo chân điều khiển relay cho đèn (dựa trên độ ẩm) const int lightRelayPin = 13; // Khai báo chân điều khiển relay cho quạt const int fanRelayPin = 12; // Khai báo chân điều khiển relay cho đèn (dựa trên nhiệt độ) const int tempLightRelayPin = 11;
// Ngưỡng độ ẩm quy định để mở relay (độ ẩm cao hơn sẽ mở relay) const int moistureThreshold = 500; // Ngưỡng nhiệt độ quy định để bật quạt const int highTempThreshold = 300; // Nhiệt độ cao hơn sẽ bật quạt // Ngưỡng nhiệt độ quy định để bật đèn const int lowTempThreshold = 100; // Nhiệt độ thấp hơn sẽ bật đèn
// Ngưỡng cường độ ánh sáng quy định để thực hiện hành động const int lightThreshold = 30; // Giá trị cường độ ánh sáng
// Biến lưu trữ trạng thái chế độ (auto hoặc manual) bool autoMode = true;
// Khai báo đối tượng IRrecv và mã học từ remote const int RECV_PIN = 8; IRrecv irrecv(RECV_PIN); decode_results results;
void setup() { // Khởi tạo cổng Serial với tốc độ 9600 bps để ghi log dữ liệu Serial.begin(9600);
// Khởi tạo màn hình LCD lcd.init(); lcd.setCursor(0,0); lcd.backlight(); // Bật đèn nền LCD lcd.display();
// Đặt chân điều khiển relay là output pinMode(lightRelayPin, OUTPUT); pinMode(fanRelayPin, OUTPUT); pinMode(tempLightRelayPin, OUTPUT);
// Kết nối Servo với chân điều khiển myservo1.attach(servoPin1); myservo2.attach(servoPin2); myservo3.attach(servoPin3); myservo4.attach(servoPin4);
// Khởi tạo đối tượng IRrecv irrecv.enableIRIn(); }
void loop() { // Kiểm tra nếu có dữ liệu từ remote if (irrecv.decode(&results)) { // Lưu giá trị mã học vào biến code unsigned long code = results.value; Serial.println(code); // Xử lý dữ liệu từ remote if (code == 4294967295) { // Mã học của nút "Auto Mode" autoMode = !autoMode; // Chuyển đổi chế độ tự động // Hiển thị trạng thái chế độ lên LCD Serial.println(code); lcd.clear(); lcd.setCursor(0, 0); if (autoMode) { lcd.print("Auto Mode: ON"); } else { lcd.print("Auto Mode: OFF"); } delay(1000); // Đợi 1 giây để tránh việc nhận các lệnh liên tiếp từ remote } irrecv.resume(); // Tiếp tục nhận dữ liệu từ remote } }
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#include <IRremote.h>
// Khai báo địa chỉ I2C của màn hình LCD
LiquidCrystal_I2C lcd(0x27,16, 2);
// Khai báo chân analog A0 (cảm biến độ ẩm)
const int moisturePin = A0;
// Khai báo chân analog A1 (cảm biến nhiệt độ)
const int tempPin = A1;
// Khai báo chân analog A2 (cảm biến ánh sáng)
const int lightPin = A2;
#include <Servo.h>
Servo myservo1; // Khởi tạo đối tượng Servo
const int servoPin1 = 2; // Chân điều khiển Servo 1
Servo myservo2; // Khởi tạo đối tượng Servo
const int servoPin2 = 3; // Chân điều khiển Servo 2
Servo myservo3; // Khởi tạo đối tượng Servo
const int servoPin3 = 4; // Chân điều khiển Servo 3
Servo myservo4; // Khởi tạo đối tượng Servo
const int servoPin4 = 5; // Chân điều khiển Servo 4
int servoPos = 0; // Biến lưu trữ vị trí của Servo
// Khai báo chân điều khiển relay cho đèn (dựa trên độ ẩm)
const int lightRelayPin = 13;
// Khai báo chân điều khiển relay cho quạt
const int fanRelayPin = 12;
// Khai báo chân điều khiển relay cho đèn (dựa trên nhiệt độ)
const int tempLightRelayPin = 11;
// Ngưỡng độ ẩm quy định để mở relay (độ ẩm cao hơn sẽ mở relay)
const int moistureThreshold = 500;
// Ngưỡng nhiệt độ quy định để bật quạt
const int highTempThreshold = 300; // Nhiệt độ cao hơn sẽ bật quạt
// Ngưỡng nhiệt độ quy định để bật đèn
const int lowTempThreshold = 100; // Nhiệt độ thấp hơn sẽ bật đèn
// Ngưỡng cường độ ánh sáng quy định để thực hiện hành động
const int lightThreshold = 30; // Giá trị cường độ ánh sáng
// Biến lưu trữ trạng thái chế độ (auto hoặc manual)
bool autoMode = true;
// Khai báo đối tượng IRrecv và mã học từ remote
const int RECV_PIN = 8;
IRrecv irrecv(RECV_PIN);
decode_results results;
void setup() {
// Khởi tạo cổng Serial với tốc độ 9600 bps để ghi log dữ liệu
Serial.begin(9600);
// Khởi tạo màn hình LCD
lcd.init();
lcd.setCursor(0,0);
lcd.backlight(); // Bật đèn nền LCD
lcd.display();
// Đặt chân điều khiển relay là output
pinMode(lightRelayPin, OUTPUT);
pinMode(fanRelayPin, OUTPUT);
pinMode(tempLightRelayPin, OUTPUT);
// Kết nối Servo với chân điều khiển
myservo1.attach(servoPin1);
myservo2.attach(servoPin2);
myservo3.attach(servoPin3);
myservo4.attach(servoPin4);
// Khởi tạo đối tượng IRrecv
irrecv.enableIRIn();
}
void loop() {
// Kiểm tra nếu có dữ liệu từ remote
if (irrecv.decode(&results)) {
// Lưu giá trị mã học vào biến code
unsigned long code = results.value;
Serial.println(code);
// Xử lý dữ liệu từ remote
if (code == 4294967295) { // Mã học của nút "Auto Mode"
autoMode = !autoMode; // Chuyển đổi chế độ tự động
// Hiển thị trạng thái chế độ lên LCD
Serial.println(code);
lcd.clear();
lcd.setCursor(0, 0);
if (autoMode) {
lcd.print("Auto Mode: ON");
} else {
lcd.print("Auto Mode: OFF");
}
delay(1000); // Đợi 1 giây để tránh việc nhận các lệnh liên tiếp từ remote
}
irrecv.resume(); // Tiếp tục nhận dữ liệu từ remote
}
}
keep getting the same code
#include <Wire.h> #include <LiquidCrystal_I2C.h> #include <IRremote.h>
// Khai báo địa chỉ I2C của màn hình LCD LiquidCrystal_I2C lcd(0x27,16, 2);
// Khai báo chân analog A0 (cảm biến độ ẩm) const int moisturePin = A0; // Khai báo chân analog A1 (cảm biến nhiệt độ) const int tempPin = A1; // Khai báo chân analog A2 (cảm biến ánh sáng) const int lightPin = A2;
#include <Servo.h> Servo myservo1; // Khởi tạo đối tượng Servo const int servoPin1 = 2; // Chân điều khiển Servo 1 Servo myservo2; // Khởi tạo đối tượng Servo const int servoPin2 = 3; // Chân điều khiển Servo 2 Servo myservo3; // Khởi tạo đối tượng Servo const int servoPin3 = 4; // Chân điều khiển Servo 3 Servo myservo4; // Khởi tạo đối tượng Servo const int servoPin4 = 5; // Chân điều khiển Servo 4
int servoPos = 0; // Biến lưu trữ vị trí của Servo
// Khai báo chân điều khiển relay cho đèn (dựa trên độ ẩm) const int lightRelayPin = 13; // Khai báo chân điều khiển relay cho quạt const int fanRelayPin = 12; // Khai báo chân điều khiển relay cho đèn (dựa trên nhiệt độ) const int tempLightRelayPin = 11;
// Ngưỡng độ ẩm quy định để mở relay (độ ẩm cao hơn sẽ mở relay) const int moistureThreshold = 500; // Ngưỡng nhiệt độ quy định để bật quạt const int highTempThreshold = 300; // Nhiệt độ cao hơn sẽ bật quạt // Ngưỡng nhiệt độ quy định để bật đèn const int lowTempThreshold = 100; // Nhiệt độ thấp hơn sẽ bật đèn
// Ngưỡng cường độ ánh sáng quy định để thực hiện hành động const int lightThreshold = 30; // Giá trị cường độ ánh sáng
// Biến lưu trữ trạng thái chế độ (auto hoặc manual) bool autoMode = true;
// Khai báo đối tượng IRrecv và mã học từ remote const int RECV_PIN = 8; IRrecv irrecv(RECV_PIN); decode_results results;
void setup() { // Khởi tạo cổng Serial với tốc độ 9600 bps để ghi log dữ liệu Serial.begin(9600);
// Khởi tạo màn hình LCD lcd.init(); lcd.setCursor(0,0); lcd.backlight(); // Bật đèn nền LCD lcd.display();
// Đặt chân điều khiển relay là output pinMode(lightRelayPin, OUTPUT); pinMode(fanRelayPin, OUTPUT); pinMode(tempLightRelayPin, OUTPUT);
// Kết nối Servo với chân điều khiển myservo1.attach(servoPin1); myservo2.attach(servoPin2); myservo3.attach(servoPin3); myservo4.attach(servoPin4);
// Khởi tạo đối tượng IRrecv irrecv.enableIRIn(); }
void loop() { // Kiểm tra nếu có dữ liệu từ remote if (irrecv.decode(&results)) { // Lưu giá trị mã học vào biến code unsigned long code = results.value; Serial.println(code); // Xử lý dữ liệu từ remote if (code == 4294967295) { // Mã học của nút "Auto Mode" autoMode = !autoMode; // Chuyển đổi chế độ tự động // Hiển thị trạng thái chế độ lên LCD Serial.println(code); lcd.clear(); lcd.setCursor(0, 0); if (autoMode) { lcd.print("Auto Mode: ON"); } else { lcd.print("Auto Mode: OFF"); } delay(1000); // Đợi 1 giây để tránh việc nhận các lệnh liên tiếp từ remote } irrecv.resume(); // Tiếp tục nhận dữ liệu từ remote } }
and ignore the mess that I have made on the top I tried the script in a simulator and found out that every button I pressed, gave me the same code which is 4294967295