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