Arduino workshop in Macau
-
Upload
chieh-ming-chang -
Category
Devices & Hardware
-
view
283 -
download
7
Transcript of Arduino workshop in Macau
![Page 1: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/1.jpg)
2014.08.04~05 主辦:藝術無國界 贊助機構:澳門文化局 課程講師:張傑名(Jimmy)
ARDUINO 自造機工作坊
![Page 2: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/2.jpg)
![Page 3: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/3.jpg)
![Page 4: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/4.jpg)
![Page 5: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/5.jpg)
![Page 6: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/6.jpg)
What is Arduino?
![Page 7: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/7.jpg)
![Page 8: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/8.jpg)
Arduino robotics
![Page 9: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/9.jpg)
VertiBOT
![Page 10: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/10.jpg)
8x8x8 LED
![Page 11: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/11.jpg)
EyeWriter
![Page 12: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/12.jpg)
Secret Knock Door Lock
![Page 13: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/13.jpg)
Turn Signal Biking Jacket
![Page 14: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/14.jpg)
Botanicalls
![Page 15: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/15.jpg)
Sigh Collector
![Page 16: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/16.jpg)
Tweet a watt
![Page 17: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/17.jpg)
Bubblesteen
![Page 18: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/18.jpg)
Air Drums
![Page 19: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/19.jpg)
Cloud
![Page 20: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/20.jpg)
Flappy Bird in a Box
Mario in a Box
![Page 21: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/21.jpg)
Super Angry Birds
![Page 22: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/22.jpg)
Moody Useless Machines
![Page 23: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/23.jpg)
Knock Knock
![Page 24: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/24.jpg)
Moving Mario
![Page 25: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/25.jpg)
Pinokio
![Page 26: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/26.jpg)
Laser Harp
![Page 27: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/27.jpg)
Football Hero
![Page 28: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/28.jpg)
CirCAT Board
![Page 29: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/29.jpg)
MaKey MaKey
![Page 30: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/30.jpg)
Mimicry
![Page 31: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/31.jpg)
Reference
![Page 32: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/32.jpg)
What is Arduino?
Arduino is an open-source electronics platform based on easy-to-use hardware and software. It's intended for anyone making interactive projects.
![Page 33: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/33.jpg)
Massimo Banzi
David Cuartielles
![Page 34: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/34.jpg)
Board
http://arduino.cc/en/Main/ArduinoBoardUno
![Page 35: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/35.jpg)
Schematic
http://arduino.cc/en/Main/ArduinoBoardUno
![Page 36: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/36.jpg)
![Page 37: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/37.jpg)
![Page 38: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/38.jpg)
Types of Arduino
![Page 39: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/39.jpg)
Arduino UNO
![Page 40: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/40.jpg)
Arduino MEGA
![Page 41: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/41.jpg)
Arduino NANO
![Page 42: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/42.jpg)
Arduino MINI
![Page 43: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/43.jpg)
LilyPad
![Page 44: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/44.jpg)
Arduino Shield
![Page 47: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/47.jpg)
Ethernet
![Page 48: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/48.jpg)
Motor Shield
![Page 49: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/49.jpg)
Wave Shield
![Page 50: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/50.jpg)
RFID Shield
![Page 51: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/51.jpg)
XBee
![Page 52: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/52.jpg)
Extreme Sensor Kit
![Page 53: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/53.jpg)
![Page 54: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/54.jpg)
![Page 55: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/55.jpg)
![Page 56: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/56.jpg)
Where To Buy?
![Page 57: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/57.jpg)
Handbook
![Page 58: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/58.jpg)
Handbook
![Page 59: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/59.jpg)
Circuit Sketch
![Page 60: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/60.jpg)
Fritzing
![Page 61: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/61.jpg)
123D Circuits
![Page 62: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/62.jpg)
Electronics Toolkit
![Page 63: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/63.jpg)
![Page 64: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/64.jpg)
Specification
![Page 65: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/65.jpg)
![Page 66: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/66.jpg)
ATmega328 ( Single Chip Microcomputer )
Flash Memory : 32KB儲存⾃自定程式碼及開機程式
!SRAM : 2KB
暫存程式執⾏行中所需要的資料
EEPROM : 1KB 儲存程式永久資料
Clock Speed : 16 MHz
Analog Input x 6 pins Digital I/O Pins : 14
![Page 67: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/67.jpg)
One Chip Arduino
![Page 68: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/68.jpg)
PWM x 14 pins
Digital I/O x 14 pins
Analog Input x 6 pins
ATMEGA328P
Type-B USB
DC Jack
Input / Output
![Page 69: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/69.jpg)
Development Tools
![Page 70: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/70.jpg)
Lets Get Rocked…
![Page 71: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/71.jpg)
![Page 72: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/72.jpg)
http://arduino.cc/en/Main/Software
![Page 73: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/73.jpg)
![Page 74: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/74.jpg)
![Page 75: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/75.jpg)
![Page 76: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/76.jpg)
![Page 77: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/77.jpg)
ctrl + u
Done compiling
![Page 78: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/78.jpg)
Hello World
![Page 79: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/79.jpg)
communication
Analog I/O
Digital I/O重
點精 華
![Page 80: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/80.jpg)
Digital I/O x 14 pins
ATMEGA328P
![Page 81: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/81.jpg)
A.標準LED B.雙⾊色或三⾊色(RGB)LED C.閃光LED D.紅外線(IR)LED E.⻝⾷食⼈人⿂魚LED(⾼高功率LED) F.表⾯面黏著型LED(SMD) G.紫外線LED(⿊黑光LED)
LED
+ _
A B D E
F
+_
電路符號
![Page 82: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/82.jpg)
A.碳膜電阻 B.⽔水泥電阻 C.可變電阻(電位計) D.滑桿電阻
Resistor電路符號
A
B
C
D
![Page 83: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/83.jpg)
A.按鈕/鍵開關 B.⽔水銀開關 C.微動開關 D.震動開關 E.磁簧開關 F.搖頭開關
Switch/Button
電路符號
A
BC
D
E F
![Page 84: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/84.jpg)
數位輸出像電池⼀一樣可提供⾼高電位(正極)每個腳位最⼤大可輸出40mA 加⼊入負載元件連接⾄至地極便可形成⼀一個可控制的迴路
1 0 1 0 1 0 1 0
0V
5V
![Page 85: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/85.jpg)
Digital Output
int led = 13; !void setup() { pinMode(led, OUTPUT); } !void loop() { digitalWrite(led, HIGH); delay(1000); digitalWrite(led, LOW); delay(1000); }
![Page 86: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/86.jpg)
Digital Output
int LEDs[] = {9,11,13}; int total = sizeof(LEDs); int index = 0; !void setup() { for(int i=0; i<total; i++) { pinMode(LEDs[i], OUTPUT); } } !void loop() { for(int i=0; i<total; i++) { digitalWrite(LEDs[i], LOW); } digitalWrite(LEDs[index], HIGH); index++; if(index == total) index=0; delay(200); }
![Page 87: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/87.jpg)
7-Segment Display
共負或共正
共負或共正
共負:負極都接在⼀一起
共正:正極都接在⼀一起
![Page 88: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/88.jpg)
Digital Output
int LEDs[] = {2,3}; int total = sizeof(LEDs); int index = 0; !void setup() { for(int i=0; i<total; i++) { pinMode(LEDs[i], OUTPUT); } } !void loop() { for(int i=0; i<total; i++) { digitalWrite(LEDs[i], LOW); } }
共正極
![Page 89: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/89.jpg)
Shift Register
輸⼊入間隔
最後同時⼀一次輸出
74HC595
10110111 1 0 1 1 0 1 1 1
![Page 90: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/90.jpg)
Digital Output
int dataPin = 9; int gatePin = 11; int clockPin = 12; !void setup() { pinMode(dataPin, OUTPUT); pinMode(gatePin, OUTPUT); pinMode(clockPin, OUTPUT); } !void loop() { digitalWrite(gatePin, LOW); shiftOut(dataPin, clockPin, LSBFIRST, B00000011); digitalWrite(gatePin, HIGH); }
12
8
34 56 7B00000011LSBFIRST
18
![Page 91: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/91.jpg)
數位輸⼊入可提供低電位(接地)每個腳位最⼤大可輸⼊入40mA 通常與開關連接形成迴路 來控制輸出或通訊
1 0 1 0 1 0 1 0
0V
5V
![Page 92: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/92.jpg)
13
pin D11
9
按住亮,放開暗
![Page 93: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/93.jpg)
Digital Input
int led = 13; int send = 11; int receive = 9; !void setup() { pinMode(led, OUTPUT); pinMode(send, OUTPUT); pinMode(receive, INPUT); } !void loop() { digitalWrite(send, HIGH); boolean val = digitalRead(receive); if(val) digitalWrite(led, HIGH); else digitalWrite(led, LOW); }
![Page 94: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/94.jpg)
彈跳 (Bouncing)這是機械開關最常⾒見的問題 我們以為只有按⼀一次 但實際上會產⽣生多次按壓的現象 雖然發⽣生在幾微秒的時間內 卻⾜足以上微電腦記錄下來造成誤判
期望 00000001111111111111 實際 00000000100101111111
按下 放開按下
放開
![Page 95: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/95.jpg)
消除彈跳 (De-Bouncing)硬體解法:RC電路
軟體解法:當程式在讀取輸⼊入腳位的狀態並且偵測到變化時,在⼀一定時間的延遲後再進⾏行⼀一次讀取⼯工作。如果程式確認狀態有變化 則代表開關/按鈕已經改變了位置。
![Page 96: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/96.jpg)
Digital Input
int led = 13; int send = 11; int receive = 9; boolean oldState = LOW; boolean nowState = LOW; !void setup() { pinMode(led, OUTPUT); pinMode(send, OUTPUT); pinMode(receive, INPUT); oldState = digitalRead(receive); } !void loop() { digitalWrite(send, HIGH); boolean r1 = digitalRead(receive);
![Page 97: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/97.jpg)
Digital Input
if(r1 != oldState) { delay(20); boolean r2 = digitalRead(receive); if(r1 == r2) { oldState = r1; nowState = !nowState; digitalWrite(led, nowState); } } }
![Page 98: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/98.jpg)
按下,放開,亮按下,放開,暗按下,放開,亮
Practice 1
Practice 2按住三秒,閃爍三秒 像機器Reset情形
![Page 99: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/99.jpg)
Digital Input
#include <IRremote.h> int RECV_PIN = 13; IRrecv irrecv(RECV_PIN); decode_results results; !void setup() { irrecv.enableIRIn(); pinMode(9, OUTPUT); } !void loop() { if (irrecv.decode(&results)) { if(results.value == 16593103) digitalWrite(9, HIGH); else digitalWrite(9, LOW); } }
對準IR接收器 按下遙控器電源鍵
![Page 100: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/100.jpg)
Digital Input
int irRece = 10; int led = 13; !void setup() { pinMode(led, OUTPUT); pinMode(irRece, INPUT); digitalWrite(led, LOW); } !void loop() { boolean val = digitalRead(irRece); if (val) digitalWrite(led, HIGH); else digitalWrite(led, LOW); }
IR接收
IR發射
![Page 101: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/101.jpg)
ATMEGA328P
Analog Input x 6 pins
![Page 102: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/102.jpg)
類⽐比輸⼊入不同於數位訊號只有兩種狀態 類⽐比訊號為⼀一串連續的數值 在Arduino代表0V~5V之間可能的數值 透過內建A/D轉換器進⾏行取樣
![Page 103: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/103.jpg)
Potentiometerc
電流從A流⼊入,CW與CB流出,當W為量測腳位時 測量到的電阻值為AC
+ _
![Page 104: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/104.jpg)
int pot = 0; int led = 13; !void setup() { pinMode(led, OUTPUT); pinMode(pot, INPUT); Serial.begin(9600); } !void loop() { boolean val = analogRead(pot); Serial.println(val); digitalWrite(led, HIGH); delay(val); digitalWrite(led, LOW); delay(val); }
Analog Input
按下IDE右上⽅方 圖⽰示
將數據顯⽰示在Serial Monitor
![Page 105: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/105.jpg)
Analog Input
int pot = 0; int led = 13; !void setup() { pinMode(led, OUTPUT); pinMode(pot, INPUT); Serial.begin(9600); } !void loop() { boolean val = analogRead(pot); Serial.println(val); digitalWrite(led, HIGH); delay(val); digitalWrite(led, LOW); delay(val); }
將可以換成蜂鳴⽚片 觀察在Monitor的數值變化 (中間接正,外圈接負)
![Page 106: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/106.jpg)
PWM
橫軸為時間,analogWrite(64)代表在⼀一個⼯工作週期的時間中,⾼高電位(5V)的時間佔整個週期時間的25%, 所以平均來看像是提供了1.25V的電⼒力,因此利⽤用此概念,我們可以⽤用來控制LED的亮度或⾺馬達的轉速
t
t
t
t
t
![Page 107: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/107.jpg)
Analog Outputint analogOutPin = 11; !void setup() { pinMode(analogOutPin, OUTPUT); } !void loop() { analogWrite(analogOutPin, 0); delay(500); analogWrite(analogOutPin, 64); delay(500); analogWrite(analogOutPin, 128); delay(500); analogWrite(analogOutPin, 255); delay(500); analogWrite(analogOutPin, 128); delay(500); analogWrite(analogOutPin, 64); delay(500); }
最亮
![Page 108: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/108.jpg)
Analog Output
#include <Servo.h> Servo myservo; int pot = 0; int val; !void setup() { myservo.attach(9); } !void loop() { val = analogRead(pot); val = map(val, 0, 1023, 0, 179); myservo.write(val); delay(15); }
讀⼊入類⽐比訊號數值介於0~1023,透過map⽅方法 將數值依照⽐比例轉換為0~179數值
![Page 109: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/109.jpg)
ATMEGA328P
serial communication
![Page 110: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/110.jpg)
Serial Communication
int led = 11; !void setup() { pinMode(led, OUTPUT); Serial.begin(9600); digitalWrite(led, LOW); } !!void loop() { if(Serial.available()>0) { int val = Serial.read(); Serial.println(val); if(val==97) { digitalWrite(led, HIGH); } } }
代表有收到資料
傳送過來的數值會轉換為 ascii碼,因此97代表⼩小寫‘a’
![Page 111: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/111.jpg)
Serial Communication
利⽤用Aeduino上的Serial Library我們可以很容易的利⽤用任何⼀一種⼯工具語⾔言來跟Aeduino進⾏行資料傳輸與溝通,以下我們將透過Apache來架設網⾴頁伺服器,並利⽤用PHP的Serial⽅方法與Aeduino進⾏行溝通 !⾸首先安裝XAMPP這套整合軟體,其內建Apache + MySQL + PHP,可以幫助我們輕鬆地建⽴立網⾴頁開發環境,接著只需要三⾏行PHP程式碼我們就透過網⾴頁跟Arduino溝通囉!
XAMPP https://www.apachefriends.org/zh_tw/index.html
=
![Page 112: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/112.jpg)
Serial Communication
XAMPP安裝完成後,打開manager-osx管理介⾯面中的Manage Servers並按下右⽅方Start鍵,接著在瀏覽器網址列地⽅方輸⼊入127.0.0.1或localhost,若有看到XAMPP歡迎畫⾯面代表你安裝成功囉! !!!!!!若Apache Web Server無法啟動,請打開MAC終端 機輸⼊入sudo apachectl stop
![Page 113: Arduino workshop in Macau](https://reader034.fdocument.pub/reader034/viewer/2022042607/558a3f1bd8b42a17788b4759/html5/thumbnails/113.jpg)
Serial Communication
接著我們在應⽤用程式找到XAMPP資料夾,其中htdocs中我們可以看到⼀一個名為index.php的檔案,⽤用⽂文字編輯器打開index.php,刪除所有內容後輸⼊入以下程式碼並存檔: !<?php $fp =fopen("連接埠", "w"); fwrite($fp, 'a'); fclose($fp); ?> !
window作業系統在連接埠填⼊入如”COM?” mac作業系統則填⼊入如”/dev/tty.usbmodem?”
最後打開瀏覽器並在網址列中輸⼊入127.0.0.1,此時網⾴頁會透過Serial傳送⼀一個⼩小寫的’a’字元給Arduino,Arduino在接收到資料後便會將LED點亮