# 第十二週週記
### 紅外線遙控馬達
> 廢話不多說先附上這次的程式碼:
```c++=
#include <IRremote.h>
int recieve = 3;
IRrecv IR(recieve);
int motorSpeed;
void setup() {
// put your setup code here, to run once:
IR.enableIRIn();
Serial.begin(9600);
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
motorSpeed = (int)(100);
}
void loop() {
// put your main code here, to run repeatedly:
if(IR.decode()){
Serial.println( IR.decodedIRData.decodedRawData, HEX );
if( IR.decodedIRData.decodedRawData == FF30CF ){
digitalWrite(8, LOW);
analogWrite(9, motorSpeed);
}
if( IR.decodedIRData.decodedRawData == FF18E7 ){
digitalWrite(8, HIGH);
analogWrite(9, motorSpeed);
}
if( IR.decodedIRData.decodedRawData == FF7A85){
digitalWrite(8, LOW);
analogWrite(9, 0);
}
delay(1000);
IR.resume();
}
}
```
>我們想讓遙控器按下1,2,3 時,分別讓馬達正轉、反轉、停止。
>但非常難過的是...我們嘗試了好久,卻一直**編譯錯誤**,也找不出問題在哪裡...
>
>附上努力過的證明嗚嗚嗚(八點做到十點:))
>
>
>[參考影片連結](https://www.youtube.com/watch?v=0DgALFDwouA)
### 為什麼使用digitalRead得到的值會是0-1023之間
> 其實不是很懂這個問題的意思,就我所知,digitalRead只能讀到HIGH跟LOW(數位訊號)...,所以指的應該是**analogRead**吧!
> 大一的時候有學過,因為Arduino能將讀到的電壓值轉換為**10個bit的數位訊號**,所以經過二進位轉換就是0~1023啦!
### 本週實作心得
>本週使用**直流馬達模組**來控制馬達的正反轉~這邊所說的直流馬達模組應該就是所謂的**H-Bridge**!之前我在週記中有介紹過!
>[這邊附上連結](https://hackmd.io/tmp9gS3PQ2qMoOsgm8c25Q)
>透過給H-Bridge接腳HIGH或LOW來控制它內部的開關已達到控制正反轉的效果。
>除此之外比較酷的地方就是cocoblockly居然也可以包function耶!好可愛!
### 小組進度報告
>專題名稱: 不要靠近我~留情面拒絕器
>各位是否曾經在酒局時被喝醉的怪人騷擾過?當有人一直想抱你時,你就會需要這台「不要靠近我~留情面拒絕器」!
>它會透過超音波感測器偵測你與人之間的距離,當有人離你太近的時候就會亮警示燈及發出警報聲,這時你就可以偷偷按下按鈕,將第三隻手舉起來拒絕他!相信對方喝很醉不會發現第三隻手很怪,只會覺得是有人幫你擋住了~
>不是我拒絕你的,是別人
>我還給你留了點情面,沒直接拒絕你
>草圖設計:
>
>
>材料:
>超音波感測器、按鈕、伺服馬達、蜂鳴器、LED
>實作進度:
>畫了接線圖跟買材料算嗎哈哈哈
>
>我們兩個有空的時間都剛好錯開嗚嗚嗚,約下課開始實作