<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ja">
	<id>http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5</id>
	<title>MSP430G2553 - 温湿度センサ - 版の履歴</title>
	<link rel="self" type="application/atom+xml" href="http://mochiuwiki.e2.valueserver.jp/index.php?action=history&amp;feed=atom&amp;title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5"/>
	<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5&amp;action=history"/>
	<updated>2026-09-06T15:52:06Z</updated>
	<subtitle>このウィキのこのページに関する変更履歴</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5&amp;diff=13977&amp;oldid=prev</id>
		<title>Wiki: /* 概要 */</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5&amp;diff=13977&amp;oldid=prev"/>
		<updated>2026-01-06T05:22:44Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;概要&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;ja&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← 古い版&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;2026年1月6日 (火) 14:22時点における版&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;1行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;1行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 概要 ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== 概要 ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DHT11/DHT21はサーミスタと異なり、温度と湿度のキャリブレーション済みの状態で出荷されているセンサ (デジタル信号) である。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;MSP430G2553の特徴である低消費電力、高速起動、豊富なペリフェラルを活用することで、バッテリー駆動の温湿度センサシステムを構築できる。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DHT11 / DHT21はサーミスタと異なり、温度と湿度のキャリブレーション済みの状態で出荷されているセンサ (デジタル信号) である。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DHT11では温度は2[℃]程度の誤差、湿度は5[%]程度の誤差で測定できる。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;DHT11では温度は2[℃]程度の誤差、湿度は5[%]程度の誤差で測定できる。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l8&quot;&gt;8行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;10行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4本のピンは左から順に、VDD、DATA、NC (非接続)、GNDである。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;4本のピンは左から順に、VDD、DATA、NC (非接続)、GNDである。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;VDDへの供給電圧は、DHT11が3.0[V]〜5.5[V]の範囲、DHT21が3.3[V]〜5.5[V]の範囲である。&amp;lt;br&amp;gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[ファイル:Arduino DHT11 1.png|フレームなし|中央]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[ファイル:Arduino DHT11 1.png|フレームなし|中央]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;VDDへの供給電圧は、DHT11が3.0[V]〜5.5[V]の範囲、DHT21が3.3[V]〜5.5[V]の範囲である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;VDDとGNDの間にパワーフィルタリングとして0.1[uF]のセラミックコンデンサを配置することが推奨される。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;VDDとGNDの間にパワーフィルタリングとして0.1[uF]のセラミックコンデンサを配置することが推奨される。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l21&quot;&gt;21行目:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;23行目:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;MSP430G2553の内部プルアップ抵抗は約35[kΩ]であるため、外部にプルアップ抵抗を追加することが推奨される。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;MSP430G2553の内部プルアップ抵抗は約35[kΩ]であるため、外部にプルアップ抵抗を追加することが推奨される。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ただし、短い配線であれば内部プルアップのみでも動作する可能性がある。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;ただし、短い配線であれば内部プルアップのみでも動作する可能性がある。&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;DHT11 / DHT21は1線式通信プロトコルを使用するため、タイミングの正確な制御が必要である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;また、高度な機能として、以下に示すような拡張が可能である。&amp;lt;br&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* Timer_Aを使用した高精度タイミング制御&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* UART / I2C / SPI経由でのデータ送信&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* 低電力モード (LPM3) を活用した省電力動作&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* 複数のDHTセンサからのデータ収集&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* LCDディスプレイへのデータ表示&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* ADC10を併用した他のセンサとの統合&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key mochiuwiki:diff:1.41:old-13976:rev-13977:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
	<entry>
		<id>http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5&amp;diff=13976&amp;oldid=prev</id>
		<title>Wiki: ページの作成:「== 概要 == DHT11/DHT21はサーミスタと異なり、温度と湿度のキャリブレーション済みの状態で出荷されているセンサ (デジタル信号) である。&lt;br&gt; &lt;br&gt; DHT11では温度は2[℃]程度の誤差、湿度は5[%]程度の誤差で測定できる。&lt;br&gt; DHT21 (AM2301) は高精度であり、温度は0.5[℃]程度、湿度は3[%]程度の誤差で測定可能である。&lt;br&gt; &lt;br&gt; ピンの割り当ては、下図の通りであ…」</title>
		<link rel="alternate" type="text/html" href="http://mochiuwiki.e2.valueserver.jp/index.php?title=MSP430G2553_-_%E6%B8%A9%E6%B9%BF%E5%BA%A6%E3%82%BB%E3%83%B3%E3%82%B5&amp;diff=13976&amp;oldid=prev"/>
		<updated>2026-01-06T04:48:42Z</updated>

		<summary type="html">&lt;p&gt;ページの作成:「== 概要 == DHT11/DHT21はサーミスタと異なり、温度と湿度のキャリブレーション済みの状態で出荷されているセンサ (デジタル信号) である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; DHT11では温度は2[℃]程度の誤差、湿度は5[%]程度の誤差で測定できる。&amp;lt;br&amp;gt; DHT21 (AM2301) は高精度であり、温度は0.5[℃]程度、湿度は3[%]程度の誤差で測定可能である。&amp;lt;br&amp;gt; &amp;lt;br&amp;gt; ピンの割り当ては、下図の通りであ…」&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新規ページ&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 概要 ==&lt;br /&gt;
