低温摩托 低温摩托
关注数: 0 粉丝数: 8 发帖数: 99 关注贴吧数: 1
请教NRF24串口屏问题 本人想用串口屏和NANO做主机用NRF24下建立两个从机。让从机控制电机等设备。现在我硬件弄好了。发现单独运行串口屏和NANO通讯是正常的。比如我用串口屏通过NANO控制电机是正常的。就是让陶晶驰i屏幕发送屏幕上滑块位置数据控制电机角度。让NRF24主机副机通讯主机用电位器控制副机电机角度也正常。就是加了串口屏后就不正常。 下面是串口屏编辑界面和屏幕串口输出数据(a1对应滑块位置数字) :covx t0.txt,h0.val,0,0 (把文本t0的txt十进制数字字符串变量转换为数值并赋值给滑块h0的val数值变量, 长度为自动)下面是我的主副机程序,本人编程小白痴一个。烦请各位高人嘴下留情别见笑。还请高人多多指点谢谢。 主机程序 #include <RF24.h> #include <RF24Network.h> #include <SPI.h> RF24 radio(7, 8); // CE, CSN RF24Network network(radio); // Include the radio in the network const uint16_t this_node = 00; // Address of this node in Octal format ( 04,031, etc) const uint16_t node01 = 01; String dataIn = ""; int angleValue =0; void setup() { Serial.begin(9600); SPI.begin(); radio.begin(); network.begin(90, this_node); } void loop() { if ( Serial.available() > 0) { dataIn = Serial.readString();} if (dataIn.startsWith("a1")) { String dataInS = dataIn.substring(2, dataIn.length()); // 如果开头是a1切取字符串开始2位后 delay (5); network.update(); angleValue = dataInS.toInt(); RF24NetworkHeader header(node01); // (Address where the data is going) bool ok = network.write(header, &angleValue, sizeof(angleValue)); } } 副机程序 #include <RF24.h> #include <RF24Network.h> #include <SPI.h> #include <Servo.h> RF24 radio(7, 8); // CE, CSN RF24Network network(radio); const uint16_t this_node = 01; Servo myServo; void setup() { Serial.begin(9600); myServo.attach(5); SPI.begin(); radio.begin(); network.begin(90, this_node); //(channel, node address) } void loop() { network.update(); while ( network.available() ) { // Is there any incoming data? RF24NetworkHeader header; unsigned long angleValue; network.read(header, &angleValue, sizeof(angleValue));// Read the incoming data myServo.write(angleValue); } } 麻烦大师指点迷津了,谢谢。
1 下一页