[操作疑難] Arduino 問題

本帖最後由 C_Law 於 2015-6-5 17:44 編輯

好耐無玩 Arduino,連之前從官網 D/L 的 Arduino IDE 都 Delete 了,已經不記得以前用那個版本。

最近搵返塊 UNO 出來玩,從官網 D/L 了 1.6.4,但發現有問題。

開著電腦入到 Windows 後,先將塊 UNO 駁去電腦的 USB Port,入去裝置管理員見到塊 UNO 個 Com port 出現了,之後才開 Arduino 個 IDE,但第一次開個 IDE,Tools 下面的 Port 都變灰(上半幅圖),不能揀我塊 UNO 個 Com port。但我另外用其它程式去 Read/Write 塊 UNO 個 Com port 又正常同塊 UNO 溝通得到。

Arduino1.gif
2015-6-5 17:29


係都要關閉個 IDE 再開多次先至正常(下半幅圖)。就算之後又關閉 IDE 又拔走塊 UNO,之後再插過塊 UNO 再開 IDE,都是正常。

但如果我 Reboot 過部電腦,又或者 Hibernate 後再 Wakeup(無論有無拔走塊 UNO 再插過),第一次開個 IDE 都是 Port 變灰,要關閉個 IDE 再開多次!

記憶中,以前玩塊 UNO 都無這個問題。是 1.6.4 這個版本問題還是我部電腦或者塊 UNO 有問題?

ps. 部電腦是 32bit 的 XP。

試試用 1.6.4 的 driver 更新個 com port

TOP

回覆 2# skhui2005

Thanks~~~~

不過結果都係一樣,第一次開 IDE 一定係個 Port 變灰,要關閉再開多次先至正常!

我諗都係放棄去搵原因,反正只是小問題,開第二次及之後都一定得。

TOP

回覆 3# C_Law

我想正常而言,arduino 的 com port 不會是 com 1,不妨試試:

1. 在 device manager 中,解除 com 1 的安裝,並刪除相關的 driver

2. 掃瞄硬體一次,arduino 的 com port 應該出現感嘆號

3. 用 1.6.4 的 arduino.inf 更新這個 com port

TOP

本帖最後由 C_Law 於 2015-6-7 02:00 編輯

問題似乎同塊 UNO 的 Driver/Com port no.  無關。

部機有其它 Com port(藍芽、FaxModem...etc),照計開 Arduino 個 IDE 後 Click Tools→Port 應該顯示到所有 Com port,但就算我無駁塊 UNO 去電腦,第一次開個 IDE 都係整個 Port 變灰(Click 落去 Port 係不會再彈出個 Sub menu),要第二次開個 IDE 先至 Click 到 Port 個 Sub menu 見到其它 Com port。

第二次(或再之後)開個 IDE,如果本來無駁塊 UNO,Click 開 Port 個 Sub menu 係不會見到 UNO 個 Com port no.,但會見到其它 Com port。在不關閉 IDE 的情況下駁塊 UNO 上去,再 Click 開 Port 個 Sub menu 就見到 UNO 個 Com port no.。

TOP

問題似乎同塊 UNO 的 Driver/Com port no.  無關。

部機有其它 Com port(藍芽、FaxModem...etc),照計開 A ...
C_Law 發表於 2015-6-7 01:52



    你看看有多少個COM PORT被註冊了,REGEDIT到註冊表刪了可能就好了

TOP

似乎是之前用緊部電腦(XP Home 32bit)的問題。

剛有時間將個 Adruino 1.6.4 裝入另一部行 Win7 Ultimate 32bit 的電腦。反覆試了 N 次 Reboot 或  Hibernate 後再 Wakeup,次次都係第一次開個 IDE 就正常可以揀 Port。

TOP

本帖最後由 C_Law 於 2015-6-14 17:03 編輯

應該是原本第一部電腦有問題。

昨晚的第二部電腦,另外還有個 HDD 裝了 XP Pro 32 bit。剛才 Boot 入第二部電腦個 XP,都係第一次開 Arduino 個 IDE 就可以正常揀 Port。

亦解決了另一個問題。

之前在第一部電腦試玩這個 IRremote library:
https://github.com/shirriff/Arduino-IRremote
我用原裝的 Library 行 Example 入面的 IRrecvDump 和 IRsendDemo,都可以正常 Upload 上去塊 UNO,亦正常 Decode 到接收的訊號,也正常發射出訊號。

不過原裝 Library 久缺 Sharp Protocol 的 Decoder(奇怪,本身個 Library 入面的 sendSharp 提到係發射 decodeSharp 得出的 Data,但係個 Library 入面根本無 decodeSharp ),我參巧其它 Protocol  的 Decoder,修改了 IRremote.cpp 和 IRremote.h,加入 Sharp 的 Decoder,用新的 Library 再 Upload  IRrecvDump,正常用到。但係 Upload IRsendDemo 的時候就出 Error,之前搞了幾晚都不知在哪出錯。

剛才在第二部電腦的 Win7 再試下,用修改過的 Library,IRrecvDump 和 IRsendDemo 都正常 Upload 到同用到!

TOP

應該是原本第一部電腦有問題。

昨晚的第二部電腦,另外還有個 HDD 裝了 XP Pro 32 bit。剛才 Boot 入第二 ...
C_Law 發表於 2015-6-14 16:15


哩個 project 係咪只係 transmit 入面幾個已知的 protocol?

TOP

本帖最後由 C_Law 於 2015-6-16 18:20 編輯
哩個 project 係咪只係 transmit 入面幾個已知的 protocol?
IanW 發表於 2015/6/16 13:50


用 sendRaw 可以自定發射的 Pulse width。例如:
  1. #include <IRremote.h>
  2. // IR LED must be connected to Arduino PWM pin 3
  3. int GndPin = 4;                  // Gnd pin for IR LED
  4. IRsend irsend;

  5. void setup()
  6. {
  7.   pinMode(GndPin, OUTPUT);               //Gnd
  8.   digitalWrite(GndPin, LOW);

  9.   unsigned int buf[] = {3000, 4000, 5000, 6000, 7000};
  10.   irsend.sendRaw(buf, 5, 38);
  11. //  Serial.begin(9600);
  12. }

  13. void loop() {
  14. }
複製代碼
irsend.sendRaw(buf, 5, 38) 的 buf 是 Send 出去的 Mark 和 Space width in us,之後的 5 係一共 5 個 Mark + Space(頭尾都是 Mark,所以應該是單數),最後的 38 是 Carrier freq in kHz。用 WinLIRC 個 Audio receiver 錄到個 Signal:
Clipboard01.gif
2015-6-16 17:18


不過縮細個 width 10 倍再試過(ie. 將 buf 改為 300,400,500,600,700),結果錄出來個訊號變成:
Clipboard02.gif
2015-6-16 17:18


每個 Mark 的長度比我輸入的數值多了約 100us,每個 Space 又短了約 100us,試下將 buf 改為(200,500, 400, 700, 600),都未係好接近心目中想要的(300,400,500, 600,700):
Clipboard03.gif
2015-6-16 18:09


睇怕要自己再 fine tune 下數值。

不過,我因為手頭上無 IR LED,以上測試係用粒普通紅色 LED 頂檔,測試時候要將 WinLIRC 個 Audio receiver 放到好近粒紅色 LED 先至收得到。可能因此影響到接收到的 Pulse width。

TOP