找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

【Arduino】168种传感器模块系列实验(173)---四键无线遥控模块套件

查看数: 5232 | 评论数: 38 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2020-12-31 10:31

正文摘要:

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里准备 ...

回复

ID:401478 发表于 2021-1-5 10:23
太好了  大侠辛苦了 加油!
ID:513258 发表于 2021-1-4 17:29
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百七十三:2262/2272四路无线遥控套件 M4非锁接收板 四键无线遥控器发射模块
  4.   程序之二:Arduino IC 2262/2272遥控器
  5. */

  6. #define PIN_D2_INT  0
  7. #define R06A_VT 2
  8. #define R06A_D0 3
  9. #define R06A_D1 4
  10. #define R06A_D2 5
  11. #define R06A_D3 6

  12. bool r06a_0, r06a_1, r06a_2, r06a_3 = false;
  13. int dirty = 0;

  14. void pinD2ISR() {
  15.   digitalWrite(13, !digitalRead(13));

  16.   if (digitalRead(R06A_D0) == HIGH) {
  17.     r06a_0 = !r06a_0;
  18.   }

  19.   if (digitalRead(R06A_D1) == HIGH) {
  20.     r06a_1 = !r06a_1;
  21.   }

  22.   if (digitalRead(R06A_D2) == HIGH) {
  23.     r06a_2 = !r06a_2;
  24.   }

  25.   if (digitalRead(R06A_D3) == HIGH) {
  26.     r06a_3 = !r06a_3;
  27.   }

  28.   dirty = 1;
  29. }

  30. void setup() {
  31.   attachInterrupt(PIN_D2_INT, pinD2ISR, RISING);
  32.   pinMode(R06A_D0, INPUT);
  33.   pinMode(R06A_D1, INPUT);
  34.   pinMode(R06A_D2, INPUT);
  35.   pinMode(R06A_D3, INPUT);
  36.   Serial.begin(9600);
  37. }

  38. void loop() {
  39.   if (dirty) {
  40.     dirty = 0;

  41.     Serial.print("A: ");
  42.     Serial.println(r06a_2 ? "HIGH" : "LOW ");

  43.     Serial.print("B: ");
  44.     Serial.println(r06a_0 ? "HIGH" : "LOW ");

  45.     Serial.print("C: ");
  46.     Serial.println(r06a_3 ? "HIGH" : "LOW ");

  47.     Serial.print("D: ");
  48.     Serial.println(r06a_1 ? "HIGH" : "LOW ");

  49.     Serial.println("");
  50.   }
  51. }
复制代码


ID:513258 发表于 2021-1-4 16:27
  1. /*
  2.   【Arduino】168种传感器模块系列实验(资料代码+图形编程+仿真编程)
  3.   实验一百七十三:2262/2272四路无线遥控套件 M4非锁接收板 四键无线遥控器发射模块  
  4. */

  5. /*以下四个管脚定义,对应遥控器上的四个按键(遥控器为推荐的无线遥控器315MHz(SKU:FIT0355))*/
  6. int D0 = 8;    //解码芯片数字输出管脚D0,串口值0001,按键A
  7. int D1 = 9;    //解码芯片数字输出管脚D1,串口值0010,按键B
  8. int D2 = 10;   //解码芯片数字输出管脚D2,串口值1000,按键C
  9. int D3 = 11;   //解码芯片数字输出管脚D3,串口值0100,按键D
  10. int ledPin = 13;   //接收指示灯

  11. volatile int state = LOW;

  12. void setup()
  13. {
  14.   Serial.begin(9600);
  15.   /*以下管脚的顺序分别对应遥控器的4个按键*/
  16.   pinMode(D3, INPUT);  //分别初始化为输入端口,读取解码芯片输出管脚的电平
  17.   pinMode(D1, INPUT);
  18.   pinMode(D0, INPUT);
  19.   pinMode(D2, INPUT);
  20.   pinMode(ledPin, OUTPUT);
  21.   attachInterrupt(1, blink, RISING); //数字口2,中断1,对应解码芯片的接收中断管脚
  22.   digitalWrite(ledPin, LOW);
  23. }

  24. void loop()
  25. {
  26.   if (state != LOW) //如果接收到遥控器的命令,则进入该语句
  27.   {
  28.     state = LOW;
  29.     delay(1);   //适当延时,等待管脚电平稳定
  30.     digitalWrite(ledPin, HIGH);
  31.     Serial.print(digitalRead(D3));  //分别读取解码芯片输出管脚的电平,并打印出来
  32.     Serial.print(digitalRead(D1));
  33.     Serial.print(digitalRead(D0));
  34.     Serial.println(digitalRead(D2));
  35.     delay(300);
  36.     digitalWrite(ledPin, LOW);
  37.   }
  38. }

  39. void blink()
  40. {
  41.   state = ! state;
  42. }
复制代码


ID:513258 发表于 2021-1-1 20:51

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表