极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

楼主: Ansifa

Arduino学习笔记A6(补充) - 在串口读取多个字符串,并且转换为数字数组

  [复制链接]
发表于 2013-3-16 22:56:05 | 显示全部楼层
我想知道2问题:
回复 支持 反对

使用道具 举报

发表于 2013-3-16 22:57:29 | 显示全部楼层
1.PWM设置引脚输出是否可以不要
回复 支持 反对

使用道具 举报

发表于 2013-3-16 23:00:10 | 显示全部楼层
2.if(mark==1) 是否与前面例子中 if(comdata.length()>0)等同

     另外ctrl+回车就发帖了,怎么不能编辑修改,造成连发三次。
回复 支持 反对

使用道具 举报

发表于 2013-3-21 08:51:53 | 显示全部楼层
感谢楼主,收藏!
回复 支持 反对

使用道具 举报

发表于 2013-4-1 20:12:10 | 显示全部楼层
目前通过自学遇到以下几个问题,求高手帮帮忙,在此先谢谢了~~
1.通过LABVIEW 的布尔按钮控制ARDUINO的D2-D13上LED灯的开关;
2.通过ARDUINO的D2-D13的开工量控制LABVIEW的显示状况;(比如D2接按钮1 ,控制D8接的LED灯,当按钮1按下时,LED灯亮,LABVIEW 要显示)
   以上2个问题我纠结了好久,一直没有调试成功
回复 支持 反对

使用道具 举报

发表于 2013-5-7 14:59:59 | 显示全部楼层
这个不错,我喜欢收藏了。{:soso_e179:}
回复 支持 反对

使用道具 举报

发表于 2013-6-4 01:25:06 | 显示全部楼层
飞翔的红猪 发表于 2012-6-24 10:39
这个程序处理的是字节型的数据,用于控制或者显示到LCD都还简单的,但是如果接收传送的是整形乃至浮点的时候 ...

简单,2个方式,一个是按照科学计数法来玩, 比如123456=1.23456*100000 你传输可以传输
123456,100000; 处理的时候把第一组数据接到之后第一位数前面加小数点*第二组数
还有一种就是第二位标定小数点位置(可以约定小数位 比如10带代表前面是整数  那么9就说明1位小数 0就意味着9位小数,11代表后面1个0) 自己按照需求就好了嘛。这样搞法 可以标定很小的小数
回复 支持 反对

使用道具 举报

发表于 2013-6-10 17:42:36 | 显示全部楼层
正在发愁呢,多谢楼主的帖子
回复 支持 反对

使用道具 举报

发表于 2013-7-11 21:47:49 | 显示全部楼层
坏鸟 发表于 2011-12-2 01:56
处理PC串口输入数据的方法真的有很多很多种.......我自己就研究了三种。

/*
  Reading a serial ASCII-encoded string.

This sketch demonstrates the Serial parseInt() function.
It looks for an ASCII string of comma-separated values.
It parses them into ints, and uses those to fade an RGB LED.

Circuit: Common-anode RGB LED wired like so:
* Red cathode: digital pin 3
* Green cathode: digital pin 5
* blue cathode: digital pin 6
* anode: +5V

created 13 Apr 2012
by Tom Igoe

This example code is in the public domain.
*/

// pins for the LEDs:
const int redPin = 3;
const int greenPin = 5;
const int bluePin = 6;

void setup() {
  // initialize serial:
  Serial.begin(9600);
  // make the pins outputs:
  pinMode(redPin, OUTPUT);
  pinMode(greenPin, OUTPUT);
  pinMode(bluePin, OUTPUT);

}

void loop() {
  // if there's any serial available, read it:
  while (Serial.available() > 0) {

    // look for the next valid integer in the incoming serial stream:
    int red = Serial.parseInt();
    // do it again:
    int green = Serial.parseInt();
    // do it again:
    int blue = Serial.parseInt();

    // look for the newline. That's the end of your
    // sentence:
    if (Serial.read() == '\n') {
      // constrain the values to 0 - 255 and invert
      // if you're using a common-cathode LED, just use "constrain(color, 0, 255);"
      red = 255 - constrain(red, 0, 255);
      green = 255 - constrain(green, 0, 255);
      blue = 255 - constrain(blue, 0, 255);

      // fade the red, green, and blue legs of the LED:
      analogWrite(redPin, red);
      analogWrite(greenPin, green);
      analogWrite(bluePin, blue);

      // print the three numbers in one string as hexadecimal:
      Serial.print(red, HEX);
      Serial.print(green, HEX);
      Serial.println(blue, HEX);
    }
  }
}

楼主的思路不错,但以上是IDE自带的例子,比楼主简单的多。





回复 支持 反对

使用道具 举报

发表于 2013-9-14 20:32:44 | 显示全部楼层
受教了,正遇到这个问题呢,楼组很强大!
回复 支持 反对

使用道具 举报

发表于 2013-9-14 23:01:26 | 显示全部楼层
好啊啊啊啊啊
回复 支持 反对

使用道具 举报

发表于 2013-10-30 22:57:02 | 显示全部楼层
坏鸟 发表于 2011-12-2 01:56
处理PC串口输入数据的方法真的有很多很多种.......我自己就研究了三种。

请问:
我的PC端发出来的是hex格式的数据,我的数据是“7F 00 # 10 80 01 # 2F # 2F # 00 # 7F”这么一个格式,#号代表的位数不一定,我应该怎么写代码,才能把这些#代表的东西取出来呢?
看了很多资料,都没有一个头绪。
回复 支持 反对

使用道具 举报

发表于 2013-12-23 21:21:37 | 显示全部楼层
xietu 发表于 2012-8-18 21:53
//我最近正好有用到这个代码,很感谢,不过我需要输入负数,所以加了些改动;我刚接触arduino,编码还不熟, ...

++j;和J++ 最后J的值都+1的
回复 支持 反对

使用道具 举报

发表于 2014-5-9 22:26:37 | 显示全部楼层
读取串口数据真的很难啊
回复 支持 反对

使用道具 举报

发表于 2014-5-13 22:47:39 | 显示全部楼层
顶!!!!!!!!!!!!!!!!!
回复 支持 反对

使用道具 举报

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

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

Archiver|联系我们|极客工坊

GMT+8, 2024-4-20 15:39 , Processed in 0.041509 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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