W5500模块、 Ethernet ShieldW5100模块和P3022-V1-CW360角度传感器在单片机arduino调试

1.1、我们在使用W5500模块时,首先要了解这个模块的基本特性。

该模块采用WIZNET公司最新型号W5500以太网芯片,模块通讯稳定、可靠。可以根据用户的需求个性化定制。提供资料全,全套开发文件。
在这里插入图片描述

1.2、其产品特性:

  • 集成全硬件TCP/IP协议栈,无需编写以太网底层驱动即可实现TCP/IP协议;
  • 支持TCP、UDP、IPv4、ICMP、ARP、IGMP以及PPPOE协议;
  • 支持10/100Mbps传输速率,支持自动协商,支持休眠模式和网络唤醒;
  • 内部集成32Kbyte片上缓存供以太网包处理;
  • 支持8个独立端口同时工作;
  • 模块支持5V/3.3V供电,方便用户用于不同的单片机系统,同时3.3V供电还有防反接避 免损坏产品;
  • SPI协议,支持高达80MHz的速率;
  • 修改后的SPI接口定义,与各种常见MCU的SPI接口顺序一致,无需交叉接线(别的模块需交叉);
  • 钽电容滤波,保证了电源的稳定;
  • 全贴片元件设计,使用SMD贴片晶振,最大程度保证产品的质量;
  • 带电源指示灯、ACT、LINK指示灯反映产品工作状态。

1.3、Ethernet Shield W5100状态指示灯 (LEDs)功能如下:
在这里插入图片描述

  • PWR: 表示 Arduino 控制板和 Ethernet Shield 已经上电
  • LINK: 网路指示灯,当灯号闪烁时代表正在传送或接收资料
  • FULLD: 代表网路连线是全双工
  • 100M: 表示网路是 100 MB/s (相对于 10 Mb/s)
  • RX: 接收资料时闪烁
  • TX: 传送资料时闪烁
  • COLL: 闪烁时代表网路上发生封包碰撞的情形 (network collisions are detected)

1.4、arduino程序

#include <SPI.h>
#include <Ethernet.h>
 
// 设置MAC地址
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
// 设置IP地址,这个根据当地网络情况设置,要在同一局域网下
IPAddress ip(192, 168, 123, 231);
//可选择设置DNS
//IPAddress dnServer(168, 95, 1, 1);
// 可选择设置
IPAddress gateway(192, 168, 0, 1);
// 设置掩码
IPAddress subnet(255, 255, 255, 0);
// 初始化Ethernet程序,HTTP默认为80(我们也可用其他端口,需做不同处理)
EthernetServer server(80);
 
void setup() {
// 初始化串口通讯
  Serial.begin(9600);
 
  // 开始ethernet连接,并作为服务器初始化,开始连接ethernet
Ethernet.begin(mac, ip, gateway, subnet);
server.begin();
  Serial.print( "server is at " );
  Serial.println(Ethernet.localIP());
}
 
void loop() {
  // 监听客户传来的数据
  EthernetClient client = server.available();
  //如果有新连接请求
  if (client) {
    Serial.println( "new client" );
    // 只要通讯连接中.....
    while (client.connected()) {
      //确定客户端发出请求
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
          client.println( "HTTP/1.1 200 OK" );
          client.println( "Content-Type: text/html" );
          client.println( "Connection: close" );
          client.println();
          client.println( "<!DOCTYPE HTML>" );
          client.println( "<html><head>" );
          client.println( "<meta charset=\"utf-8\" />" );
          client.println( "<title>Arduino 通信</title>" );
          client.println( "</head><body>" );
          client.println( "<h1>通信连接成功</h1>" );
          client.println( "</body></html>" );
          
          break ;
        }
    }
    // 等待浏览器接收数据
    delay(1);
    // 断开连接
    client.stop();
    Serial.println( "client disonnected" );
  }
}

1.5、执行结果
首先在windows的dos窗口下ping一下ip:
在这里插入图片描述
然后看浏览器是否通信成功:
在这里插入图片描述
2、另一种设置方式,必须的设置:电脑端的设置方法

2.1.打开网络连接,看网络配置器
在这里插入图片描述
2.2.右键网络配置器,找其属性
在这里插入图片描述
2.3.打开属性,选择Internet协议版本4(TCP/IPv4)
在这里插入图片描述
2.4.设置IP地址,子网掩码、默认网关,进行对应程序设置:
在这里插入图片描述
2.5实验效果就是打开浏览器,输入192.168.123.231回车查看

3.P3022-V1-CW360模块的学习与调试
3.1对该模块的基本了解
在这里插入图片描述
3.2工作原理

0-360度的工作描述:
在这里插入图片描述
0-180度的工作描述:
在这里插入图片描述
0-90度的工作过程:
在这里插入图片描述
3.3 arduino代码:

/*
Connection:
LM35        UNO
Vs <------> 5V
GND <-----> GND
Vout <----> A0
*/
const int PIN_AD = A0; //pin connection
float sensorVolt; //unit: mV
float angle; //unit: centigrade

void setup()
{ sensorVolt =0;
  pinMode(PIN_AD,INPUT);
  Serial.begin(115200); //initialize serial communication
}

void loop()
{
  sensorVolt = analogRead(PIN_AD); //转后的电压值
  //Serial.print(analogRead(PIN_AD));
  angle = sensorVolt*(360/1023.0);  
  Serial.print("angle: "); //print the result
  Serial.print(angle);    
  Serial.println(" 度"); 
    
  delay(1000); //delay 1s
}

执行结果:
在这里插入图片描述
3.4再测试一下arduino UNO的AD采样率:
代码如下:

void setup() {
  // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  analogReference(INTERNAL); //调用板载1.1V基准源
}

void loop() {
  int i;
  float voltage;
  int sensorValue;
  unsigned long elsp=millis();
  for (i=0;i<10000;i++)
    {
      // read the input on analog pin 0:
      sensorValue = analogRead(A0);
    }  
  Serial.println(millis()-elsp);
  delay(10000);
}

执行结果:
在这里插入图片描述
运行结果是1120左右,也就是就是说采样10000次用时1.12s,采样频率大约是 8928.57Hz (次/秒)

4.总结
熟悉一下W5500模块、Ethernet ShieldW5100模块和 P3022-V1-CW360角度传感器的基本性质,将其基本调通;我们也可以将角度的值经过w5500模块进行传输数据。

5.安排
当购买的激光雷达到了后,将角度传感的值与激光雷达测得距离值,组合到一个可以采集二维数据的数据结构,即有角度也有距离。还有将w5500的TCP和UDP运用熟练。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章