我整理了一份介紹 Arduino 的簡報,這份簡報說明什麼是 Arduino、各種 Arduino 板子與相容板、各式各樣的擴充模組與感測器,最後簡介 Arduino 的各式應用,希望可以讓更多朋友知道 Arduino 能做什麼應用。
- Arduino 教學系列
- Arduino 入門教學
- TOC
- Arduino Video Workshop
- 認識 Arduino
- 準備開發環境
- Lab1 Blink
- Lab2 Button
- Lab3 Fade
- Lab4 potentiometer
- Lab5 LED Bar Graph
- Lab6 Buzzer
- Lab7 Seven Segments
- Lab8 Photocell
- Lab9 2x16 LCD
- Lab10 SHT15 Humidity and Temperature Sensor
- 製作一個溫溼度記錄器(三部曲)
- Lab11 74hc595
- Lab12 Cascading 74hc595
- Lab13 74hc595 and 7 Segs
- Lab14 74hc595 and HD44780
- Lab15 4-digit Seven Segments
- Lab16 Servo
- Lab17 Photocell and Servo
- Lab18 3x4 Keypad
- Lab19 5x7 LED Matrix
- Lab20 PIR
- Lab21 Relay
- IRRemote 紅外線遙控教學
- Amarino: Android meets Arduino
- Bluetooth
- Arduino Keyboard
- V-USB
- ISP
- Arduino 入門教學
2012年4月29日 星期日
2012年4月15日 星期日
如何讓 IRRemote 支援 ATmega2560?
要怎麼讓 IRRemote Library 可以支援 ATmega2560 呢?方法是編輯 IRRemoteInt.h,搜尋底下字串:
defined(__AVR_ATmega1280__)
把所有出現的地方改成這樣:
defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
或是直接用我已經改好的版本:
除了更新 Library 外,還有一件事要特別注意,當你在使用紅外線發射功能的時候,紅外線發射器必須接到 ATmega2560 的 pin 9 才行。
▲ Arduino Uno 或 Duemilanove 的板子: 紅外線發射器要接到 pin 3
▲ Arduino Mega 1280 或 Mega 2560 的板子: 紅外線發射器要接到 pin 9
參考資料
Arduino 1.0 的 ArduinoISP 無法運作的解法
Arduino-0022 的 ArduinoISP 我已經用了很久都沒碰到問題,在升級到 Arduino 1.0 後,我發現當我用 Arduino 1.0 上傳 ArduinoISP 後,居然沒辦法燒錄 target board,每次都會出現這個錯誤訊息:
avrdude: stk500_paged_write(): (a) protocol error, expect=0x14, resp=0x64
avrdude: stk500_cmd(): programmer is out of sync
如果切回 Arduino-0022 然後重新上傳 ArduinoISP,就又可以燒錄 target board。
比較 Arduino-1.0 和 Arduino-0022 兩個版本的 ArduinoISP,程式碼是一樣的,所以很可能是 Arduino-1.0 的 library 做了什麼改變導致 ArduinoISP 無法正常運作。果然,Issue 661 提到了這個問題,正是因為 Arduino-1.0 HardwareSerial.cpp 把 SERIAL_BUFFER_SIZE 從原來的 128 改成 64,導致 ArduinoISP 發生 buffer overflow。