首页/作品列表/mCookie红外遥控点阵屏
mCookie红外遥控点阵屏
4020 0
主要内容
//发送端代码
// includes start
#include <Arduino.h>
#include <Microduino_Key.h>
#include <IRremote.h>
// includes end

AnalogKey keyAnalog_A2[5] = {(A2), (A2), (A2), (A2), (A2)};
IRsend irsend;

void setup() {
	// setup define start
	for (uint8_t a = 0; a < 5; a++) {
		keyAnalog_A2[a].begin(INPUT);
	}

	// setup define end
	Serial.begin(9600);
}

void loop() {
	delay(0.2 * 1000);
	if((keyAnalog_A2[1].readVal(700 - 50, 700 + 50, KEY_PRESSED))) {
		irsend.sendRC5(1, 32);
		Serial.print("up");
	}
	if((keyAnalog_A2[2].readVal(330 - 50, 330 + 50, KEY_PRESSED))) {
		irsend.sendRC5(2, 32);
		Serial.println("down");
	}
	if((keyAnalog_A2[4].readVal(860 - 50, 860 + 50, KEY_PRESSED))) {
		irsend.sendRC5(4, 32);
		Serial.println("right");
	}
	if((keyAnalog_A2[0].readVal(0, 50, KEY_PRESSED))) {
		irsend.sendRC5(5, 32);
		Serial.println("center");
	}
}

//接收端代码
// includes start
#include <Arduino.h>
#include <IRremote.h>
#include <Microduino_Matrix.h>
// includes end
// definition start
uint32_t dump(decode_results *results_2);
uint32_t irFluse();
// definition end
IRrecv irrecv_2(2);
decode_results results_2;
uint32_t _irData = 0x00000000;
uint32_t _irDataCache = 0x00000000;
uint32_t _irTime = 0;
uint8_t Addr64[MatrixPix_X][MatrixPix_Y] = {{64}};
Matrix display64 = Matrix(Addr64, TYPE_COLOR);
long command;
int old_x;
int x;
int old_y;
int y;
uint32_t dump(decode_results *results_2) {
	int count = results_2->rawlen;
	if (results_2->decode_type != UNKNOWN) {
		_irDataCache = _irData;
		if (results_2->value == 0xFFFFFFFF) {
			_irData = _irDataCache;
		} else {
			_irData = results_2->value;
		}
	}
}
uint32_t irFluse() {
	if (irrecv_2.decode(&results_2)) {
		dump(&results_2);
		irrecv_2.resume();
		_irTime = millis();
	}
	if (millis() - _irTime > 200) {
		_irData = 0x00000000;
	}
	return _irData;
}

void setup() {
	// setup define start
	irrecv_2.enableIRIn();
	Wire.begin();
	// setup define end
	Serial.begin(9600);
	x = 0;
	y = 0;
}

void loop() {
	command = irFluse();
	Serial.println(command);
	old_x = x;
	old_y = y;
	if(((command) == 1)) {
		y = (y)-1;
	}
	if(((command) == 2)) {
		y = (y)+1;
	}
	if(((command) == 3)) {
		x = (x)-1;
	}
	if(((command) == 4)) {
		x = (x)+1;
	}
	if(((command) == 5)) {
		x = 0;
		y = 0;
	}
	display64.setLedColor(old_x, old_y, (0x000000)>>16, (0x000000)>>8&0xFF, (0x000000)&0xFF);
	display64.setLedColor(x, y, (0xef0000)>>16, (0xef0000)>>8&0xFF, (0xef0000)&0xFF);
	delay(0.2 * 1000);
}

代码展示

1. 发送端代码

编程语言: C/C++(Arduino)

软件工具:mDesigner 3


2. 接收端代码

编程语言: C/C++(Arduino)

软件工具:mDesigner 3


附件下载
  • 资料展示
  • mCookie红外遥控点阵屏.zip
0
大牛,别默默的看了,快登录帮我点评一下吧!

立即注册