2026年6月 8日 (月)

ATtiny1614で屋根裏収納スペースの温度を記録する

3月に竣工した地域の会館。
 (50年使った旧会館から建て替え)

K23_20260608100201

屋根裏に収納スペースが設けられています。
しかし・・・モノを置いておくには温度が上がり
過ぎるんではないかという心配が。

そこで、長期間の温度を記録してくれる仕掛けを
考えてみました。
ネットを探しますとさまざまな記録機能付温度計
が出ています。
温度だけじゃなく湿度も測れるものもあります。
そして、WifiやBluetoothを使って通信できる
ものなどたくさん。
でも・・・せっかくだから、温度を測って
記録するだけというシンプルな回路を作って
みようと計画中。

使用マイコンは先日から遊んでいるATtiny1614。
それに128kバイトのEEPROMをくっつけて温度を
記録します。
外付けの温度センサは使わずチップの温度を読みます。
外部とのやりとりはデータ吸い出し時のシリアル通信だけ。

Ond11
屋根裏スペースに放り上げて、半年ほど放置。
  (屋根裏には電源が来てません)
適当な時期に引っ張り下ろして、ログデータを
吸い出し。
こんなのでどうだ!っと試作を始めてます。

1分ごとの記録なら90日ほど。
5分なら1年以上の温度変化を残せます。


で、TinyAVR1マイコンの「Tips & Tricks

◆PB2とPB3に32.768kHz水晶をつないだら
 TXDとRXが使えなくなる。どうしよう?

代替ポート(PA1とPA2)を使う。
レジスタを直接操作しなくても、
  Serial.swap(1);    // 代替ポート指定
  Serial.begin(9600);  // TXD:PA1、RXD:PA2
で、シリアル入出力できる。

◆チップの温度を読むにはどうすれば?

ADコンバータの入力チャンネルを
「TEMPSENSE」に。
そのあと、10bitのAD値をごそごそ。
てな操作になるのだが「readTemp();」関数で
1度単位のケルビン温度が出てくる。
この値を-273すればセ氏温度。
 (megaTinyCore.hのインクルードがいるかも)

| | コメント (0)

2026年6月 7日 (日)

トラ技の次号予告に「741」

仕事場に寄ったらトラ技の最新号(2026年7月号)が
届いてました。
  予約購読なんで、発売日の10日より早く来る

そして、次号8月号の予告ページがこれ。
21b

左隅を見ると・・・コレが!
11b_20260607165101
 741号特別企画
定番OPアンプμA741の研究

さて、どんな内容なのか!
面白いというか、「ほ~。なるほど」とか
「そうなんだ~」「こう来たか~」というような
興味深い記事を期待してます。


| | コメント (1)

2026年6月 4日 (木)

DigiKeyからの怖いメール:パナのバリスタ

朝イチ、PCを立ち上げてメールのチェック。
すると・・・・
DigiKeyから怖いメールが来てました。
タイトルが「Part life status notification
Pl11_20260604084001

何がアウトになるんだ?」を調べますと、
パナソニックのバリスタでした。
Pl12_20260604084001

2027年の3月が最終期限。
パナソニック バリスタ 撤退』で検索すると、
ウニャウニャ出てきます。

代替品を探しておかなくちゃ。

| | コメント (0)

2026年6月 3日 (水)

360g級 鉄の文鎮:ハンダ付け補助ツール

2026年5月22日:19mm厚「鉄」の文鎮5つ
これに続き、端材が出たのでと作ってきてくれました。
・重さ: 約360g
・サイズ:65x38x19mm
  お代は ひとつ「1500円」でと。
Bn51
  ※残数=12

写真(1)が前回の。 写真(2)の2つが今回の。
前回のに比べて奥行きが短く(50mm→38mm)に
なっています。 厚みは同じで19mm。
(a)と(b)は仕事場で現用してる文鎮です。
今回のより厚みが薄く12mm。
10年以上、愛用しています。
  これが無かったらハンダ付けがでけ
  へんやん!というレベルの常用ツール。

塗装やメッキはありません。
油が付着してます。
M5の貫通タップは一つ。
クリップ固定用のM5のキャップボルトとワッシャ、
それとクリップ先端に付けると、部品のはさみ込み
が安定するゴム板を添付します。
  ※65mm幅のクリップはご自身で入手してください。

早い者勝ちです。
ご希望の方は、この記事にコメントしてください。
  (匿名でかまいません)
その時、確実に連絡の付くメールアドレスを記入して
ください。
  (迷惑メール振り分けに注意を)
その後、私の仕事場からメールをお送りしますので
お届け先(郵便番号、住所、氏名、電話番号)を
返信してください。
代金+送料は到着後に振り込んで(振り込み先を
記したメモを同封します)ください。

※発送は、2つまでならクリックポスト(185円)を
 使います。

 

| | コメント (0)

tinyAVR1の12bitタイマTCD0で2相パルス出力

3種類あるtinyAVR系統、その中でtinyAVR1系統だけに
入っている「12bitタイマ TCD0」。
この波形出力機能を使って2相パルスを出してみました。

利用するのは「1傾斜動作」。
データシートにはこのような例が記されています。
1slope11

カウントアップされる12bitカウンタと
 CMPASET、CMPACLR
 CMPBSET、CMPBCLR
