このプロジェクトでは、LDRをATMEGA8マイクロコントローラーとインターフェースします。これにより、その領域の光強度を測定できます。ATMEGA8では、10ビットADC(アナログ-デジタル変換)機能を使用して光強度を測定します。
Am LDRは、光が表面に当たると抵抗が変化するトランスデューサーです。LDRセンサーは、さまざまなサイズと形状で利用できます。
LDRは半導体材料でできており、感光性を備えています。使用する材料にはさまざまな種類がありますが、人気のあるものは硫化カドミウム(CdS)です。これらのLDRまたはPHOTOREISTORは、「光伝導性」の原理に基づいて動作します。この原理が言うことは、光がLDRの表面に当たると(この場合)、要素のコンダクタンスが増加するか、言い換えると、光がLDRの表面に当たるとLDRの抵抗が減少するということです。 LDRの抵抗が減少するこの特性は、表面に使用される半導体材料の特性であるために達成されます。 LDRは、ほとんどの場合、光の存在を検出したり、光の強度を測定したりするために使用されます。
上図に示すように、LDRにはさまざまなタイプがあり、それぞれ仕様が異なります。通常、LDRは、完全な暗闇で1MΩ〜2MΩ、10 LUXで10〜20KΩ、100 LUXで2〜5KΩになります。LDRのLUXグラフに対する一般的な抵抗を図に示します。
上図に示すように、センサーの2つの接点間の抵抗は、光の強度とともに減少するか、センサーの2つの接点間のコンダクタンスが増加します。
この抵抗の変化を電圧の変化に変換するために、分圧回路を使用します。この抵抗ネットワークには、1つの一定の抵抗と他の可変の抵抗があります。図に示すように、ここでのR1は一定の抵抗であり、R2は抵抗として機能するFORCEセンサーです。
分岐の中点が測定されます。抵抗R2が変化すると、Voutもそれに比例して変化します。したがって、これにより、重量によって変化する電圧が得られます。
ここで注意すべき重要なことは、ADC変換のためにコントローラーが受け取る入力が50µAmpと低いことです。分圧器のVoutから引き出される電流がエラー率を増加させるため、抵抗ベースの分圧器のこの負荷効果は重要です。今のところ、負荷効果について心配する必要はありません。
ここで行うことは、2つの抵抗を使用して分周回路を形成し、25ボルトのVinに対して5ボルトのVoutを取得することです。したがって、実際の入力電圧を取得するには、プログラムでVout値に「5」を掛けるだけです。
コンポーネント
ハードウェア: ATMEGA8、電源(5v)、AVR-ISPプログラマー、JHD_162ALCD(16 * 2LCD)、100uFコンデンサ、100nFコンデンサ(5個)、10KΩ抵抗、LDR(光依存抵抗)。
ソフトウェア: Atmel studio 6.1、progispまたはflashmagic。
回路図と動作説明
回路ではATMEGA8のPORTDがデータポートLCDに接続されています。16 * 2 LCDでは、バックライトがある場合は全体で16ピン、バックライトがない場合は14ピンになります。バックライトピンに電力を供給するか、そのままにしておくことができます。14ピンには8つのデータピン(7-14またはD0-D7)、2つの電源ピン(1&2またはVSS&VDDまたはgnd&+ 5v)、コントラスト制御用の3番目のピン(VEE-文字の太さを制御します)があります。示されている)および3つの制御ピン(RS&RW&E)
回路では、私が2つの制御ピンしか取っていないことがわかります。コントラストビットとREAD / WRITEはあまり使用されないため、グランドに短絡することができます。これにより、LCDが最高のコントラストと読み取りモードになります。ENABLEピンとRSピンを制御して、それに応じて文字とデータを送信する必要があります。
LCDの接続は以下のとおりです。
PIN1またはVSS ------------------グラウンド
PIN2またはVDDまたはVCC ------------ + 5v電源
PIN3またはVEE ---------------地面(初心者に最適な最大のコントラストを提供します)
PIN4またはRS(レジスタ選択)--------------- uCのPB0
PIN5またはRW(読み取り/書き込み)-----------------グラウンド(LCDを読み取りモードにすると、ユーザーの通信が容易になります)
PIN6またはE(有効)------------------- uCのPB1
PIN7またはD0 ----------------------------- uCのPD0
PIN8またはD1 ----------------------------- uCのPD1
PIN9またはD2 ----------------------------- uCのPD2
PIN10またはD3 ----------------------------- uCのPD3
PIN11またはD4 ----------------------------- uCのPD4
PIN12またはD5 ----------------------------------------- uCのPD5
PIN13またはD6 ----------------------------- uCのPD6
PIN14またはD7 ----------------------------- uCのPD7
回路では8ビット通信(D0-D7)を使用していることがわかりますが、これは必須ではなく、4ビット通信(D4-D7)を使用できますが、4ビット通信プログラムでは少し複雑になります。したがって、上記の表からの単なる観察から、LCDの10ピンをコントローラーに接続しています。8ピンはデータピンで、2ピンは制御用です。
R2の両端の電圧は完全に線形ではありません。うるさいものになります。ノイズを除去するために、図に示すように、分圧器回路の各抵抗の両端にコンデンサが配置されます。
ATMEGA8では、PORTCの4つのチャネルのいずれかにアナログ入力を与えることができます。すべてが同じであるため、どのチャネルを選択してもかまいません。PORTCのチャネル0またはPIN0を選択します。ATMEGA8では、ADCの分解能は10ビットであるため、コントローラーはVref / 2 ^ 10の最小変化を検出できるため、基準電圧が5Vの場合、5/2 ^ 10 = 5mVごとにデジタル出力増分が得られます。したがって、入力が5mV増加するごとに、デジタル出力で1ずつ増加します。
次に 、次の条件に基づいてADCのレジスタを設定する必要があり ます。
1.まず、ADCでADC機能を有効にする必要があります。
2.ADC変換の最大入力電圧は+ 5Vになります。したがって、ADCの最大値またはリファレンスを5Vに設定できます。
3.コントローラーにはトリガー変換機能があります。これは、ADCのレジスタを連続フリーランニングモードで実行するように設定する必要がないため、ADC変換が外部トリガーの後にのみ行われることを意味します。
4.どのADCでも、変換の周波数(アナログ値からデジタル値)とデジタル出力の精度は反比例します。したがって、デジタル出力の精度を高めるには、より低い周波数を選択する必要があります。通常のADCクロックの場合、ADCの先行販売を最大値(2)に設定しています。1MHZの内部クロックを使用しているため、ADCのクロックは(1000000/2)になります。
ADCを使い始めるために知っておく必要があるのはこれらの4つだけです。
上記の4つの機能はすべて、2つのレジスタによって設定されます。
赤(ADEN):このビットはATMEGAのADC機能を有効にするために設定する必要があります。
BLUE(REFS1、REFS0):これらの2ビットは、基準電圧(またはこれから与える最大入力電圧)を設定するために使用されます。基準電圧を5Vにしたいので、表でREFS0を設定する必要があります。
黄色(ADFR):ADCを継続的に実行するには、このビットを設定する必要があります(フリーランニングモード)。
PINK(MUX0-MUX3):これらの4ビットは、入力チャネルを通知するためのものです。ADC0またはPIN0を使用するため、表のようにビットを設定する必要はありません。
ブラウン(ADPS0-ADPS2):これらの3ビットは、ADCのプリスケーラを設定するためのものです。2のプリスケーラを使用しているため、1ビットを設定する必要があります。
DARK GREEN(ADSC):ADCが変換を開始するために設定されたこのビット。このビットは、変換を停止する必要があるときにプログラムで無効にすることができます。
したがって、16x2 LCD画面のLDRの抵抗を使用して、光強度を取得するためのLUXグラフと一致させることができます。