使用 Arduino 串列传输数据
1、Arduino IDE 新建代码的方法,程序的上传方法,大家可以参考:
http://jingyan.baidu.com/article/414eccf6a8fb9f6b431f0ab1.html
来操作
2、从 Arduino 传送信息到电脑
输入代码:
void setup()
{
Serial.begin(9600);
}
int number = 0;
void loop()
{
Serial.print("The number is ");
Serial.println(number);
delay(500);
number++;
}
3、输出结果如下图所示
在程序中要使用串列通讯,必须先打开串口(Serial.begin(9600)),其中含有一个参数,表示传输速率,传输速度以波特率来计算,即每一秒所传送的位数。
4、从 Arduino 串列传输格式化的文字和数值到电脑
输入代码:
char chrValue = 65;
byte byteValue = 65;
int intValue = 65;
float floatValue = 65.0;
void setup()
{
Serial.begin(9600);
for(int i=0;i<2;i++)
{
Serial.print("chrValue: ");
Serial.print(chrValue);
Serial.print(" ");
Serial.write(chrValue);
Serial.print(" ");
Serial.println(chrValue,DEC);
Serial.print("byteValue: ");
Serial.print(byteValue);
Serial.print(" ");
Serial.write(byteValue);
Serial.print(" ");
Serial.println(byteValue,DEC);
Serial.print("intValue: ");
Serial.print(intValue);
Serial.print(" ");
Serial.print(intValue,DEC);
Serial.print(" ");
Serial.print(intValue,HEX);
Serial.print(" ");
Serial.print(intValue,OCT);
Serial.print(" ");
Serial.println(intValue,BIN);
Serial.print("floatValue: ");
Serial.println(floatValue);
delay(1000);
chrValue++;
intValue++;
}
}
void loop()
{
}
5、输出效果如下图所示
所以在程序中我们可以通过设置不同的打印格式,打印出不同的结果。
6、Arduino 接收串列传来的资料
输入代码:
const int ledPin = 13;
int blinkRate=0;
void setup()
{
Serial.begin(9600);
pinMode(ledPin, OUTPUT);
}
void loop()
{
if ( Serial.available())
{
char ch = Serial.read();
if(ch >= '0' && ch <= '9') //在 ASCII 码中 0-9 的值是 48 - 57
{
blinkRate = (ch - '0');
blinkRate = blinkRate * 100;
Serial.println(blinkRate);
}
}
blink();
}
void blink()
{
digitalWrite(ledPin,HIGH);
delay(blinkRate);
digitalWrite(ledPin,LOW);
delay(blinkRate);
}
7、程序效果:
通过串口输入 0 - 9 的数值,来设置 13 引脚 LED 不同的闪烁频率,如图所示,输入 1 时,闪烁频率为 100ms,以此类推,输入1-9,分别设置频率 100 - 900ms