极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11750|回复: 5

请问,这个程序错在哪儿?

[复制链接]
发表于 2015-5-23 16:16:15 | 显示全部楼层 |阅读模式
本帖最后由 迷你强 于 2015-5-23 22:22 编辑

这个程序我是按照论坛里的大神,发的教程打出来的(改了一点点,把一个舵机变成了多个舵机),编译时他说我if有问题!实在不知道是怎么回事,,,求解!

  1. int i, val;
  2. char t[3];
  3. boolean display;
  4. #include<Servo.h>
  5. Servo a,b,c,d,e,f,g,h;

  6. void setup()
  7. {
  8.     Serial.begin(9600);
  9.     a.attach(1);
  10.     b.attach(2);
  11.     c.attach(3);
  12.     d.attach(4);
  13.     e.attach(5);
  14.     f.attach(6);
  15.     g.attach(7);
  16.     h.attach(8);
  17.    
  18. }

  19. void loop()
  20. {
  21.    if(Serial.available())
  22.    delay(30);
  23.    if(Serial.available() <=3 ){
  24.       while(Serial.available()){
  25.         t[i++]=Serial.read();
  26.       }
  27.      display = 1;
  28.    }
  29.    else{
  30.      Serial.flush();
  31.    }
  32. }

  33. if (t[0] == 43 && display)
  34. {
  35.   val++;
  36.   a.write(val);
  37.   b.write(val);
  38.   c.write(val);
  39.   d.write(val);
  40.   e.write(val);
  41.   f.write(val);
  42.   g.write(val);
  43.   h.write(val);
  44.   Serial.println(val);
  45.       display=0;
  46.       Serial.flush();
  47.       for(i=0;i<=3;i++)
  48.       {
  49.         t[i]=0;
  50.       }
  51.       t = 0;
  52. }

  53. if(t[0]  == 45 && display){
  54.   val--;
  55.   a.write(val);
  56.   b.write(val);
  57.   c.write(val);
  58.   d.write(val);
  59.   e.write(val);
  60.   f.write(val);
  61.   g.write(val);
  62.   h.write(val);
  63.   Serial,println(val);
  64.     display = 0;
  65.     Serial.flush();
  66.     for(i=0;i<=3;i++)
  67.     {
  68.       t[i] = 0;
  69.     }
  70.     i = 0;
  71. }

  72. if(display)
  73. {
  74.   if(!t[2])
  75.   {
  76.     if(!t[1])
  77.     {
  78.       t[2] = t[0];
  79.       t[1] = 48;
  80.       t[0] = 48;
  81.     }
  82.     else{
  83.     t[2] = t[1];
  84.     t[1] = t[0];
  85.     t[0] = 48;
  86.      }
  87.   }
  88.   for(i=0;i<=3;i++)
  89.   {
  90.     t[i] -=48;
  91.   }
  92.   val = 100*t[0] + 10*t[1] + a[2];
  93.   a.write(val);
  94.   b.write(val);
  95.   c.write(val);
  96.   d.write(val);
  97.   e.write(val);
  98.   f.write(val);
  99.   g.write(val);
  100.   h.write(val);
  101.   
  102.   Serial.println(val);
  103.   display = 0;
  104.   Serial.flush();
  105.   for(i = 0;i <= 3; i++)
  106.    {
  107.      t[i] = 0;
  108.    }  
  109.    i = 0;
  110. }
复制代码

第一次敲 arduino 的程序,错误可能很多,求指教!
回复

使用道具 举报

发表于 2015-5-23 16:53:19 | 显示全部楼层
应该是arduino的驱动能力不够吧?用外接电源应该是可以的、
回复 支持 反对

使用道具 举报

发表于 2015-5-23 21:51:31 | 显示全部楼层
问这类问题应该贴出错误信息,建议使用visual studio装上Visual Micro插件来写arduino程序,语法错误会有比较好的提示
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-24 17:25:33 | 显示全部楼层
nick_zm 发表于 2015-5-23 21:51
问这类问题应该贴出错误信息,建议使用visual studio装上Visual Micro插件来写arduino程序,语法错误会有比 ...

哦哦 ,这样啊,谢谢
回复 支持 反对

使用道具 举报

发表于 2015-5-28 11:22:17 | 显示全部楼层
你出错的那个if既没有写在 loop里,也没有写在 setup里,更没写在函数里
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-6-7 15:48:27 | 显示全部楼层
shenhaiyu 发表于 2015-5-28 11:22
你出错的那个if既没有写在 loop里,也没有写在 setup里,更没写在函数里

谢谢,的确是这样!
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-21 00:39 , Processed in 0.042503 second(s), 21 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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