DHT11/DHT21はサーミスタと異なり、温度と湿度のキャリブレーション済みの状態で出荷されているセンサ (デジタル信号) である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DHT11では温度は2[℃]程度の誤差、湿度は5[%]程度の誤差で測定できる。&amp;lt;br&amp;gt;&lt;br /&gt;
DHT21 (AM2301) は高精度であり、温度は0.5[℃]程度、湿度は3[%]程度の誤差で測定可能である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
ピンの割り当ては、下図の通りである。&amp;lt;br&amp;gt;&lt;br /&gt;
4本のピンは左から順に、VDD、DATA、NC (非接続)、GNDである。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VDDへの供給電圧は、DHT11が3.0[V]〜5.5[V]の範囲、DHT21が3.3[V]〜5.5[V]の範囲である。&amp;lt;br&amp;gt;&lt;br /&gt;
[[ファイル:Arduino DHT11 1.png|フレームなし|中央]]&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
VDDとGNDの間にパワーフィルタリングとして0.1[uF]のセラミックコンデンサを配置することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
データはシングル・バス・データフォーマットで伝送される。&amp;lt;br&amp;gt;&lt;br /&gt;
データのサンプリング間隔は最短で1[s]なので、ソフトウェア側でデータを取得する時に待機する必要がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
2番ピンであるDATAピンはプルアップして使用する。&amp;lt;br&amp;gt;&lt;br /&gt;
プルアップ抵抗は、ワイヤが20[m]以下の場合は、4.7[kΩ]〜10[kΩ]程度が推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
MSP430G2553の内部プルアップ抵抗は約35[kΩ]であるため、外部にプルアップ抵抗を追加することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
ただし、短い配線であれば内部プルアップのみでも動作する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSP430G2553の基本仕様 ==&lt;br /&gt;
==== 主要スペック ====&lt;br /&gt;
* CPU&lt;br /&gt;
*: 16ビット RISCアーキテクチャ、最大16[MHz]動作&lt;br /&gt;
* フラッシュROM&lt;br /&gt;
*: 16[KB]&lt;br /&gt;
* RAM&lt;br /&gt;
*: 512[B]&lt;br /&gt;
* GPIO&lt;br /&gt;
*: 24ピン (Port P1, P2, P3)&lt;br /&gt;
* タイマ&lt;br /&gt;
*: 16ビット Timer_A (2個、Timer0_A3、Timer1_A3)&lt;br /&gt;
* 通信インターフェース&lt;br /&gt;
*: USCI_A0 (UART/SPI)、USCI_B0 (I2C/SPI)&lt;br /&gt;
* ADC&lt;br /&gt;
*: 10ビット SAR型 ADC、8チャンネル&lt;br /&gt;
* 動作電圧&lt;br /&gt;
*: 1.8[V]〜3.6[V]&lt;br /&gt;
* 低消費電流&lt;br /&gt;
*: アクティブモード 約230[uA/MHz]、スタンバイモード(LPM3) 約0.7[uA]&lt;br /&gt;
* パッケージ&lt;br /&gt;
*: PDIP20、TSSOP28、VQFN32&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== クロックシステム ====&lt;br /&gt;
MSP430G2553は、Basic Clock Module+を搭載しており、以下に示すクロックソースを提供する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* MCLK (Main Clock)&lt;br /&gt;
*: CPUクロック、最大16[MHz]&lt;br /&gt;
*: デフォルト設定 : DCO 約1[MHz]&lt;br /&gt;
* SMCLK (Sub-Main Clock)&lt;br /&gt;
*: ペリフェラルクロック&lt;br /&gt;
*: デフォルト設定 : DCO 約1[MHz]&lt;br /&gt;
* ACLK (Auxiliary Clock)&lt;br /&gt;
*: 低速クロック、32768[Hz]の水晶発振器&lt;br /&gt;
*: デフォルト設定 : VLO 約12[kHz] (水晶未実装時)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
DCO (Digitally Controlled Oscillator) は内蔵の高速クロック源であり、起動時間が1[us]未満と非常に高速である。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 低電力モード ====&lt;br /&gt;
MSP430G2553は、6種類の動作モードを持つ。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* Active Mode (AM)&lt;br /&gt;
*: 全てのクロックが動作&lt;br /&gt;
* LPM0&lt;br /&gt;
*: CPUが停止、ACLK、SMCLKが動作&lt;br /&gt;
* LPM1&lt;br /&gt;
*: CPUが停止、ACLK、SMCLKが動作、DCOのDC生成器が停止&lt;br /&gt;
* LPM2&lt;br /&gt;
*: CPUが停止、MCLKとSMCLKが停止、ACLKが動作&lt;br /&gt;
* LPM3&lt;br /&gt;
*: CPUが停止、MCLKとSMCLKが停止、ACLKが動作、DCOが完全停止&lt;br /&gt;
* LPM4&lt;br /&gt;
*: 全てのクロックが停止、最低消費電力モード&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== GPIO設定レジスタ ====&lt;br /&gt;
MSP430G2553のGPIOは、以下に示すレジスタで制御される。&amp;lt;br&amp;gt;&lt;br /&gt;
以下は、Port P1の例である。(Port 2 / 3も同様である)&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* P1IN (0x0020)&lt;br /&gt;
*: 入力レジスタ (読み取り専用)&lt;br /&gt;
* P1OUT (0x0021)&lt;br /&gt;
*: 出力レジスタ&lt;br /&gt;
* P1DIR (0x0022)&lt;br /&gt;
*: 方向制御レジスタ (0 : 入力、1 : 出力)&lt;br /&gt;
* P1IFG (0x0023)&lt;br /&gt;
*: 割り込みフラグレジスタ&lt;br /&gt;
* P1IES (0x0024)&lt;br /&gt;
*: 割り込みエッジ選択 (0 : 立ち上がり、1 : 立ち下がり)&lt;br /&gt;
* P1IE (0x0025)&lt;br /&gt;
*: 割り込み許可レジスタ&lt;br /&gt;
* P1SEL (0x0026)&lt;br /&gt;
*: 機能選択レジスタ&lt;br /&gt;
* P1REN (0x0027)&lt;br /&gt;
*: プルアップ / プルダウン抵抗有効化レジスタ&lt;br /&gt;
* P1SEL2 (0x0041)&lt;br /&gt;
*: 第2機能選択レジスタ&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== MSP430G2553 と DHT11/DHT21の接続 ==&lt;br /&gt;
==== ハードウェア接続 ====&lt;br /&gt;
&amp;lt;center&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;background-color:#fefefe;&amp;quot;&lt;br /&gt;
|+ MSP430G2553 と DHT11 / DHT21の接続&lt;br /&gt;
! DHT11 / DHT21 !! MSP430G2553 !! 備考&lt;br /&gt;
|-&lt;br /&gt;
| VDD || VCC (Pin 1) || 3.3[V]または5[V]供給&lt;br /&gt;
|-&lt;br /&gt;
| DATA || P1.6 (Pin 14) || プルアップ抵抗必要&lt;br /&gt;
|-&lt;br /&gt;
| NC || 未接続 || -&lt;br /&gt;
|-&lt;br /&gt;
| GND || VSS (Pin 20) || グランド&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/center&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
外部プルアップ抵抗 (4.7[kΩ]〜10[kΩ]) をDATAピンとVDDの間に接続することが推奨される。&amp;lt;br&amp;gt;&lt;br /&gt;
また、VDDとGNDの間には0.1[uF]のセラミックコンデンサを配置してノイズ対策を行う。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 推奨回路図 ====&lt;br /&gt;
 MSP430G2553           DHT11/DHT21&lt;br /&gt;
 Pin 1 (VCC) ---+-------- VDD&lt;br /&gt;
                |&lt;br /&gt;
               [0.1uF]&lt;br /&gt;
                |&lt;br /&gt;
 Pin 20 (VSS) --+-------- GND&lt;br /&gt;
 &lt;br /&gt;
 Pin 14 (P1.6) --[4.7k]-- VDD&lt;br /&gt;
         |&lt;br /&gt;
         +--------------- DATA&lt;br /&gt;
         &lt;br /&gt;
 ※注意&lt;br /&gt;
 [4.7k]はプルアップ抵抗&lt;br /&gt;
 [0.1uF]はパスコン&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== DHT11 / DHT21の通信プロトコル ==&lt;br /&gt;
