找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1351|回复: 1
打印 上一主题 下一主题
收起左侧

利用手机改造的远程控制机器人 源程序

[复制链接]
跳转到指定楼层
楼主
ID:664626 发表于 2019-12-15 21:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
sketch_jqr_uno.ino是网灵机器人的Arduino主程序,rf_send.ino是RF发送的源代码。
dht文件夹是DHT11温湿度模块的库,请先把它拷贝到Arduino IDE环境的libraries目录下。

推荐用arduino-1.0.1编译环境,打开sketch_jqr_uno.ino时,会自动把同一个目录下的rf_send.ino包含进来编译。
2个ino文件经过编译最终生成一个固件,上传到Arduino板子中。


  1. void pt2262_foura(void)
  2. {//针对于16MHz频率的单片机
  3.         int i;
  4.         for (i = 0; i < pt2262_count; i++)
  5.         {delayMicroseconds(10);}
  6. }

  7. void ev1527_bit0(void)
  8. {
  9.         digitalWrite(pt2262_pin, HIGH);
  10.         pt2262_foura();
  11.         digitalWrite(pt2262_pin, LOW);
  12.         pt2262_foura();
  13.         pt2262_foura();
  14.         pt2262_foura();
  15. }

  16. void ev1527_bit1(void)
  17. {
  18.         digitalWrite(pt2262_pin, HIGH);
  19.         pt2262_foura();
  20.         pt2262_foura();
  21.         pt2262_foura();
  22.         digitalWrite(pt2262_pin, LOW);
  23.         pt2262_foura();
  24. }

  25. void pt2262_dama0(void)//BIT"0"
  26. {
  27.         digitalWrite(pt2262_pin, HIGH);
  28.         pt2262_foura();
  29.         digitalWrite(pt2262_pin, LOW);
  30.         pt2262_foura();
  31.         pt2262_foura();
  32.         pt2262_foura();

  33.         digitalWrite(pt2262_pin, HIGH);
  34.         pt2262_foura();
  35.         digitalWrite(pt2262_pin, LOW);
  36.         pt2262_foura();
  37.         pt2262_foura();
  38.         pt2262_foura();
  39. }

  40. void pt2262_dama1(void)//BIT"1"
  41. {
  42.         digitalWrite(pt2262_pin, HIGH);
  43.         pt2262_foura();
  44.         pt2262_foura();
  45.         pt2262_foura();
  46.         digitalWrite(pt2262_pin, LOW);
  47.         pt2262_foura();
  48.        
  49.         digitalWrite(pt2262_pin, HIGH);
  50.         pt2262_foura();
  51.         pt2262_foura();
  52.         pt2262_foura();
  53.         digitalWrite(pt2262_pin, LOW);
  54.         pt2262_foura();
  55. }

  56. void pt2262_damaf(void)//BIT"f"
  57. {
  58.         digitalWrite(pt2262_pin, HIGH);
  59.         pt2262_foura();
  60.         digitalWrite(pt2262_pin, LOW);
  61.         pt2262_foura();
  62.         pt2262_foura();
  63.         pt2262_foura();

  64.         digitalWrite(pt2262_pin, HIGH);
  65.         pt2262_foura();
  66.         pt2262_foura();
  67.         pt2262_foura();
  68.         digitalWrite(pt2262_pin, LOW);
  69.         pt2262_foura();
  70. }

  71. void pt2262_syn(void)
  72. {
  73.         int i=31;
  74.         digitalWrite(pt2262_pin, HIGH);
  75.         pt2262_foura();
  76.         digitalWrite(pt2262_pin, LOW);
  77.         while(i--)
  78.         {
  79.                 pt2262_foura();
  80.         }
  81. }

  82. void pt2262_send(uint16_t addr, uint8_t data)
  83. {
  84.   uint16_t addr_bak = addr;
  85.   uint8_t data_bak = data;
  86.   uint8_t i;
  87.   uint8_t j;
  88.   uint8_t tmp;
  89.   for (i = 0; i < 5; i++)
  90.   {
  91.         addr = addr_bak;
  92.         data = data_bak;

  93.         pt2262_syn();

  94.         for (j = 0; j < 8; j++)
  95.         {//A0 -> A7
  96.                 tmp = addr % 3;
  97.                 if (0 == tmp)       pt2262_dama0();
  98.                 else if  (1 == tmp) pt2262_dama1();
  99.                 else                pt2262_damaf();
  100.                 addr = addr / 3;
  101.         }
  102.         for (j = 0; j < 4; j++)
  103.         {//D0 -> D3
  104.                 tmp = data % 2;
  105.                 if (0 == tmp)       pt2262_dama0();
  106.                 else if  (1 == tmp) pt2262_dama1();
  107.                 data = data / 2;
  108.         }
  109.   }
  110. }

  111. void ev1527_send(uint16_t addr, uint8_t data)
  112. {
  113.   uint16_t addr_bak = addr;
  114.   uint8_t data_bak = data;
  115.   uint8_t i;
  116.   uint8_t j;
  117.   uint8_t tmp;
  118.   for (i = 0; i < 5; i++)
  119.   {
  120.         addr = addr_bak;
  121.         data = data_bak;

  122.         pt2262_syn();

  123.         for (j = 0; j < 8; j++)
  124.         {//A0 -> A7 (16bit)
  125.                 tmp = addr % 3;
  126.                 if (0 == tmp)       pt2262_dama0();
  127.                 else if  (1 == tmp) pt2262_dama1();
  128.                 else                pt2262_damaf();
  129.                 addr = addr / 3;
  130.         }
  131.         for (j = 0; j < 8; j++)
  132.         {//D0 -> D7 (8bit)
  133.                 tmp = data % 2;
  134.                 if (0 == tmp)       ev1527_bit0();
  135.                 else if  (1 == tmp) ev1527_bit1();
  136.                 data = data / 2;
  137.         }
  138.   }
  139. }
复制代码


Arduino源程序.zip

6.57 KB, 下载次数: 2, 下载积分: 黑币 -5

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:184813 发表于 2020-2-15 23:06 | 只看该作者
谢谢分享。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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