mak4000 发表于 2017-1-3 11:41:50

用tf卡控制的机械手

#include <SPI.h>
#include <SD.h>

File myFile;
char jeep;
String csjeep="";
int csA,csB,csC,csD,csF;
int i;
void setup() {

Serial.begin(9600);
while (!Serial) {
      }

if (!SD.begin(4)) {
    Serial.println("shi bai");
      return;
}
Serial.println("read.......");

// re-open the file for reading:
myFile = SD.open("test.txt");
if (myFile) {
    Serial.println("test.txt:");

    // 读文件如果没有显示错误t:
    while (myFile.available()) {
      jeep=myFile.read();//每次只读一个字符
    //Serial.print(jeep);
       abcd();
      Serial.println("end");

    }
    // close the file:
    myFile.close();
} else {
    Serial.println("error opening test.txt");
}
}
void abcd(){
int k=0;
while (k !=1)
{
switch(jeep)
{
    case 'A':
      Serial.print("A");
      csjeep= ' ';
      cs19();
      csA=csjeep.toInt();
       Serial.println( csA);
      break;
    case 'B':
      Serial.print("B");
      csjeep= ' ';
      cs19();
      csB=csjeep.toInt();
       Serial.println( csB);
      break;
    case 'C':
      Serial.print("C");
       csjeep= ' ';
      cs19();
      csC=csjeep.toInt();
       Serial.println( csC);
      break;
    case 'D':
    Serial.print("D");
   csjeep= ' ';
      cs19();
      csD=csjeep.toInt();
       Serial.println( csD);
      break;
       case 'F':
    Serial.print("F");
   csjeep= ' ';
      cs19();
      csF=csjeep.toInt();
       Serial.println( csF);
      break;
       case '\n':
      jeep=myFile.read();
      break;
       case '%':
       k=1;
      break;
    }
}
csjeep= ' ';

}

void cs19(){
for(i=0;i<6;i++ )
{
   jeep=myFile.read();
//Serial.print( "jeep");
   // Serial.println(jeep);
   switch(jeep)
{
      case '0'...'9':
      csjeep=csjeep += jeep;
    //Serial.println( csjeep);
   //Serial.print( "i");
   //Serial.println( i);
      break;
      case 'A'...'Z':
       //Serial.println( "a-z");
      i=20;
      break;
      case '\n':
       //Serial.println( "\n");
      i=20;
      break;
    }
   }

}

   
void loop() {


}




上面的代码我用了很长时间才写出来。但是,太过复杂。有没有高手指点一下。能让他简单一些。代码的目的是将sd卡中的多种数据分开。
例子:
A45B34C34D223F344
A45B34C34D223F344
A233B123C123D324F3432
A33B23C66D89F897
%

分成
A45
B34
C34
D223
F344
数字为int。



http://www.arduino.cn/static/image/smiley/default/smile.gif

xuqin3 发表于 2017-1-3 12:28:41

漂亮的机器人

独行者 发表于 2017-1-3 15:00:36

好漂亮的机械臂,STC单片机行吗?谢谢分享!

Be1ieve 发表于 2017-1-3 17:38:40

arduino对字串的处理不知道够不够力,我认为原有的方式好一点
每次直接读入一整行,每行五个数字用一样的分隔符(例如,)区分

血阳 发表于 2017-1-3 19:30:30

机械臂是用3D打印做的吗?

mak4000 发表于 2017-1-5 09:43:52


机械臂是用3D打印做的

mak4000 发表于 2017-1-5 09:45:13

独行者 发表于 2017-1-3 15:00
好漂亮的机械臂,STC单片机行吗?谢谢分享!

应该可以的。控制不是太复杂

相忘江湖 发表于 2017-1-6 12:24:06

请问楼主机械臂是自己3D打印的吗?是自己做的3D打印机还是买的?能否贴上购买链接?我也想自己打印些零件用用

nick_zm 发表于 2017-1-6 16:21:06

某宝上有,300多好像,不过应该可以找到3d模型文件,但自己打好费时间

mak4000 发表于 2017-1-6 20:46:04

http://item.taobao.com/item.htm?id=526086980000
这是零件地址
希望有能做出更好控制系统的大神指点
页: [1]
查看完整版本: 用tf卡控制的机械手