==== データフォーマット ====&lt;br /&gt;
DHT11 / DHT21は1線式通信を使用し、5[byte] (40[bit]) のデータを送信する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* 1[byte]&lt;br /&gt;
*: 湿度の整数部 (DHT11) または 湿度上位バイト (DHT21)&lt;br /&gt;
* 2[byte]&lt;br /&gt;
*: 湿度の小数部 (DHT11では常に0) または 湿度下位バイト (DHT21)&lt;br /&gt;
* 3[byte]&lt;br /&gt;
*: 温度の整数部 (DHT11) または 温度上位バイト (DHT21)&lt;br /&gt;
* 4[byte]&lt;br /&gt;
*: 温度の小数部 (DHT11では常に0) または 温度下位バイト (DHT21)&lt;br /&gt;
* 5[byte]&lt;br /&gt;
*: チェックサム (1[byte]〜4[byte]の合計の下位8ビット)&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 通信シーケンス ====&lt;br /&gt;
===== 1. スタート信号 =====&lt;br /&gt;
MSP430G2553がDATAラインをLOWに18[ms]以上保持後、20〜40[us]の間HIGHにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 2. 応答信号 =====&lt;br /&gt;
センサがDATAラインを80[us]間LOWにした後、80[us]間HIGHにする。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== 3. データ送信 =====&lt;br /&gt;
各ビットは以下のタイミングで送信される。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
* ビット開始&lt;br /&gt;
*: センサがDATAラインを50[μs]間LOWにする&lt;br /&gt;
* データビット0&lt;br /&gt;
*: 26〜28[us]間HIGHを保持&lt;br /&gt;
* データビット1&lt;br /&gt;
*: 70[us]間HIGHを保持&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===== タイミングチャート =====&lt;br /&gt;
下図に、DHT11 / DHT21のタイミングチャートを示す。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
# MSP430G2553からセンサへの開始信号&lt;br /&gt;
#: 18[ms] LOW + 40[us] HIGH&lt;br /&gt;
# センサからの応答信号&lt;br /&gt;
#: 80[us] LOW + 80[us] HIGH&lt;br /&gt;
# データビット &amp;quot;0&amp;quot; の送信&lt;br /&gt;
#: 50[us] LOW + 26〜28[us] HIGH&lt;br /&gt;
# データビット &amp;quot;1&amp;quot; の送信&lt;br /&gt;
#: 50[us] LOW + 70[us] HIGH&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
[[ファイル:MSP430G2553 DHT11 DHT21 Timing Diagram 1.png|フレームなし|中央]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== サンプルコード ==&lt;br /&gt;
==== 基本 ====&lt;br /&gt;
以下の例では、MSP430G2553を使用してDHT11 / DHT21から温度と湿度を取得している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
  * MSP430G2553とDHT11/DHT21温湿度センサのサンプルプログラム&lt;br /&gt;
  * &lt;br /&gt;
  * 接続:&lt;br /&gt;
  *   P1.6 - DHT11/DHT21 DATA pin (4.7kΩプルアップ推奨)&lt;br /&gt;
  *   VCC  - DHT11/DHT21 VDD (3.3Vまたは5V)&lt;br /&gt;
  *   GND  - DHT11/DHT21 GND&lt;br /&gt;
  * &lt;br /&gt;
  * データシート参照:&lt;br /&gt;
  *   MSP430G2x13/MSP430G2x53 Datasheet (SLAS735)&lt;br /&gt;
  *   - GPIO設定: Section 8.2 Digital I/O&lt;br /&gt;
  *   - Timer_A: Section 12 Timer_A&lt;br /&gt;
  *   - Clock System: Section 5 Basic Clock Module+&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;msp430g2553.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // DHTセンサのデータピン定義&lt;br /&gt;
 #define DHT_PIN         BIT6        // P1.6をDATAピンとして使用&lt;br /&gt;
 #define DHT_DIR         P1DIR       // P1.6の方向制御レジスタ&lt;br /&gt;
 #define DHT_OUT         P1OUT       // P1.6の出力レジスタ&lt;br /&gt;
 #define DHT_IN          P1IN        // P1.6の入力レジスタ&lt;br /&gt;
 #define DHT_REN         P1REN       // P1.6のプルアップ/ダウン制御レジスタ&lt;br /&gt;
 &lt;br /&gt;
 // DHT11とDHT21の選択&lt;br /&gt;
 #define USE_DHT11       1           // DHT11使用時は1、DHT21使用時は0&lt;br /&gt;
 &lt;br /&gt;
 // データ構造体&lt;br /&gt;
 typedef struct {&lt;br /&gt;
    uint16_t humidity;              // 湿度 (10倍値、DHT11: 整数値のみ、DHT21: 0.1%単位)&lt;br /&gt;
    uint16_t temperature;           // 温度 (10倍値、DHT11: 整数値のみ、DHT21: 0.1℃単位)&lt;br /&gt;
    uint8_t  checksum_ok;           // チェックサムが正しければ1&lt;br /&gt;
 } DHT_Data;&lt;br /&gt;
 &lt;br /&gt;
 // 関数プロトタイプ&lt;br /&gt;
 void init_clock(void);&lt;br /&gt;
 void init_gpio(void);&lt;br /&gt;
 void delay_ms(uint16_t ms);&lt;br /&gt;
 void delay_us(uint16_t us);&lt;br /&gt;
 void dht_set_output(void);&lt;br /&gt;
 void dht_set_input(void);&lt;br /&gt;
 uint8_t dht_read_bit(void);&lt;br /&gt;
 uint8_t dht_read_byte(void);&lt;br /&gt;
 uint8_t dht_start(void);&lt;br /&gt;
 uint8_t dht_read_data(DHT_Data *data);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * メイン関数&lt;br /&gt;
  */&lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
    DHT_Data dht_data;&lt;br /&gt;
    uint8_t result;&lt;br /&gt;
 &lt;br /&gt;
    WDTCTL = WDTPW | WDTHOLD;      // ウォッチドッグタイマを停止&lt;br /&gt;
                                   // WDTPW (0x5A00) : パスワード&lt;br /&gt;
                                   // WDTHOLD : タイマ停止ビット&lt;br /&gt;
 &lt;br /&gt;
    init_clock();                  // クロックシステムの初期化&lt;br /&gt;
    init_gpio();                   // GPIOの初期化&lt;br /&gt;
 &lt;br /&gt;
    __enable_interrupt();          // グローバル割り込み許可&lt;br /&gt;
 &lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
       // DHTセンサからデータを読み取り&lt;br /&gt;
       result = dht_read_data(&amp;amp;dht_data);&lt;br /&gt;
 &lt;br /&gt;
       if(result &amp;amp;&amp;amp; dht_data.checksum_ok)&lt;br /&gt;
       {&lt;br /&gt;
          // データ読み取り成功&lt;br /&gt;
          // ここで温度と湿度のデータを使用&lt;br /&gt;
          // 例: UART経由で送信、LCD表示等&lt;br /&gt;
 &lt;br /&gt;
          // 温度と湿度は10倍値で格納されている&lt;br /&gt;
          // 実際の値 = dht_data.temperature / 10.0&lt;br /&gt;
          //           dht_data.humidity / 10.0&lt;br /&gt;
       }&lt;br /&gt;
       else&lt;br /&gt;
       {&lt;br /&gt;
          // データ読み取り失敗&lt;br /&gt;
          // エラー処理&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       // 次の測定まで最低2秒待機 (DHT11/DHT21の仕様)&lt;br /&gt;
       delay_ms(2000);&lt;br /&gt;
 &lt;br /&gt;
       // 低電力モードに移行 (オプション)&lt;br /&gt;
       // __bis_SR_register(LPM0_bits + GIE);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * クロックシステムの初期化&lt;br /&gt;
  * &lt;br /&gt;
  * MCLK = SMCLK = DCO 約1[MHz] (デフォルト設定)&lt;br /&gt;
  * ACLK = VLO 約12[kHz]&lt;br /&gt;
  * &lt;br /&gt;
  * データシート参照: Section 5.2 (Basic Clock Module+ Registers)&lt;br /&gt;
  * レジスタ:&lt;br /&gt;
  *   DCOCTL  (0x0056): DCO制御レジスタ&lt;br /&gt;
  *   BCSCTL1 (0x0057): 基本クロック制御1&lt;br /&gt;
  *   BCSCTL2 (0x0058): 基本クロック制御2&lt;br /&gt;
  *   BCSCTL3 (0x0053): 基本クロック制御3&lt;br /&gt;
  */&lt;br /&gt;
 void init_clock(void)&lt;br /&gt;
 {&lt;br /&gt;
    // DCOを1[MHz]に設定 (キャリブレーション値を使用)&lt;br /&gt;
    // キャリブレーション値はInfoメモリSegment Aに保存されている&lt;br /&gt;
    if (CALBC1_1MHZ != 0xFF)        // キャリブレーション値が有効かチェック&lt;br /&gt;
    {&lt;br /&gt;
       DCOCTL = 0;                 // DCO制御レジスタをクリア&lt;br /&gt;
       BCSCTL1 = CALBC1_1MHZ;      // 基本クロック制御1にキャリブレーション値設定&lt;br /&gt;
       DCOCTL = CALDCO_1MHZ;       // DCO制御にキャリブレーション値設定&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // MCLK = DCO, SMCLK = DCO (デフォルト)&lt;br /&gt;
    BCSCTL2 = 0;                    // BCSCTL2レジスタ&lt;br /&gt;
                                    // SELM_0: MCLK = DCOCLK&lt;br /&gt;
                                    // DIVM_0: MCLK分周なし&lt;br /&gt;
                                    // SELS: SMCLK = DCOCLK&lt;br /&gt;
                                    // DIVS_0: SMCLK分周なし&lt;br /&gt;
 &lt;br /&gt;
    // ACLK = VLO (~12kHz)&lt;br /&gt;
    BCSCTL3 = LFXT1S_2;             // LFXT1S_2: VLOを選択&lt;br /&gt;
                                    // 外部水晶がない場合はVLOを使用&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * GPIOの初期化&lt;br /&gt;
  * &lt;br /&gt;
  * P1.6をDHTセンサのDATAピンとして設定&lt;br /&gt;
  * &lt;br /&gt;
  * データシート参照: Section 8.2 (Digital I/O)&lt;br /&gt;
  * レジスタアドレス:&lt;br /&gt;
  *   P1DIR  (0x0022): ポート1方向レジスタ&lt;br /&gt;
  *   P1OUT  (0x0021): ポート1出力レジスタ&lt;br /&gt;
  *   P1SEL  (0x0026): ポート1機能選択レジスタ&lt;br /&gt;
  *   P1SEL2 (0x0041): ポート1機能選択レジスタ2&lt;br /&gt;
  *   P1REN  (0x0027): ポート1プルアップ/ダウン有効化&lt;br /&gt;
  */&lt;br /&gt;
 void init_gpio(void)&lt;br /&gt;
 {&lt;br /&gt;
    // P1.6をGPIOとして設定&lt;br /&gt;
    P1SEL &amp;amp;= ~DHT_PIN;              // P1SEL.6 = 0: GPIO機能を選択&lt;br /&gt;
    P1SEL2 &amp;amp;= ~DHT_PIN;             // P1SEL2.6 = 0: GPIO機能を選択&lt;br /&gt;
 &lt;br /&gt;
    // 初期状態は入力に設定&lt;br /&gt;
    DHT_DIR &amp;amp;= ~DHT_PIN;            // P1DIR.6 = 0: 入力モード&lt;br /&gt;
 &lt;br /&gt;
    // 内部プルアップを有効化 (オプション、外部プルアップ推奨)&lt;br /&gt;
    DHT_REN |= DHT_PIN;             // P1REN.6 = 1: プルアップ/ダウン有効&lt;br /&gt;
    DHT_OUT |= DHT_PIN;             // P1OUT.6 = 1: プルアップを選択&lt;br /&gt;
                                    // (P1OUT=0でプルダウン、P1OUT=1でプルアップ)&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * ミリ秒単位の遅延関数&lt;br /&gt;
  * &lt;br /&gt;
  * MCLK = 1[MHz]を前提とした簡易的な遅延&lt;br /&gt;
  * より正確な遅延が必要な場合はTimer_Aを使用&lt;br /&gt;
  */&lt;br /&gt;
 void delay_ms(uint16_t ms)&lt;br /&gt;
 {&lt;br /&gt;
    volatile uint16_t i;&lt;br /&gt;
    while(ms--)&lt;br /&gt;
    {&lt;br /&gt;
       for(i = 0; i &amp;lt; 1000; i++)&lt;br /&gt;
       {&lt;br /&gt;
          __delay_cycles(1);      // 1サイクル遅延 (1[MHz]時は1[us])&lt;br /&gt;
       }&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * マイクロ秒単位の遅延関数&lt;br /&gt;
  * &lt;br /&gt;
  * MCLK = 1[MHz]を前提&lt;br /&gt;
  * __delay_cycles()はコンパイラ組み込み関数&lt;br /&gt;
  */&lt;br /&gt;
 void delay_us(uint16_t us)&lt;br /&gt;
 {&lt;br /&gt;
    while(us--)&lt;br /&gt;
    {&lt;br /&gt;
       __delay_cycles(1);          // 1[MHz]時 : 1サイクル = 1[us]&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTピンを出力モードに設定&lt;br /&gt;
  */&lt;br /&gt;
 void dht_set_output(void)&lt;br /&gt;
 {&lt;br /&gt;
    DHT_DIR |= DHT_PIN;             // P1DIR.6 = 1: 出力モード&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTピンを入力モードに設定&lt;br /&gt;
  */&lt;br /&gt;
 void dht_set_input(void)&lt;br /&gt;
 {&lt;br /&gt;
    DHT_DIR &amp;amp;= ~DHT_PIN;            // P1DIR.6 = 0: 入力モード&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTセンサから1ビット読み取り&lt;br /&gt;
  * &lt;br /&gt;
  * 戻り値 : 0または1&lt;br /&gt;
  */&lt;br /&gt;
 uint8_t dht_read_bit(void)&lt;br /&gt;
 {&lt;br /&gt;
    uint8_t count = 0;&lt;br /&gt;
 &lt;br /&gt;
    // DATAラインがLOWになるまで待機 (タイムアウト付き)&lt;br /&gt;
    while(DHT_IN &amp;amp; DHT_PIN)&lt;br /&gt;
    {&lt;br /&gt;
       delay_us(1);&lt;br /&gt;
       if(++count &amp;gt; 100) return 0;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // DATAラインがLOWの間待機 (約50μs)&lt;br /&gt;
    count = 0;&lt;br /&gt;
    while(!(DHT_IN &amp;amp; DHT_PIN))&lt;br /&gt;
    {&lt;br /&gt;
       delay_us(1);&lt;br /&gt;
       if(++count &amp;gt; 100) return 0;&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // DATAラインがHIGHの期間を測定&lt;br /&gt;
    // HIGHの期間が26〜28[us]ならビット0、70[us]ならビット1&lt;br /&gt;
    delay_us(35);                   // 35[us]待機&lt;br /&gt;
 &lt;br /&gt;
    if(DHT_IN &amp;amp; DHT_PIN)            // まだHIGHならビット1&lt;br /&gt;
    {&lt;br /&gt;
       return 1;&lt;br /&gt;
    }&lt;br /&gt;
    else                            // LOWに戻っていればビット0&lt;br /&gt;
    {&lt;br /&gt;
       return 0;&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTセンサから1バイト(8ビット)読み取り&lt;br /&gt;
  * &lt;br /&gt;
  * 戻り値: 読み取った8ビットデータ&lt;br /&gt;
  */&lt;br /&gt;
 uint8_t dht_read_byte(void)&lt;br /&gt;
 {&lt;br /&gt;
    uint8_t i, byte = 0;&lt;br /&gt;
 &lt;br /&gt;
    for(i = 0; i &amp;lt; 8; i++)&lt;br /&gt;
    {&lt;br /&gt;
       byte &amp;lt;&amp;lt;= 1;                 // 左シフト&lt;br /&gt;
       byte |= dht_read_bit();     // ビットを読み取って追加&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return byte;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTセンサへ開始信号を送信&lt;br /&gt;
  * &lt;br /&gt;
  * 戻り値 : 応答があれば1、なければ0&lt;br /&gt;
  */&lt;br /&gt;
 uint8_t dht_start(void)&lt;br /&gt;
 {&lt;br /&gt;
    uint8_t count = 0;&lt;br /&gt;
 &lt;br /&gt;
    // 1. MCUが開始信号を送信&lt;br /&gt;
    dht_set_output();               // 出力モードに設定&lt;br /&gt;
    DHT_OUT &amp;amp;= ~DHT_PIN;            // DATAラインをLOWに&lt;br /&gt;
    delay_ms(20);                   // 20[ms]間LOWを保持&lt;br /&gt;
 &lt;br /&gt;
    DHT_OUT |= DHT_PIN;             // DATAラインをHIGHに&lt;br /&gt;
    delay_us(30);                   // 30[us]待機&lt;br /&gt;
 &lt;br /&gt;
    // 2. 入力モードに切り替えてセンサの応答を待つ&lt;br /&gt;
    dht_set_input();                // 入力モードに設定&lt;br /&gt;
 &lt;br /&gt;
    // センサがDATAラインをLOWにするまで待機&lt;br /&gt;
    while(DHT_IN &amp;amp; DHT_PIN)&lt;br /&gt;
    {&lt;br /&gt;
       delay_us(1);&lt;br /&gt;
       if(++count &amp;gt; 100) return 0; // タイムアウト&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // センサがDATAラインを約80μs間LOWに保持&lt;br /&gt;
    count = 0;&lt;br /&gt;
    while(!(DHT_IN &amp;amp; DHT_PIN))&lt;br /&gt;
    {&lt;br /&gt;
       delay_us(1);&lt;br /&gt;
       if(++count &amp;gt; 100) return 0; // タイムアウト&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // センサがDATAラインを約80[us]間HIGHに保持&lt;br /&gt;
    count = 0;&lt;br /&gt;
    while(DHT_IN &amp;amp; DHT_PIN)&lt;br /&gt;
    {&lt;br /&gt;
       delay_us(1);&lt;br /&gt;
       if(++count &amp;gt; 100) return 0; // タイムアウト&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // 応答成功&lt;br /&gt;
    return 1;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * DHTセンサからデータを読み取り&lt;br /&gt;
  * &lt;br /&gt;
  * 引数 : data - データを格納する構造体へのポインタ&lt;br /&gt;
  * 戻り値 : 成功時1、失敗時0&lt;br /&gt;
  */&lt;br /&gt;
 uint8_t dht_read_data(DHT_Data *data)&lt;br /&gt;
 {&lt;br /&gt;
    uint8_t i;&lt;br /&gt;
    uint8_t raw_data[5];            // 5バイトの生データ&lt;br /&gt;
    uint8_t checksum;&lt;br /&gt;
 &lt;br /&gt;
    // 開始信号を送信&lt;br /&gt;
    if(!dht_start())&lt;br /&gt;
    {&lt;br /&gt;
       return 0;                   // 開始失敗&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // 5バイト (40ビット) のデータを読み取り&lt;br /&gt;
    for(i = 0; i &amp;lt; 5; i++)&lt;br /&gt;
    {&lt;br /&gt;
       raw_data[i] = dht_read_byte();&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    // チェックサムの検証&lt;br /&gt;
    checksum = raw_data[0] + raw_data[1] + raw_data[2] + raw_data[3];&lt;br /&gt;
    data-&amp;gt;checksum_ok = (checksum == raw_data[4]);&lt;br /&gt;
 &lt;br /&gt;
 #if USE_DHT11&lt;br /&gt;
    // DHT11の場合&lt;br /&gt;
    data-&amp;gt;humidity = raw_data[0] * 10;      // 湿度は整数部のみ&lt;br /&gt;
    data-&amp;gt;temperature = raw_data[2] * 10;   // 温度は整数部のみ&lt;br /&gt;
 #else&lt;br /&gt;
    // DHT21 (AM2301) の場合&lt;br /&gt;
    data-&amp;gt;humidity = ((uint16_t)raw_data[0] &amp;lt;&amp;lt; 8) | raw_data[1];&lt;br /&gt;
    data-&amp;gt;temperature = ((uint16_t)raw_data[2] &amp;lt;&amp;lt; 8) | raw_data[3];&lt;br /&gt;
 &lt;br /&gt;
    // 温度の符号処理 (DHT21は負の温度に対応)&lt;br /&gt;
    if(data-&amp;gt;temperature &amp;amp; 0x8000)&lt;br /&gt;
    {&lt;br /&gt;
       data-&amp;gt;temperature = -(data-&amp;gt;temperature &amp;amp; 0x7FFF);&lt;br /&gt;
    }&lt;br /&gt;
 #endif&lt;br /&gt;
 &lt;br /&gt;
    return 1;                       // 読み取り成功&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 外部デバイスとの連携 ====&lt;br /&gt;
以下の例では、温度と湿度をUART経由でPC等の外部デバイスに出力している。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 /*&lt;br /&gt;
  * MSP430G2553とDHT11/DHT21温湿度センサ&lt;br /&gt;
  * &lt;br /&gt;
  * 追加接続:&lt;br /&gt;
  *   P1.1 - UART TXD (PC等と接続)&lt;br /&gt;
  *   P1.2 - UART RXD (PC等と接続)&lt;br /&gt;
  * &lt;br /&gt;
  * UART設定: 9600bps, 8bit, No Parity, 1 Stop bit&lt;br /&gt;
  */&lt;br /&gt;
 &lt;br /&gt;
 #include &amp;lt;msp430g2553.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdint.h&amp;gt;&lt;br /&gt;
 #include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 // 前述のDHT関連定義と関数をここに含める&lt;br /&gt;
 // ...&lt;br /&gt;
 &lt;br /&gt;
 // UART関連の関数プロトタイプ&lt;br /&gt;
 void init_uart(void);&lt;br /&gt;
 void uart_send_char(char c);&lt;br /&gt;
 void uart_send_string(const char *str);&lt;br /&gt;
 void uart_send_number(int16_t num);&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * UART初期化 (USCI_A0を使用)&lt;br /&gt;
  * &lt;br /&gt;
  * ボーレート: 9600[bps]&lt;br /&gt;
  * MCLK = SMCLK = 1MHz&lt;br /&gt;
  * &lt;br /&gt;
  * データシート参照: Section 15 (USCI_A)&lt;br /&gt;
  * レジスタ:&lt;br /&gt;
  *   UCA0CTL1 (0x0061) : USCI_A0 制御レジスタ1&lt;br /&gt;
  *   UCA0CTL0 (0x0060) : USCI_A0 制御レジスタ0&lt;br /&gt;
  *   UCA0BR0  (0x0062) : ボーレート制御レジスタ0&lt;br /&gt;
  *   UCA0BR1  (0x0063) : ボーレート制御レジスタ1&lt;br /&gt;
  *   UCA0MCTL (0x0064) : モジュレーション制御レジスタ&lt;br /&gt;
  */&lt;br /&gt;
 void init_uart(void)&lt;br /&gt;
 {&lt;br /&gt;
    // UARTピンの機能を有効化&lt;br /&gt;
    P1SEL |= BIT1 + BIT2;           // P1.1 = RXD, P1.2 = TXD&lt;br /&gt;
    P1SEL2 |= BIT1 + BIT2;          // P1SEL2も設定&lt;br /&gt;
 &lt;br /&gt;
    // USCI_A0をUARTモードで初期化&lt;br /&gt;
    UCA0CTL1 |= UCSSEL_2;           // SMCLK (1MHz) を選択&lt;br /&gt;
 &lt;br /&gt;
    // ボーレート設定: 9600[bps] @ 1[MHz]&lt;br /&gt;
    // N = 1000000 / 9600 = 104.166&lt;br /&gt;
    UCA0BR0 = 104;                  // 下位バイト&lt;br /&gt;
    UCA0BR1 = 0;                    // 上位バイト&lt;br /&gt;
    UCA0MCTL = UCBRS0;              // モジュレーション UCBRSx = 1&lt;br /&gt;
 &lt;br /&gt;
    UCA0CTL1 &amp;amp;= ~UCSWRST;           // USCI状態マシンを初期化&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * UART経由で1文字送信&lt;br /&gt;
  */&lt;br /&gt;
 void uart_send_char(char c)&lt;br /&gt;
 {&lt;br /&gt;
    while (!(IFG2 &amp;amp; UCA0TXIFG));    // 送信バッファが空になるまで待機&lt;br /&gt;
    UCA0TXBUF = c;                  // 文字を送信バッファに書き込み&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * UART経由で文字列送信&lt;br /&gt;
  */&lt;br /&gt;
 void uart_send_string(const char *str)&lt;br /&gt;
 {&lt;br /&gt;
    while(*str)&lt;br /&gt;
    {&lt;br /&gt;
       uart_send_char(*str++);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * UART経由で数値送信 (符号付き整数)&lt;br /&gt;
  */&lt;br /&gt;
 void uart_send_number(int16_t num)&lt;br /&gt;
 {&lt;br /&gt;
    char buffer[8];&lt;br /&gt;
    sprintf(buffer, &amp;quot;%d&amp;quot;, num);&lt;br /&gt;
    uart_send_string(buffer);&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 /*&lt;br /&gt;
  * メイン関数&lt;br /&gt;
  */&lt;br /&gt;
 int main(void)&lt;br /&gt;
 {&lt;br /&gt;
    DHT_Data dht_data;&lt;br /&gt;
    uint8_t result;&lt;br /&gt;
 &lt;br /&gt;
    WDTCTL = WDTPW | WDTHOLD;      // ウォッチドッグタイマを停止&lt;br /&gt;
 &lt;br /&gt;
    init_clock();                   // クロックシステムの初期化&lt;br /&gt;
    init_gpio();                    // GPIOの初期化&lt;br /&gt;
    init_uart();                    // UARTの初期化&lt;br /&gt;
 &lt;br /&gt;
    __enable_interrupt();           // グローバル割り込み許可&lt;br /&gt;
 &lt;br /&gt;
    // 起動メッセージ&lt;br /&gt;
    uart_send_string(&amp;quot;\r\n=== MSP430G2553 DHT11/DHT21 Test ===\r\n&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
       // DHTセンサからデータを読み取り&lt;br /&gt;
       result = dht_read_data(&amp;amp;dht_data);&lt;br /&gt;
 &lt;br /&gt;
       if(result &amp;amp;&amp;amp; dht_data.checksum_ok)&lt;br /&gt;
       {&lt;br /&gt;
          // データ読み取り成功&lt;br /&gt;
          uart_send_string(&amp;quot;Temp: &amp;quot;);&lt;br /&gt;
          uart_send_number(dht_data.temperature / 10);&lt;br /&gt;
          uart_send_char(&amp;#039;.&amp;#039;);&lt;br /&gt;
          uart_send_number(dht_data.temperature % 10);&lt;br /&gt;
          uart_send_string(&amp;quot; C, Humidity: &amp;quot;);&lt;br /&gt;
          uart_send_number(dht_data.humidity / 10);&lt;br /&gt;
          uart_send_char(&amp;#039;.&amp;#039;);&lt;br /&gt;
          uart_send_number(dht_data.humidity % 10);&lt;br /&gt;
          uart_send_string(&amp;quot; %\r\n&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
       else&lt;br /&gt;
       {&lt;br /&gt;
          // データ読み取り失敗&lt;br /&gt;
          uart_send_string(&amp;quot;ERROR: Failed to read DHT sensor\r\n&amp;quot;);&lt;br /&gt;
       }&lt;br /&gt;
 &lt;br /&gt;
       // 次の測定まで2秒待機&lt;br /&gt;
       delay_ms(2000);&lt;br /&gt;
    }&lt;br /&gt;
 &lt;br /&gt;
    return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== トラブルシューティング ==&lt;br /&gt;
==== タイミングの調整 ====&lt;br /&gt;
* DHTセンサの通信プロトコルはタイミングに敏感なため、待機時間の精度が重要となる。&lt;br /&gt;
* MSP430G2553のクロック周波数が変更された場合は、delay_us関数 と delay_ms関数を調整する必要がある。&lt;br /&gt;
* 正確なタイミングが必要な場合は、Timer_Aモジュールを使用することを推奨する。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== プルアップ抵抗 ====&lt;br /&gt;
* 外部プルアップ抵抗 (4.7[kΩ]〜10[kΩ]) を使用することが推奨される。&lt;br /&gt;
* 内部プルアップ抵抗のみでも動作する場合があるが、信号品質が低下する可能性がある。&lt;br /&gt;
* 配線が長い場合 (20[m]以上) は、プルアップ抵抗値を小さくする (5[kΩ]程度) 必要がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 電源とノイズ対策 ====&lt;br /&gt;
* VDDとGNDの間には必ず0.1[uF]のセラミックコンデンサを配置する。&lt;br /&gt;
* センサとMCUの間の配線は可能な限り短くする。&lt;br /&gt;
* ノイズの多い環境では、追加のフィルタリングが必要な場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== データ取得間隔 ====&lt;br /&gt;
* DHT11 / DHT21は連続測定には対応していない。&lt;br /&gt;
* 最低でも1秒、推奨では2秒以上の間隔を空けてデータを取得する。&lt;br /&gt;
* 連続して読み取ると、センサが応答しなくなる場合がある。&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== 低消費電力動作 ====&lt;br /&gt;
MSP430G2553の低電力モードを活用することで、バッテリー駆動時間を延ばすことができる。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
 &amp;lt;syntaxhighlight lang=&amp;quot;c&amp;quot;&amp;gt;&lt;br /&gt;
 // 測定間隔の待機時にLPM3モードに移行&lt;br /&gt;
 // Timer_Aの割り込みで復帰&lt;br /&gt;
 &lt;br /&gt;
 void main(void)&lt;br /&gt;
 {&lt;br /&gt;
    // ... 初期化処理 ...&lt;br /&gt;
 &lt;br /&gt;
    while(1)&lt;br /&gt;
    {&lt;br /&gt;
       // データ取得処理&lt;br /&gt;
       result = dht_read_data(&amp;amp;dht_data);&lt;br /&gt;
 &lt;br /&gt;
       // データ処理&lt;br /&gt;
       // ...&lt;br /&gt;
 &lt;br /&gt;
       // Timer_Aを設定して2秒後に割り込み発生&lt;br /&gt;
       TA0CCR0 = 32768 * 2;        // ACLK = 32768[Hz]の場合&lt;br /&gt;
       TA0CTL = TASSEL_1 + MC_1;   // ACLK, Up mode&lt;br /&gt;
       TA0CCTL0 = CCIE;            // 割り込み許可&lt;br /&gt;
 &lt;br /&gt;
       // LPM3モードに移行 (ACLKのみ動作)&lt;br /&gt;
       __bis_SR_register(LPM3_bits + GIE);&lt;br /&gt;
    }&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 // Timer_A0割り込みサービスルーチン&lt;br /&gt;
 #pragma vector=TIMER0_A0_VECTOR&lt;br /&gt;
 __interrupt void Timer_A0_ISR(void)&lt;br /&gt;
 {&lt;br /&gt;
    TA0CTL = 0;                     // Timer停止&lt;br /&gt;
    __bic_SR_register_on_exit(LPM3_bits); // LPM3から復帰&lt;br /&gt;
 }&lt;br /&gt;
 &amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== エラッタ情報 ==&lt;br /&gt;
MSP430G2553には既知のエラッタ (不具合) が存在する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== BCL12 : DCOクロック切り替え時の問題 ====&lt;br /&gt;
RSELxビットを切り替える時、DCOが停止する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
回避策として、RSELx &amp;gt; 13 から RSELx &amp;lt; 12に切り替える時は、中間値 (RSEL=13) を経由する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
==== TA12: Timer_A割り込み消失 ====&lt;br /&gt;
ACLK等の低速クロックを使用する場合、割り込みが消失する可能性がある。&amp;lt;br&amp;gt;&lt;br /&gt;
回避策として、CCRxレジスタを更新する前に、TARレジスタとCCRxレジスタの差を確認する。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
詳細は、MSP430G2553のエラッタ情報を参照すること。&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{#seo:&lt;br /&gt;
|title={{PAGENAME}} : Exploring Electronics and SUSE Linux | MochiuWiki&lt;br /&gt;
|keywords=MochiuWiki,Mochiu,Wiki,Mochiu Wiki,Electric Circuit,Electric,pcb,Mathematics,AVR,TI,STMicro,AVR,ATmega,MSP430,STM,Arduino,Xilinx,FPGA,Verilog,HDL,PinePhone,Pine Phone,Raspberry,Raspberry Pi,C,C++,C#,Qt,Qml,MFC,Shell,Bash,Zsh,Fish,SUSE,SLE,Suse Enterprise,Suse Linux,openSUSE,open SUSE,Leap,Linux,uCLnux,電気回路,電子回路,基板,プリント基板&lt;br /&gt;
|description={{PAGENAME}} - 電子回路とSUSE Linuxに関する情報 | This page is {{PAGENAME}} in our wiki about electronic circuits and SUSE Linux&lt;br /&gt;
|image=/resources/assets/MochiuLogo_Single_Blue.png&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
__FORCETOC__&lt;br /&gt;
[[カテゴリ:MSP430]]&lt;/div&gt;</summary>
		<author><name>Wiki</name></author>
	</entry>
</feed>