eagler8
发表于 2021-1-1 20:23:45
本帖最后由 eagler8 于 2021-1-1 20:44 编辑
PT2262/2272模块测试与应用:
硬件接好后,为了便于测试电路,在四个输出脚接发光管正极,发光管负极接2K-4.7K电阻到地,测试时按遥控键,相应的发光管会亮(2272分两种,L4和M4,前者会锁定输出,直道接收到其它按键信号该发光管才灭,另一个对应的发光管亮;后者当有对应遥控器键按下时亮,时间小于一秒,怎么应用就看你自己了)。
需要控制较大负载的话加8050,其基极接4.7K-10K电阻到2272.或使用2003驱动。后面可接继电器,用220V继电器控制380V交流接触器的话,可控制电机正反转(如电动栅栏门),别忘了另接一个用来给交流接触器控制线断电的继电器,不然电机会冒火的。
eagler8
发表于 2021-1-1 20:47:22
PT2262/2272模块使用注意事项
1.天线用软导线或其它硬质金属(如拉杆天线),长度大约24cm(315MHz)或18cm(434MHz),尽量拉直使用。不要靠近金属物体。
2.电源电压要求稳定且波纹系数低,需多级滤波(如增加磁珠、电感、电容等)。
3若配合单片机使用建议MCU时钟频率在4MHZ以下并且晶体尽量远离RF接收模块,否则晶体的高次谐波会影响通讯距离。
4注意编码IC和解码IC的速率一致和码的格式一致,否则将会影响距离乃至不能通讯。
eagler8
发表于 2021-1-1 20:51:52
PT2262/PT2272无线遥控模块使用介绍(5分钟视频)
https://v.youku.com/v_show/id_XMzAwMDM3ODczMg==.html?spm=a2hzp.8253869.0.0
https://v.youku.com/v_show/id_XMzAwMDM3ODczMg==.html
eagler8
发表于 2021-1-4 16:27:01
/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百七十三:2262/2272四路无线遥控套件 M4非锁接收板 四键无线遥控器发射模块
*/
/*以下四个管脚定义,对应遥控器上的四个按键(遥控器为推荐的无线遥控器315MHz(SKU:FIT0355))*/
int D0 = 8; //解码芯片数字输出管脚D0,串口值0001,按键A
int D1 = 9; //解码芯片数字输出管脚D1,串口值0010,按键B
int D2 = 10; //解码芯片数字输出管脚D2,串口值1000,按键C
int D3 = 11; //解码芯片数字输出管脚D3,串口值0100,按键D
int ledPin = 13; //接收指示灯
volatile int state = LOW;
void setup()
{
Serial.begin(9600);
/*以下管脚的顺序分别对应遥控器的4个按键*/
pinMode(D3, INPUT);//分别初始化为输入端口,读取解码芯片输出管脚的电平
pinMode(D1, INPUT);
pinMode(D0, INPUT);
pinMode(D2, INPUT);
pinMode(ledPin, OUTPUT);
attachInterrupt(1, blink, RISING); //数字口2,中断1,对应解码芯片的接收中断管脚
digitalWrite(ledPin, LOW);
}
void loop()
{
if (state != LOW) //如果接收到遥控器的命令,则进入该语句
{
state = LOW;
delay(1); //适当延时,等待管脚电平稳定
digitalWrite(ledPin, HIGH);
Serial.print(digitalRead(D3));//分别读取解码芯片输出管脚的电平,并打印出来
Serial.print(digitalRead(D1));
Serial.print(digitalRead(D0));
Serial.println(digitalRead(D2));
delay(300);
digitalWrite(ledPin, LOW);
}
}
void blink()
{
state = ! state;
}
eagler8
发表于 2021-1-4 16:30:21
实验串口输出
eagler8
发表于 2021-1-4 16:45:50
实验场景图
eagler8
发表于 2021-1-4 17:29:09
/*
【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
实验一百七十三:2262/2272四路无线遥控套件 M4非锁接收板 四键无线遥控器发射模块
程序之二:Arduino IC 2262/2272遥控器
*/
#define PIN_D2_INT0
#define R06A_VT 2
#define R06A_D0 3
#define R06A_D1 4
#define R06A_D2 5
#define R06A_D3 6
bool r06a_0, r06a_1, r06a_2, r06a_3 = false;
int dirty = 0;
void pinD2ISR() {
digitalWrite(13, !digitalRead(13));
if (digitalRead(R06A_D0) == HIGH) {
r06a_0 = !r06a_0;
}
if (digitalRead(R06A_D1) == HIGH) {
r06a_1 = !r06a_1;
}
if (digitalRead(R06A_D2) == HIGH) {
r06a_2 = !r06a_2;
}
if (digitalRead(R06A_D3) == HIGH) {
r06a_3 = !r06a_3;
}
dirty = 1;
}
void setup() {
attachInterrupt(PIN_D2_INT, pinD2ISR, RISING);
pinMode(R06A_D0, INPUT);
pinMode(R06A_D1, INPUT);
pinMode(R06A_D2, INPUT);
pinMode(R06A_D3, INPUT);
Serial.begin(9600);
}
void loop() {
if (dirty) {
dirty = 0;
Serial.print("A: ");
Serial.println(r06a_2 ? "HIGH" : "LOW ");
Serial.print("B: ");
Serial.println(r06a_0 ? "HIGH" : "LOW ");
Serial.print("C: ");
Serial.println(r06a_3 ? "HIGH" : "LOW ");
Serial.print("D: ");
Serial.println(r06a_1 ? "HIGH" : "LOW ");
Serial.println("");
}
}
eagler8
发表于 2021-1-4 17:49:09
实验二串口输出