4つの比較レジスタとの一致で2つの出力波形が生成
されます。
CMPASET、CMPACLR、CMPBSET、CMPBCLRの順番を
うまくセットすれば2相パルス出力が得られます。
2pg12

実験した回路。
使ったのは14ピンのATtiny1614
「0~F」を設定できるデジタル・スイッチで16種の
出力周波数を得ました。
2pg11
試した最高周波数が1MHz。
EXTCLKに入れたパルスを元に、ハードウェアが
2相パルスを出してくれます。
  16bitタイマのTCA0を使って
  EXTCLKを発生させてます。

ですので、Arduino UNO R3で苦労したコンペアマッチ
割り込みの遅れ、これは気にしなくてかまいません。
  10kHzの2相パルス(割り込み周期25us)が
  限度でした

1MHzの2相パルス出力をオシロで見た波形
2pg21

「何発出したらストップ!」をしたいのですが、
それはまた今度。

バックアップがわりのスケッチ
  ダウンロード - quad_pls01.txt
    .inoじゃなく.txtにしてます

Arduino IDEの設定
Bdmngr21

16種の周波数(1Hz~1MHz)を設定するための分周比テーブル。

/*****  TCA分周データテーブル  *****/
// 周波数発生モードなので8MHzを1/2した
// 4MHzを原発振周波数と考える
// 2相パルスを出すTCDでさらに1/4される
const struct{
const word cmp0; // TCA0 CMP0データ 1/(n-1)
const byte clksel; // プリスケーラ設定値 + ENABLE(b0)
// 1/1,2,4,8,16,64,256,1024
}frq_tbl[] = {
{ 15625, 0b00001010 }, // 0 1Hz 1/64
{ 31250, 0b00001000 }, // 1 2Hz 1/16
{ 12500, 0b00001000 }, // 2 5Hz 1/16
{ 6250, 0b00001000 }, // 3 10Hz 1/16
{ 3125, 0b00001000 }, // 4 20Hz 1/16
{ 2500, 0b00000110 }, // 5 50Hz 1/8
{ 1250, 0b00000110 }, // 6 100Hz 1/8
{ 625, 0b00000110 }, // 7 200Hz 1/8
{ 1000, 0b00000010 }, // 8 500Hz 1/2
{ 500, 0b00000010 }, // 9 1kHz 1/2
{ 250, 0b00000010 }, // A 2kHz 1/2
{ 100, 0b00000010 }, // B 5kHz 1/2
{ 100, 0b00000000 }, // C 10kHz 1/1
{ 50, 0b00000000 }, // D 20kHz 1/1
{ 10, 0b00000000 }, // E 100kHz 1/1
{ 1, 0b00000000 }, // F 1MHz 1/1
}; // |||+--- ENABLE
// +++---- プリスケーラ


2相パルス出力関連の過去記事
2024年10月13日:1/nカウント方式とDDS方式の2相パルス発生回路
2024年9月27日:1クロックでも速くしたい DDS方式の2相パルス発生器

2018年5月25日:アナログ入力で2相パルスの周波数と正転逆転を制御する発振器
    ↑
   ここあれこれ過去記事へのリンク


・手組み基板のようす
Tn41

※追記

せっかく出力できた2相パルスをカウントするには、
tinyAVR1系内蔵のカウンタシステムはチカラ不足
でした。

・TCD(12bit)で2相パルス出力
  これはうまいこといきました

・TCA(16bit)でメインクロックを分周して
 TCDのクロック入力に入れ、2相パルスの
 周波数を可変。
  これも成功

・残るは2つのTCB(16bit)
  これでパルス数を数えられないか?

ところが・・・
TCBは内蔵クロックの他はCLK_TCAしか
カウントできないのです。

Tc11_20260604090901
イベント(事象)をカウントできればTCBの応用
範囲が広がるんですが・・・
上の表、事象入力がありますがこれをクロックには
できません。
キャプチャなどのカウント制御用です。

さらにTCBにはプリスケーラが無いのでTCAの
代わりはできません。
そして、TCAは1つしかないし・・・

・TCAの入力部
Tc12_20260604093101
計数器(CNT)の左上右矢印、クロック入力として
CLK_TCAがあります。
これがTCBのクロック入力として使えます。
これを利用してイベント信号をTCBのクロックにする
ことは可能です。
しかし、そうすると、TCAを別の用途で使うということ
ができなくなってしまいます。

ということで、
  何発出したかを数えてパルスを停止
という機能、ATtiny1614ではあきらめました。

さらに・・・
tinyAVR2のATtiny3224はTCDを持ってません
  日本語データシート(2021年)で
  「TCD 1つ」と表にしてありますが
  英文のを見ると「0」。日本語でも
  TCDの説明はありません。

TCAかTCBで2相パルスを出す方法を模索!
でしょうか。

※ATtiny3224ならなんとかなるか
16bitタイマのTCAを1つとTCBを2つ持っていて
12bitのTCDがないATtiny3224。
  これだと、なんとかなりそうです。

まず、ATtiny3224のTCB、そのクロック入力は
こんな具合にイベントが使えます。
Wg23
TCAを横取りせずにカウントできるわけです。

そしてTCAでは、「周波数波形生成モード」を使えば
こんなふうに2相パルスが出力できます。
Wg21


Wg22
何発出したかを数えてパルスを停止 」機能が
実現できそうな感じです。


| | コメント (0)

«盛る中華電線