ArduinoのアナログIO実験的研究ノート⑤

クリエイティブコモンズライセンス 著作権:帰属、紙ベースを作成するために他人を許可し、(同じライセンスで元のライセンス契約に基づいて用紙配布する必要がありますクリエイティブコモンズ

1.はじめに

    我々は最初の数であるに注意してくださいは、デジタルIOを説明し、実際には、我々はほとんどの信号に住んでいる、そのような音や温度変化などのアナログ信号です。アルドゥイーノ、アナログ信号を0〜5Vのコモン電圧。

1.1アナログ入力機能

    Arduinoの前に「A」、アナログ入力端子の番号を付け、Arduinoのアナログ値は、これらの入力ピンに読み取ることができる、すなわち、入力ピン上で読み取った電圧の大きさのピン。
    ADCアナログ入力端子の機能を有する(ADC:アナログ-デジタルコンバータADC)。これによりアナログ値を読み出す機能を実現する、チップ動作として、アナログ信号、外部から入力されるデジタル信号に変換することができたときに識別することができます。

  • アナログ入力機能を使用してアルドゥイーノAVRチップは10ビットの分解能を有し、0手段5V 0電圧に変換され、図の1023整数。

    アナログ入力機能は、ピンは、ピンはアナログ入力端子に指定されなければならないアナログ値読み取るピンであることを特徴とする請求analogRead(ピン)機能を必要とします。

アナログ出力1.2

    アナログ出力機能を実装するためにanalogWrite()関数を使用します。

注意:

  • この関数は、意味での真のアナログ出力値ではなく、アナログ出力値の効果を達成するために特別な方法で、つまり、私たちはしばしば(幅変調パルスPulse Width Modulation:パルス幅変調)「PWM」を聞きます。

    analogWrite機能、出力端子は、各サイクルで得られた(デューティ比)の割合を変化させることにより、ハイレベルとローレベル、ハイレベルとローレベルを変換連続方形波を介して固定された期間(約490ヘルツを、)、指定された場合異なる電圧のおおよその出力効果。

画像

    analogWrite(ピン、値):ピン、PWM波パラメータのパラメータ値は、出力端子PWMパルス幅、255の範囲は0となります。
    ほとんどのArduinoのピンのPWMコントローラは、あなたがあなた自身のボードを表示することができ、「〜」のロゴを使用します。いくつかの一般的なボードのPWMピン:

画像

    うまく基本を紹介し、次の実験を開始します。

2.実験内容

    二つの主な実験内容を達成するために:

  • 固定された呼吸光
  • 調節可能な呼吸光

2.1固定呼吸光

実験の説明:
    LEDは、主に、出力電圧analogWriteのアナログ出力機能を使用し、PWM端子に接続され、呼吸速度が固定されています。

テストコード:

/**
* @Desc  固定呼吸灯
* @author 单片机菜鸟
* @Date  2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
*       按键是高电平有效
*/

#define LED 9
#define DELAY_TIME 30 //延时时间

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  //从暗到亮,每次亮度值加5,直到最亮
  for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){
     //输出PWM
     analogWrite(LED,fadeValue);
     //延时一下
     delay(DELAY_TIME);  
  }

  //从亮到暗 每次亮度-5直到最暗
  for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
     //输出PWM
     analogWrite(LED,fadeValue);
     //延时一下
     delay(DELAY_TIME);  
  }
}

2.2調節可能な呼吸光

実験の説明:
    analogRead analogWrite機能を利用しつつ、リードの大きさによってアナログ電圧に基づいて、固定された呼吸光周波数を調整するために(我々は、電圧分割ポテンショメータにアナログ入力を使用)、そして。

テストコード:

/**
* @Desc  可调呼吸灯
* @author 单片机菜鸟
* @Date  2016/12/8
* 注意:LED的一端接到5V,另外一端接到输出引脚,低电平亮
*       按键是高电平有效
*/

#define LED 9

void setup() {
  // put your setup code here, to run once:

}

void loop() {
  //从暗到亮,每次亮度值加5,直到最亮
  for(int fadeValue = 0;fadeValue<=255;fadeValue+=5){
     //输出PWM
     analogWrite(LED,fadeValue);
     //延时一下
     int delaytime = analogRead(A0)/5;//读取电位器输出电压 用于延时
     delay(delaytime);  
  }

  //从亮到暗 每次亮度-5直到最暗
  for(int fadeValue=255;fadeValue>=0;fadeValue-=5){
     //输出PWM
     analogWrite(LED,fadeValue);
     //延时一下
     int delaytime = analogRead(A0)/5;
     delay(delaytime);  
  }
}

    それはその日の夜に消滅呼吸呼吸光と考えることができるように、もちろん、上記は、フォトレジスタポテンショメータなどで置き換えることができます。

3.まとめ

    このレッスンでは、私たちが主にアナログIOポートを使用することを学ぶ、比較的簡単です。以降、我々は感光性抵抗器、サーミスタ、温度センサー、ガスセンサー、アナログ信号を生成することができる様に遭遇した場合、アナログIOポートは考えるべきです。

おすすめ

転載: blog.csdn.net/dpjcn1990/article/details/92831417