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運用熟練。

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