自己紹介

ソフト屋が、電子工作、DIYに興味を持ち、不勉強のまま手を出したために、ドはまってもがき苦しんでいる様を公開するブログ。 当面は「生活向上、便利、コスト削減」をテーマに、習うより慣れろ精神でいろいろ作っていく。

2017年11月24日金曜日

赤外線型焦電センサー AKE-1 1段目のオシロ波形

1段目のみ(アンプに接続しない)で波形測定。
1つ目が安定状態、2つ目は手をかざした時の波形変化。
印加電圧5V(4,8V)

オシロキャプチャ

1段目アンプ接続100倍で波形測定。
1つ目が安定状態、2つ目は手をかざした時の波形変化。
印加電圧5V(4,8V)

オシロキャプチャ

2段目アンプ接続100*100(1万)倍で波形測定。
印加電圧5V(4,8V)
オシロキャプチャ

比較器接続(NJM2903D)オープンコレクタ出力
印加電圧5V(4,8V)
オシロキャプチャ
※持っている部品で、比較するための回路定数決定が困難だったため今回は比較器未使用

ユニバーサル基板配置図
ユニバーサル基板配置図

ATTINY13Aで制御
・PB1にアンプからの出力をつなげる。
・PB1が0V(実際には1.8V付近)を切ると割り込みが発生。
・PB1、PB5(リセットピン)以外を一定時間HIGHにする

プログラム
#define F_CPU 12000000UL // ←8000000UL でもいいかも
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>  //割り込みを使用するため
#include <avr/sleep.h>

void init()
{
// Lowレベル割り込みを使う場合→Lowレベルは1.8V付近。それより下がると割り込み発生する。

// アイドル復帰以外の休止状態から割り込み可能
//MCUCR |= (1<<ISC01);  // falling edge of INT0
GIMSK |=   ( 1 << INT0);
// 入出力ポート
// PB4 出力設定
DDRB =   (1  << DDB0) | (1  << DDB2) | (1  << DDB3) | (1  << DDB4) | (1  << DDB5);

}
// 割り込み
ISR(INT0_vect)
{
char j;

PORTB |=  ( 1 << PORTB0) | ( 1 << PORTB2)| ( 1 << PORTB3)| ( 1 << PORTB4)| ( 1 << PORTB5); // HIGH
for (j = 0; j <= 10; j++)
{
_delay_ms(100);
}
PORTB = ( 0 << PORTB0) | ( 0 << PORTB2) | ( 0 << PORTB3) | ( 0 << PORTB4) | ( 0 << PORTB5);

}

int main(void)
{
init();
set_sleep_mode(SLEEP_MODE_PWR_DOWN);// パワーダウンモードを設定.
sei();

while(1)
{
sleep_mode();                //スリープ開始。
}
}

2016年7月4日月曜日

車のリモコンキー電池交換

赤外線リモコンだと思ってたらそうではなかった。
ケースが割れているので、次回作成してみようと思う。
  

 

2016年5月24日火曜日

Atmel StudioのDelayについて

こちらのサイト等を参考におさらいしてみた。
easylabo
_delay_us
書式:_delay_us(double);
遅延時間:引数usの遅延時間を生成
最大遅延時間:768us÷F_CPU(MHz)※1.2Mの場合 768 / 1.2 = 640
遅延時間超過時:自動で、_delay_msにスイッチする

_delay_ms
書式:_delay_ms( double );
遅延時間:引数msの遅延時間を生成
最大遅延時間:
(A)262.14ms÷F_CPU(MHz)※1.2Mの場合 262.14 / 1.2 = 218.45
(B)6.5535s(分解能0.1ms時)
遅延時間超過時:
(A)を過ぎると分解能0.1msになるが、最大遅延時間が6.5535秒に伸びる。

最大時間は頻繁に仕様変更されているようなので、実際には自分のAtmel Studioの
util/delay.h
の記述を参照すること。



  • 0.1や0.01のように小数点以下を指定することも可能
  • 原則として定数を渡すこと


2016年5月19日木曜日

矩形波、方形波、とパルス波の考え方

wikipediaによると短形波とは、



とのこと。


つまり(大まかに言うと)、

↑これは短形波、


↑これはパルス。

ということになる。

ちなみにデューティー比は(大まかに言うと)1周期におけるHighの割合。

2016年5月18日水曜日

Attiny13aでCTCの実験




○ポート設定
DDRB = 0b00000001; // PB0を出力に。

○タイマ設定(CTC動作、8分周)
TCCR0A =
(0 << COM0A1) |
(1 << COM0A0) |
(0 << COM0B1) |
(0 << COM0B0) |
(1 << WGM01)  |
(0 << WGM00); 
TCCR0B = 
(0 << WGM02) |
(0 << CS02) |
(1 << CS01) |
(0 << CS00);
fclk_I/oを1.2Mとすると、
fOCnx = 1200000 / 2 * 8 * (1 + 200)
=373Hzぐらいになるはず。

○回路図



○結果
ほぼそうなったけど、合ってるのだろうか。。
今度もう一度やってみる。

2016年5月7日土曜日

AVR タイマ0 PWM停止の方法

二日二晩調べて、答えがみつかったのでメモ。

Attiny13aのデータシートだが、

上記のようにTCCR0Bのクロック選択ビットをすべて0に設定すれば停止となるよう。


2016年5月2日月曜日

壁掛け電波時計の修理

壁掛け時計「GREENWICH MJU268」の修理メモ

MARUMAN MJU268 の取扱説明ダウンロード

デジタル表示が乱れる現象が起こり、翌日まったく表示されなくなった。
充電池が怪しいので交換してみる。

  • カバーの取り外し。

後部のネジを外し、前部のクリアパネル(両面テープで貼られている)をはがす。
パネルを外すとさらにカバーネジがあるのでそれも外す。


  • 電池交換

リチウムイオン充電池がハンダ付けされている。


型番 MAXELL ML2016
種別 二次電池(充電池)
タイプ コイン形二酸化マンガンリチウム二次電池
公称電圧 3V
公称容量 ※1 25mAh
サイズ 直径20.0mm×高さ1.6mm

電子部品屋で「ML 2016-HJI(3V 30mA、\1,007)」を購入して交換したら復活しました。