网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月13日漏签0天
arduino吧 关注:75,746贴子:231,105
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 2回复贴,共1页
<<返回arduino吧
>0< 加载中...

【求教】lz是刚开始学习的新手

  • 取消只看楼主
  • 收藏

  • 回复
  • kadingche494
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
请问两块Arduino怎么进行数据的传输(用24L01的方法已经成功尝试),我昨天在网上搜的方法其中有个是将两块板子的0 1端口 就是RX TX 交叉连接然后共地,我并没有成功实现 等下我张贴出代码,做这个原因是我最近在做的一个作业, A板子是记录传感器数据的 并且利用24L01发送给B板子 B板子要把数据接收之后进行处理(这都没问题),然后我在做B板子将处理后的数据发送给D板子(B板处理的数据要求再发送一次给另一块板子)的过程卡壳了...24L01好像不行 我百度了一下一个无线收发模块不能边收边发。。。我瞬间懵逼 于是想到在两个Arduino(B C两个板子)连接1台PC的情况下有没有办法让B板给C板子传输数据给C板子 然后C板再接一个24L01这样就不会冲突了。。 我百度到的是 将两块板子的0 1端口 就是RX TX 交叉连接然后共地 进行串口通讯 我不理解 然后代码也是照猫画虎的 代码我马上贴出来 希望有吧友帮我指出错误 感激不尽 或者有别的方法 欢迎赐教


  • kadingche494
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
B板子的代码:
#include <SPI.h>
#include <Mirf.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
#include <nRF24L01.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
int value;
int bright = 9;
float depth;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Mirf.spi=&MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"ZCCCC");
Mirf.payload = sizeof(value);
Mirf.channel=90;
Mirf.config();
Serial.println("Listening...");
pinMode(bright,OUTPUT);
pinMode(6,OUTPUT);
pinMode(3,OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
if(Mirf.dataReady()){
Mirf.getData((byte *)&value);
Serial.println(value);
if(value<552)
{
depth=0.0;
digitalWrite(6,HIGH);
delay(3000);
digitalWrite(6,LOW);
Serial.println("low");
}
if(value>=552&&value<597)
{
depth=maps(value,552,597,0.3,1.3);
}
if(value>=597&&value<602)
{
depth=maps(value,597,602,1.3,2.0);
}
if(value>=602&&value<628)
{
depth=maps(value,602,628,2.0,3.1);
}
if(value>628)
{
digitalWrite(bright,HIGH);
delay(3000);
digitalWrite(bright,LOW);
depth=
Serial.print("error\n");
}
else
{
Serial.print("Depth is:");
Serial.print(depth);
Serial.print("cm\n");
}
mySerial.println(depth);
}
}
float maps(float val,float b, float c,float dep1,float dep2)
{
float temp=((val-b)/(c-b))*(dep2-dep1)+dep1;
return temp;
}


2026-08-13 09:57:58
广告
不感兴趣
开通SVIP免广告
  • kadingche494
  • 锋芒毕露
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
C板子的代码:
#include <Mirf.h>
#include <MirfHardwareSpiDriver.h>
#include <MirfSpiDriver.h>
#include <nRF24L01.h>
#include <SPI.h>
#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 3); // RX, TX
double value;
void setup() {
// put your setup code here, to run once:
Mirf.spi=&MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte*)"ABCDE");
Mirf.payload=sizeof(value);
Mirf.channel=80;
Mirf.config();
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
if(Serial.available()>0)
value=(double)Serial.read();
Serial.println(value);
Mirf.setTADDR((byte*)"ZCCC");
Mirf.send((byte*)&value);
delay(1000);
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 2回复贴,共1页
<<返回arduino吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示