200 likes | 366 Views
赤外線の送信. m1205102 武田真実 g2108030 中村圭祐 g2107022 田中大輔. 講義の内容. 赤外線 LED を使って, TV リモコンと同じ信号を送信 PWM とタイマ割り込みを使用. 赤外線とは. 電磁波の帯域. ガンマ線. Ⅹ 線. 紫外線. 可視光線. 赤外線. マイクロ波. 電波. 近赤外線 ( TV ,エアコンの リモコンで使用). 遠赤外線 ( コタツなど ). リモコン信号のフォーマット. 赤外線リモコンのスイッチを押すと次のようなフォーマットで赤外線 LED を点滅し信号を送信します .
E N D
赤外線の送信 m1205102 武田真実 g2108030 中村圭祐 g2107022 田中大輔
講義の内容 • 赤外線LEDを使って,TVリモコンと同じ信号を送信 • PWMとタイマ割り込みを使用
赤外線とは 電磁波の帯域 ガンマ線 Ⅹ線 紫外線 可視光線 赤外線 マイクロ波 電波 近赤外線 (TV,エアコンの リモコンで使用) 遠赤外線 (コタツなど)
リモコン信号のフォーマット • 赤外線リモコンのスイッチを押すと次のようなフォーマットで赤外線LEDを点滅し信号を送信します . • リーダー部(9ms,4.5ms) • カスタム,反転カスタム,データ,反転データ,ストップビット リーダー部 反転データコード (8ビット) ストップ ビット カスタムコード (8ビット) 反転カスタムコード (8ビット) データコード (8ビット) HIGH LOW 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 1 0 1 1 1 1 1 0
リモコン信号のフォーマット • リーダー部 • リモコン信号の確認 • カスタムコード,反転カスタムコード • メーカーごとに振り分けられている.反転は確認用.反転する場合,カスタムコードの0を1に1を0にする. • データコード,反転データコード • ボタンごとに振り分けられている.反転は確認用.反転する場合,データコードの0を1に1を0にする. • ストップビット • リモコン信号の終了部分
リモコン信号のビットレート • 0と1の判定は,区切り信号の後のLOWの時間による. 0.56ms 0.56ms HIGH 0 LOW 区切り信号 0.56ms 1.69ms HIGH 1 LOW
38kHzの変調 • 赤外線送信では,送信パルスをキャリアといい,通常38~40kHzで変調したものを使用する.今回は受信モジュールを38kHzのものなので,送信にも「38kHz」で変調していきます.同じ周波数に合わせて赤外線LEDを点滅させないと受信モジュールは認識できません.よって,送信側は38kHzの周波数で赤外線LEDを点滅させる必要があるということです. HIGH LOW キャリア (区切り信号) HIGH 38kHzに 変調した信号 LOW キャリア (区切り信号)
38kHzの変調 • 38kHzの変調をするとおよそ26us周期になる.消費電力を抑えるため,デューティー比は1:3(パルス時間:周期時間)にする(1:2でも可能).従って、8.7usがHIGH期間 17.5usがLOW期間となって周期は26.3usとなります. 8.7us 17.5us 38kHz キャリア 26.3us
PWMを使って変調する • GRBの値を設定することで周期を26usごとにPWM波形を出力することが可能(GRBの値固定). • GRAの値を変化させることで変調させたりさせなかったりできる. • GRA<GRB のとき 変調 • GRA>GRB のとき OFF状態 8.7us 17.5us 26.3us
5.0V 0.0V PWM出力(変調) GRB:GRA =3:2 GRB GRA 0 17.5us 8.7us 26.3us
5.0V 0.0V PWM出力(OFF状態) GRB<GRA GRA GRB 0
PWMの設定 • ITUの設定 • ITU0 フリー 今回はタイマ割込みとして使用 • ITU1 PWM ブザーに接続(前章) • ITU2 PWM 赤外線LEDと接続
PWMの設定 TMDR(タイマモードレジスタ) TMDR - MDF FDIR - - PWM2 PWM1 PWM0 初期値 1 0 0 1 1 0 0 0 R/W R/W R/W R/W R/W R/W R/W R/W R/W MDFおよびFDIRはロータリエンコーダを使用するときに設定します. しかし,今回は使用しません. PWM4~PWM0は,対応するBitを1に設定すると, その対応するITUのTIOCA出力がPWM出力として動作します. 今回はPWM2だけをPWMとして動作させるため,Bit2だけを1にします.
PWMの設定 TCR(タイマコントロールレジスタ) TCR - CCLR1 CCLR0 CKEG1 CKEG0 TPSC2 TPSC1 TPSC0 初期値 1 0 0 0 0 0 0 0 R/W - R/W R/W R/W R/W R/W R/W R/W 説明 CKEG1 CKEG0 説明 TPSC2 TPSC1 TPSC0 内部クロックΦ(16MHz) 0 0 TCNTクリアの禁止 0 0 0 内部クロックΦ/2(8MHz) 0 0 1 0 1 GRAコンペアマッチとインプット キャプチャでクリア 内部クロックΦ/4(4MHz) 0 1 0 1 0 GRBコンペアマッチとインプット キャプチャでクリア 内部クロックΦ/8(2MHz) 0 1 1 1 1 同期動作をしているほかのタイマ に合わせてクリア CKEG1 CKEG0 説明 0 0 立ち上がりエッジでカウント 0 1 立ち下がりエッジでカウント 1 - 両方のエッジでカウント
PWMの設定 TSTR(タイマスタートレジスタ) TSTR - - - - - STR2 STR1 STR0 初期値 1 1 1 1 1 0 0 0 R/W - - - R/W - - R/W R/W STR0~5の,該当するbitを0にするとカウントは停止し, 1にするとカウントを開始します.今回は,STR2だけを1(開始状態)にする.
タイマ割込み • 38kHzの信号やOFF状態をどのくらいの時間にするかをタイマ割り込みを使い調整する. この時間をタイマ割り込みで設定 0.56ms 1.69ms 38kHzに 変調した信号
タイマ割込みの設定 • ITUの設定 • ITU0 フリー 今回はタイマ割込みとして使用 • ITU1 PWM ブザーに接続(前章) • ITU2 PWM 赤外線LEDと接続
タイマ割込みの設定 TCR(タイマコントロールレジスタ) TCR - CCLR1 CCLR0 CKEG1 CKEG0 TPSC2 TPSC1 TPSC0 初期値 1 0 0 0 0 0 0 0 R/W - R/W R/W R/W R/W R/W R/W R/W 説明 CKEG1 CKEG0 説明 TPSC2 TPSC1 TPSC0 内部クロックΦ(16MHz) 0 0 TCNTクリアの禁止 0 0 0 内部クロックΦ/2(8MHz) 0 0 1 0 1 GRAコンペアマッチとインプット キャプチャでクリア 内部クロックΦ/4(4MHz) 0 1 0 1 0 GRBコンペアマッチとインプット キャプチャでクリア 内部クロックΦ/8(2MHz) 0 1 1 1 1 同期動作をしているほかのタイマ に合わせてクリア CKEG1 CKEG0 説明 0 0 立ち上がりエッジでカウント 0 1 立ち下がりエッジでカウント 1 - 両方のエッジでカウント
タイマ割込みの設定 TISRA(タイマイントラプトステータスレジスタ) IMIEA2 TISRA - IMIEA1 IMIEA0 - IMFA2 IMFA1 IMFA0 初期値 1 0 0 0 1 0 0 0 R/W R/W R/W - - R/W R/(W) R/(W) R/(W) IMIEA0~2は,IMFA0~2 フラグによる割り込み要求を許可(1)・禁止(0) GRA0~2 のコンペアマッチまたはインプットキャプチャの発生を示す ステータスフラグです。
タイマ割込みの設定 TSTR(タイマスタートレジスタ) TSTR - - - - - STR2 STR1 STR0 初期値 1 1 1 1 1 0 0 0 R/W - - - R/W - - R/W R/W STR0~5の,該当するbitを0にするとカウントは停止し, 1にするとカウントを開始します. 今回は,STR0だけを使用する. 開始する時は,1にする. 終了するときは,0にする.