« 箔検電器を作ってみた | トップページ | コロナ放電ガン »

2024年9月21日 (土)

ATtiny402 + LM35DZ で温度計

202409201

 秋月電子通商でATtiny402の取り扱いが始まったので(1個70円),さっそく買って試してみました。
以前,ATtiny202を使ってみたのですが プログラムメモリが2KBしかなくて,なかなか使いどころが難しいなあと感じました。今回のATtiny402は,2倍の4KBあるので前回できなかった温度計を作ってみることにしましょう。
202409202Attiny402

 まずは,SOP8パッケージのATtiny402を秋月のSOP8→DIP変換基板を使ってDIP化します。

202409204

 前回,Arduino IDEのボードマネージャで「megaTinyCore」をインストールしたので,ATtiny402もすぐに使えます。
温度センサLM35DZI2C接続のLCD1602を接続してスケッチを書いてみます。

Attiny402_lm35_lcd__20240920202901

//温度計 LM35 + I2C_LCD1602
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define tempPin A3
LiquidCrystal_I2C lcd(0x3F, 16, 2); //I2Cアドレス 0x3F
float value;
float temp;

void setup(){
pinMode(tempPin,INPUT);
Wire.begin();
lcd.init();
lcd.backlight();
}

void loop(){
value=analogRead(tempPin);
temp = (value*500)/1023;
lcd.setCursor(0,0);
lcd.print("temperature:");
lcd.setCursor(9,1);
//lcd.print(temp);
lcd.print(temp,1); lcd.write(0b11011111); lcd.print("C");
delay(1000);
}

パソコンとの接続にはUSB-TTL変換基板を使って,UPDI(Unified Program and Debug Interface)で書き込むことにします。
Arduino IDEの設定は次のようにして書き込みます。そうすると,こんな小さなスケッチなのにプログラムメモリ4KBのうち86%が使われてしまいました。ライブラリなんか使わないで生でゴリゴリやらないとダメなんでしょうかねw
202409203

ところで,lcd.print(temp) じゃなくて,lcd.print(temp,1) と書いてやると,小数点以下を1桁にしてくれるんですね(小数点以下第2位を四捨五入)。知らなかった :D

| |

« 箔検電器を作ってみた | トップページ | コロナ放電ガン »

Arduino」カテゴリの記事

AVRマイコン」カテゴリの記事