タイマーIC NE555
秋月電子で購入した、タイマーICとして有名なNE555を使ったときの記録である。データシートはこちら。
参考サイト
ここでは、#1の回路をほぼそのまま使って、マイコン(Arduino)有無で、NE555の動作を確認する。#2には、NE555の原理がわかりやすく説明されており、#3には、タイマー値の計算式が記載されている。
ピンアサイン
検証
回路関連は、falstad利用。
マイコンなし
下記は、タクトスイッチ押下後、しばらくの間、LEDが点灯し、その後消灯する回路。
また、上記回路を実施している様子が下記となる。
繰り返し回路例(ここではLEDの定期的なオンオフ)は下記のようなもの。(実演省略)
マイコンあり
タクトスイッチの代わりに、ArduinoのGPIOアウトプットをトリガーピン2(tr)に入力してみた。まずは、回路およびシミュレーションは下記のとおり。
わずかの間、トリガーピンを”L”にセットしている。下部に見えるのは、アウトプットピン3(out)の電圧の変化である。参考サイトで引用した#2のNE555の内部回路をみるとわかるとおり、内部にコンパレーターがあるので、電圧の変化は一瞬となる(矩形)。
次にArduinoから制御。
#define PIN_OUT 6
#define ANALOG_IN A0
void setup() {
Serial.begin(9600);
pinMode(PIN_OUT, OUTPUT);
digitalWrite(PIN_OUT, HIGH);
}
void loop() {
int val;
float volt;
if (Serial.available() > 0) {
(void)Serial.readStringUntil('\n');
val = analogRead(ANALOG_IN);
volt = val * 5.0/ 1023.0;
Serial.print("Start: "); Serial.println(volt);
digitalWrite(PIN_OUT, LOW);
delay(1);
digitalWrite(PIN_OUT, HIGH);
do {
val = analogRead(ANALOG_IN);
volt = val * 5.0/ 1023.0;
Serial.println(volt);
delay(20);
} while (val >= 10);
}
}
GPIOピン6をNE555のトリガーピンに接続、アナログピンA0をアウトプットピンに接続する。シリアル(PC)から入力があったときに、わずかな時間(ここでは1msでも十分だった)”L”にセットし、その時のアウトプットの電圧を測定するもの。結果は下記のとおり。
09:33:50.478 -> Start: 0.00
09:33:50.524 -> 4.35
09:33:50.524 -> 4.35
09:33:50.524 -> 4.35
09:33:50.570 -> 4.35
09:33:50.570 -> 4.35
09:33:50.570 -> 4.35
09:33:50.616 -> 4.35
09:33:50.616 -> 4.35
09:33:50.663 -> 4.35
09:33:50.663 -> 4.35
09:33:50.709 -> 4.35
09:33:50.709 -> 4.35
09:33:50.755 -> 4.35
09:33:50.755 -> 4.35
09:33:50.755 -> 4.35
09:33:50.802 -> 4.36
09:33:50.802 -> 4.36
09:33:50.849 -> 4.36
09:33:50.849 -> 4.36
09:33:50.896 -> 4.36
09:33:50.896 -> 4.36
09:33:50.942 -> 4.35
09:33:50.942 -> 4.35
09:33:50.942 -> 4.36
09:33:50.989 -> 4.36
09:33:50.989 -> 4.36
09:33:51.035 -> 0.00
タイマー満了後、すぐに電圧が変化している。オシロスコープの変化でも同様である。
参考までに、アウトプットピンに、LEDを接続したときの様子は下記のとおり。
期待どおりの結果が得られている。
終わりに
マイコンなしでも、タイマーとしては十分に使えることを理解。