小R科技-WIFI机器人网·机器人创意工作室

 找回密码
 立即注册
查看: 12558|回复: 12

工作室驱动板多功能接口组如何使用?

[复制链接]
发表于 2014-1-2 21:10:23 | 显示全部楼层 |阅读模式
我想用这几个管脚通过高低电平控制三极管开启红外补光灯,请问需要修改上位机和下位机的哪些地方?
管脚.PNG
回复

使用道具 举报

发表于 2014-1-2 22:38:32 | 显示全部楼层
你先定一个IO来控制,然后把接线原理图发给我,我教你写代码。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-3 06:01:05 | 显示全部楼层
liuviking 发表于 2014-1-2 22:38
你先定一个IO来控制,然后把接线原理图发给我,我教你写代码。

不需要原理图,三极管和LED灯的接法我倒是会。就用上位机自定义11控制P20,自定义12控制P21,实现高低电平的切换。
回复 支持 反对

使用道具 举报

发表于 2014-1-3 15:08:52 | 显示全部楼层
liuviking 发表于 2014-1-2 22:38
你先定一个IO来控制,然后把接线原理图发给我,我教你写代码。

老大,,你太负责了。。。太有爱了。。。狂赞32下
回复 支持 反对

使用道具 举报

发表于 2014-1-4 11:13:26 | 显示全部楼层
medouhui 发表于 2014-1-3 06:01
不需要原理图,三极管和LED灯的接法我倒是会。就用上位机自定义11控制P20,自定义12控制P21,实现高低电平 ...


假设你用灌电流形式,首先修改config.h文件,新增IO定义,代码如下:
  1. /* LED管脚配置 */
  2. sbit LED6=P0^6;
  3. sbit LED5=P0^7;
  4. sbit LED4=P2^7;
  5. sbit LED3=P2^6;
  6. sbit LED2=P2^5;
  7. sbit LED1=P2^4;
  8. sbit LED_A=P2^0
  9. sbit LED_B=P2^1
复制代码

其中LED_A和LED_B分别代表两个LED。
然后在motor.h文件中,定义开灯和关灯的IO电平:
  1. #ifndef _MOTOR_H_
  2. #define _MOTOR_H_


  3. #include "type.h"
  4. #include "config.h"

  5. void Motor_Init(void);

  6. #define MOTOR_GO_FORWARD MOTOR_A_CON1=0;MOTOR_A_CON2=1;MOTOR_B_CON1=0;MOTOR_B_CON2=1;LED1=0;LED2=1;LED3=1;LED4=1
  7. #define MOTOR_GO_BACK MOTOR_A_CON1=1;MOTOR_A_CON2=0;MOTOR_B_CON1=1;MOTOR_B_CON2=0;LED1=1;LED2=0;LED3=1;LED4=1
  8. #define MOTOR_GO_RIGHT MOTOR_A_CON1=1;MOTOR_A_CON2=0;MOTOR_B_CON1=0;MOTOR_B_CON2=1;LED1=1;LED2=1;LED3=0;LED4=1
  9. #define MOTOR_GO_LEFT MOTOR_A_CON1=0;MOTOR_A_CON2=1;MOTOR_B_CON1=1;MOTOR_B_CON2=0;LED1=1;LED2=1;LED3=1;LED4=0
  10. #define MOTOR_GO_STOP MOTOR_A_CON1=0;MOTOR_A_CON2=0;MOTOR_B_CON1=0;MOTOR_B_CON2=0;LED1=1;LED2=1;LED3=1;LED4=1
  11. #define MAINLIGHT_TURNON MAINLIGHT_CON=0;
  12. #define MAINLIGHT_TURNOFF MAINLIGHT_CON=1;
  13. #define LED_A_TURNON LED_A=0;
  14. #define LED_A_TURNOFF LED_A=1;
  15. #define LED_B_TURNON LED_B=0;
  16. #define LED_B_TURNOFF LED_B=1;
  17. #endif
复制代码

