极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 23112|回复: 13

求大神看电路编程 32路舵机控制器 ATMega328+74HC595PW

[复制链接]
发表于 2013-12-11 18:41:48 | 显示全部楼层 |阅读模式
本帖最后由 闽海 于 2013-12-18 22:41 编辑

求大神看电路编程 32路舵机控制器
硬件平台:
ATMega328+74HC595PW
局部电路原理图如下:

电路原理图下载:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2013-12-11 20:23:20 | 显示全部楼层
有程序代码吗?主要想看程序代码~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-11 22:04:31 | 显示全部楼层
绿林网页 发表于 2013-12-11 20:23
有程序代码吗?主要想看程序代码~

亲 俺也在等大神出程序呢
回复 支持 反对

使用道具 举报

发表于 2013-12-11 22:52:15 | 显示全部楼层
那我先贴一个简单的,等待大神~~
  1. #include <Servo.h>
  2. Servo servo0;
  3. Servo servo1;
  4. Servo servo2;
  5. Servo servo3;
  6. Servo servo4;
  7. Servo servo5;
  8. Servo servo6;
  9. Servo servo7;
  10. Servo servo8;

  11. String t_comdata = String("");
  12. char tchar;
  13. int sevdata[9]={0};
  14. int ykData[10]={
  15.   0};
  16. int smark=0;
  17. void setjd(int pin,int val)
  18. {
  19.   if(val<0)val=0;
  20.   if(val>180)val=180;
  21.   switch(pin)
  22.   {
  23.   case 0:
  24.     if(servo0.read()!=val)
  25.       servo0.write(val);
  26.     break;
  27.   case 1:
  28.     if(servo1.read()!=val)
  29.       servo1.write(val);
  30.     break;
  31.   case 2:
  32.     if(servo2.read()!=val)
  33.       servo2.write(val);
  34.     break;
  35.   case 3:
  36.     if(servo3.read()!=val)
  37.       servo3.write(val);
  38.     break;
  39.   case 4:
  40.     if(servo4.read()!=val)
  41.       servo4.write(val);
  42.     break;
  43.   case 5:
  44.     if(servo5.read()!=val)
  45.       servo5.write(val);
  46.     break;
  47.   case 6:
  48.     if(servo6.read()!=val)
  49.       servo6.write(val);
  50.     break;
  51.   case 7:
  52.     if(servo7.read()!=val)
  53.       servo7.write(val);
  54.     break;
  55.   case 8:
  56.     if(servo8.read()!=val)
  57.       servo8.write(val);
  58.     break;
  59.   }
  60. }
  61. void ProtocolAnalysis()
  62. {
  63.   while (Serial.available() > 0)  {
  64.     tchar=char(Serial.read());
  65.     if(tchar=='#'){
  66.       t_comdata = String("");
  67.       smark=1;
  68.     }
  69.     else if(tchar=='\n'){
  70.       Serial.println(t_comdata);
  71.       int j=0;
  72.       for(int i = 0; i < t_comdata.length() ; i++){
  73.         if(t_comdata[i] == ','){
  74.           j++;   
  75.         }
  76.         else{        
  77.           ykData[j] = ykData[j] * 10 + (t_comdata[i] - '0');
  78.         }   
  79.       }
  80.       smark=2;
  81.     }
  82.     else{
  83.       if(smark==1){        
  84.         t_comdata+=tchar;
  85.       }
  86.     }
  87.     delay(2);  
  88.   }
  89. }
  90. void setup()
  91. {
  92.   Serial.begin(9600);
  93.   servo0.attach(2);
  94.   servo1.attach(3);
  95.   servo2.attach(4);
  96.   servo3.attach(5);
  97.   servo4.attach(6);
  98.   servo5.attach(7);
  99.   servo6.attach(8);
  100.   servo7.attach(9);
  101.   servo8.attach(10);
  102.   Serial.println("init...");
  103.   delay(1000);
  104.   for(int i=0;i< sizeof(sevdata);i++)
  105.   {
  106.     setjd(i,sevdata[i]);
  107.   }
  108.   delay(1000);
  109.   Serial.println("start...");
  110. }
  111. void loop()
  112. {
  113.   ProtocolAnalysis();
  114.   if(smark==2) {   
  115.     Serial.println("do...");
  116.     for(int i=0;i<9;i++){
  117.       setjd(i,ykData[i]);
  118.     }   
  119.     delay(50);
  120.     Serial.println("clear...");
  121.     for(int i=0;i<10;i++) {
  122.       ykData[i] = 0;
  123.     }
  124.     smark=0;
  125.   }
  126. }
复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-12 19:14:56 | 显示全部楼层
绿林网页 发表于 2013-12-11 22:52
那我先贴一个简单的,等待大神~~

厉害啊 这几天苦苦寻找总算找到源代码 当不知怎么生成固件
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-12 19:20:20 | 显示全部楼层
现在奉上源代码 望大神出个编程教程

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2013-12-13 11:33:10 | 显示全部楼层
就想看协议部分怎么处理的
回复 支持 反对

使用道具 举报

发表于 2013-12-13 11:33:29 | 显示全部楼层
我还知道一种不用74HC595的,用算法实现
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-13 12:50:44 | 显示全部楼层
michealzhou 发表于 2013-12-13 11:33
我还知道一种不用74HC595的,用算法实现

上代码看看 让大家学习一下
回复 支持 反对

使用道具 举报

发表于 2013-12-13 21:13:03 | 显示全部楼层
http://arcbotics.com/products/servotor32/
不解釋{:soso_e141:}
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-15 17:20:48 | 显示全部楼层
ZOIDS 发表于 2013-12-13 21:13
http://arcbotics.com/products/servotor32/
不解釋

下了代码 居然编译不过去
回复 支持 反对

使用道具 举报

发表于 2013-12-18 22:22:05 | 显示全部楼层
闽海 发表于 2013-12-15 17:20
下了代码 居然编译不过去

可以編譯的 親好好查錯
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-12-18 22:40:30 | 显示全部楼层
本帖最后由 闽海 于 2013-12-18 22:42 编辑
ZOIDS 发表于 2013-12-18 22:22
可以編譯的 親好好查錯


可以了 板子选错了 谢谢哈  但是不是328的 哪里可以找到呢
回复 支持 反对

使用道具 举报

发表于 2013-12-19 21:22:01 | 显示全部楼层
闽海 发表于 2013-12-18 22:40
可以了 板子选错了 谢谢哈  但是不是328的 哪里可以找到呢

leonardo 和 pro micro 都可以的
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-7 22:55 , Processed in 0.041396 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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