LKYFLY0578 发表于 2013-4-27 22:09:36

求各位大神帮忙看一下我这个无线传输的程序哪里错了

发射板是arduino MEGA
接收板是arduino UNO
功能:用发射板上的电位器控制接收板上的舵机(模拟量控制)

//遥控器程序:
int dwq ;//定义电位器
void setup()
{
dwq=0;
Serial.begin(9600);    //设置串行通信的波特率
}
//主程序
void loop()
{
    dwq=analogRead(A1);   //读取电位器的模拟值以及电位器的模拟接口
    Serial.print(dwq);//向接收机发送数据
    delay(20);
}



//接收机程序:
#include <Servo.h>
int val;
int bl;
Servo servo1;//定义1#舵机

void setup()
{
bl=0;
servo1.attach(3);//设定1#舵机接入口(PWM~3)
Serial.begin(9600);//设置串行通信的波特率
}

//主程序
void loop()
{
if(Serial.available()>0)      //查询串口有无数据
{
    val=Serial.read();      //接收主机发送的数据
    bl = map ( val , 0 , 1023 , 0 , 179 );
    servo1.write( bl );   //1#舵机转动到读取的数据(角度)
    delay( 15 );         
}
}      


伯德 发表于 2013-4-27 22:18:55

没看到无线部分的代码啊。
用蓝牙还是wifi?

LKYFLY0578 发表于 2013-4-27 22:41:59

伯德 发表于 2013-4-27 22:18 static/image/common/back.gif
没看到无线部分的代码啊。
用蓝牙还是wifi?

用的是APC220串口的。没有代码

histamine 发表于 2013-4-28 10:50:42

Serial.print(val)是将数字转成字符串再发送出去

Serial.read()是读取一个字节的数据

所以LZ的程序跑不通

LZ可以将程序改成
发送方通过Serial.println(val)以字符串形式发送整形数值,
接收方通过Serial.parseInt()来读取字符串形式的整形数值

LKYFLY0578 发表于 2013-4-28 16:19:35

histamine 发表于 2013-4-28 10:50 static/image/common/back.gif
Serial.print(val)是将数字转成字符串再发送出去

Serial.read()是读取一个字节的数据


成功了,多谢大哥指点
页: [1]
查看完整版本: 求各位大神帮忙看一下我这个无线传输的程序哪里错了