作者: zonebaby 時間: 2009-8-17 10:18 標題: 新手試試 --- Arduino MAX485擴展板
係網上搵有關E塊板既幾條link,
http://item.taobao.com/auction/i ... 0638ac6d56089c7.htm
http://www.roboticfan.com/blog/u ... 8/20081072236.shtml
http://www.roboticfan.com/blog/u ... 0081111204543.shtml
睇完先至知,原來E塊板有以下特色:
1. 多左粒MAX485,可以提供半雙工RS485串行通訊。
2. 為左使到Arduino個TTL串行接口可以多選擇性,增加左3個2Way Jumpers去接駁Pin0-2。
3. 為Pin0-2提供空接,接到MAX485,接到APC/BT接口等三個選擇。
4. i/o提供配套既+V(Vcc/5v)同Gnd更方便接駁senor同配件。
5. 又特別把6個PWM接口放埋一齊,而且一樣提供配套既5v同Gnd,方便接駁性質相同配件
6. 提供額外可切換電源Vcc接口,方便插大電流配件在Pin0-13既配套Vcc,但唔包括PWM接口既配套5v。
7. 其中5V係同Arduino既5V相通,而Vcc在PWR_SEL短路時相通,開路時隔離。
8. 又有額外與Arduino既VIN相通既电源接口。
RS485 Select
對接口多些了解,就方便日後應用,就可以減少出錯。
另外因為無論使用MAX485或APC/BT接口都會佔用Pin0同1影嚮upload,
所以先要拔掉Jumpers,避免upload失敗。
或者先唔插塊MAX485擴展板,等upload完至插上去個Arduino道。
https://www.hkepc.com/forum/attachment.php?aid=928415&k=93e9c52d8cf21ad35c74d40529b2c0ad&t=1781376608&sid=9IDcUvp2rmK

作者: zonebaby 時間: 2009-8-17 10:22
有兩塊RS485擴展板,正好用來試下個RS485通訊。
測試方式係由一部Arduino連續不停地發送'A','B','C'。
其間用Led800H200L代表發送A,用Led500H500L代表發送B,用Led200H800L代表發送C。
Led將會接駁在pin12。
另一部Arduino會負責接收。
其間用Led1代表收到A,用Led2代表收到B,用Led1+Led1代表收到C。
Led1將會接駁在pin11,Led2將會接駁在pin13。
兩部Arduino將會由兩條電線分別A-A同B-B連接在一起。
RS485 Connect
https://www.hkepc.com/forum/attachment.php?aid=928416&k=76048a64152cf5914b1fc511f132233f&t=1781376608&sid=9IDcUvp2rmK

作者: zonebaby 時間: 2009-8-17 10:22
發送code
- int ledPin = 12;
- int EN = 2;
- void setup()
- {
- pinMode(ledPin, OUTPUT);
- pinMode(EN, OUTPUT);
- Serial.begin(19200);
- }
- void loop()
- {
- // send data
- digitalWrite(EN, HIGH);// enable send data
- Serial.print('A');
- digitalWrite(ledPin, HIGH);
- delay(800);
- digitalWrite(ledPin, LOW);
- delay(200);
- Serial.print('B');
- digitalWrite(ledPin, HIGH);
- delay(500);
- digitalWrite(ledPin, LOW);
- delay(500);
- Serial.print('C');
- digitalWrite(ledPin, HIGH);
- delay(200);
- digitalWrite(ledPin, LOW);
- delay(800);
-
- }
作者: zonebaby 時間: 2009-8-17 10:22
接收code
- int ledPin1 = 11;
- int ledPin2 = 13;
- int EN = 2;
- int val;
- void setup()
- {
- pinMode(ledPin1, OUTPUT);
- pinMode(ledPin2, OUTPUT);
- pinMode(EN, OUTPUT);
- Serial.begin(19200);
- }
- void loop()
- {
- // receive data
- digitalWrite(EN, LOW);//enable receive data
- val = Serial.read();
- if (-1 != val) {
- if ('A' == val) {
- digitalWrite(ledPin1, HIGH);
- delay(500);
- digitalWrite(ledPin1, LOW);
- delay(500);
- }
- if ('B' == val) {
- digitalWrite(ledPin2, HIGH);
- delay(500);
- digitalWrite(ledPin2, LOW);
- delay(500);
- }
- if ('C' == val) {
- digitalWrite(ledPin1, HIGH);
- digitalWrite(ledPin2, HIGH);
- delay(500);
- digitalWrite(ledPin1, LOW);
- digitalWrite(ledPin2, LOW);
- delay(500);
- }
- }
- }
作者: zonebaby 時間: 2009-8-17 10:22
E兩個Code都係放在examples\Max485入面....
RS485 Location
Compile同upload成功後,分別插番兩塊MAX485擴展板,再插番兩個USB就可以試機。
不過要小心唔好掉轉兩塊板。
插左電等一陣就會開始通訊,並開始由一部Arduino連續不停地發送ABCABCABC...到另一部Arduino。
小心觀察兩部Arduino既Led閃動時間同次序,同設計比較,就知到有冇問題喇.....
RS485 Success
MAX485擴展板試機成功.......
https://www.hkepc.com/forum/attachment.php?aid=928417&k=fa70dc18e174f9f736f7129680025e4f&t=1781376608&sid=9IDcUvp2rmK

https://www.hkepc.com/forum/attachment.php?aid=928418&k=77220784bb945abf98ba5b75dd456034&t=1781376608&sid=9IDcUvp2rmK

作者: zonebaby 時間: 2009-8-17 10:22
後記:暫時未有...
作者: Offer 時間: 2009-8-17 23:44
RS485 其理論的通訊距離是1200米
作者: zonebaby 時間: 2009-8-18 00:00
造有線遙控應該幾好用,再遅D會試下搞。