然后修改uart.c文件,在Communication_Decode函数中加一个if分支:


  1. void Communication_Decode(void)  
  2. {
  3. if(buffer[0]==0x00)
  4. {
  5.   switch(buffer[1])
  6.   {
  7.    case 0x01:MOTOR_GO_FORWARD; return;
  8.    case 0x02:MOTOR_GO_BACK;    return;
  9.    case 0x03:MOTOR_GO_LEFT;    return;
  10.       case 0x04:MOTOR_GO_RIGHT;   return;
  11.    case 0x00:MOTOR_GO_STOP;    return;
  12.    default: return;
  13.   }
  14. }
  15. else if(buffer[0]==0x01)
  16. {
  17.   if(buffer[2]>180)
  18.    return;
  19.   switch(buffer[1])
  20.   {
  21.    case 0x01:se_timer[0]=buffer[2]; return;
  22.    case 0x02:se_timer[1]=buffer[2]; return;
  23.    case 0x03:se_timer[2]=buffer[2]; return;
  24.    case 0x04:se_timer[3]=buffer[2]; return;
  25.    case 0x05:se_timer[4]=buffer[2]; return;
  26.    case 0x06:se_timer[5]=buffer[2]; return;
  27.    case 0x07:se_timer[6]=buffer[2]; return;
  28.    case 0x08:se_timer[7]=buffer[2]; return;
  29.    default : return;
  30.   }
  31. }
  32. else if(buffer[0]==0x04)   //车灯控制使用灌电流方式
  33. {
  34.     switch(buffer[1])
  35.      {
  36.          case 0x01:
  37.      MAINLIGHT_TURNON;
  38.      break;
  39.     case 0x00:
  40.       MAINLIGHT_TURNOFF;
  41.       break;
  42.       default:return;
  43.      }
  44.       
  45. }
  46. else if(buffer[0]==0x08)
  47. {
  48.   switch(buffer[1])
  49.      {
  50.          case 0x00:
  51.      LED_A_TURNOFF;
  52.      break;
  53.     case 0x01:
  54.       LED_A_TURNON;
  55.       break;
  56.       default:return;
  57.      }
  58. }
  59. else if(buffer[0]==0x09)
  60. {
  61.   switch(buffer[1])
  62.      {
  63.          case 0x00:
  64.      LED_B_TURNOFF;
  65.      break;
  66.     case 0x01:
  67.       LED_B_TURNON;
  68.       break;
  69.       default:return;
  70.      }
  71. }
  72. }
复制代码
编译出来烧录到驱动板。

现在就可以在上位机那边填入控制指令了:
LEDA开/关:FF080100FF/FF080000FF
LEDB开/关:FF090100FF/FF090000FF

回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-6 00:20:57 | 显示全部楼层
liuviking 发表于 2014-1-4 11:13
假设你用灌电流形式,首先修改config.h文件,新增IO定义,代码如下:

其中LED_A和LED_B分别代表两个 ...

万分感谢,我先试试看!{:3_48:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-9 15:23:39 | 显示全部楼层
本帖最后由 medouhui 于 2014-1-9 15:24 编辑
liuviking 发表于 2014-1-4 11:13
假设你用灌电流形式,首先修改config.h文件,新增IO定义,代码如下:

其中LED_A和LED_B分别代表两个 ...

错误.JPG

提示错误。
回复 支持 反对

使用道具 举报

发表于 2014-1-9 15:51:24 | 显示全部楼层
medouhui 发表于 2014-1-9 15:23
提示错误。

把miain_light这个删了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-16 03:40:23 | 显示全部楼层
liuviking 发表于 2014-1-9 15:51
把miain_light这个删了

刷完之后为什么6,7,8号舵机失效了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-1-16 03:59:23 | 显示全部楼层
liuviking 发表于 2014-1-9 15:51
把miain_light这个删了

知道怎么回事了。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

新品特惠推荐上一条 /2 下一条

QQ|QQ技术咨询1|QQ技术咨询2|商务合作微信1:xiaorgeek001|商务合作微信2:XiaoRGEEK|诚聘英才|Archiver|手机版|小R科技-WIFI机器人网·机器人创意工作室 ( 粤ICP备15000788号-6 )

GMT+8, 2024-11-26 11:31 , Processed in 1.210115 second(s), 22 queries .

Powered by XiaoR GEEK X3.4

© 2014-2021 XiaoR GEEK

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