极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 18657|回复: 9

用tf卡控制的机械手

[复制链接]
发表于 2017-1-3 11:41:50 | 显示全部楼层 |阅读模式
#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

本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2017-1-3 12:28:41 来自手机 | 显示全部楼层
漂亮的机器人
回复 支持 反对

使用道具 举报

发表于 2017-1-3 15:00:36 | 显示全部楼层
好漂亮的机械臂,STC单片机行吗?谢谢分享!
回复 支持 反对

使用道具 举报

发表于 2017-1-3 17:38:40 | 显示全部楼层
arduino对字串的处理不知道够不够力,我认为原有的方式好一点
每次直接读入一整行,每行五个数字用一样的分隔符(例如,)区分
回复 支持 反对

使用道具 举报

发表于 2017-1-3 19:30:30 | 显示全部楼层
机械臂是用3D打印做的吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-5 09:43:52 | 显示全部楼层

机械臂是用3D打印做的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-5 09:45:13 | 显示全部楼层
独行者 发表于 2017-1-3 15:00
好漂亮的机械臂,STC单片机行吗?谢谢分享!

应该可以的。控制不是太复杂
回复 支持 反对

使用道具 举报

发表于 2017-1-6 12:24:06 | 显示全部楼层
请问楼主机械臂是自己3D打印的吗?是自己做的3D打印机还是买的?能否贴上购买链接?我也想自己打印些零件用用
回复 支持 反对

使用道具 举报

发表于 2017-1-6 16:21:06 | 显示全部楼层
某宝上有,300多好像,不过应该可以找到3d模型文件,但自己打好费时间
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-1-6 20:46:04 | 显示全部楼层
http://item.taobao.com/item.htm?id=526086980000
这是零件地址
希望有能做出更好控制系统的大神指点
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-19 13:52 , Processed in 0.041367 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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