« Digisparkのファームウエア修復 | トップページ | 大型7セグLEDを4個使った表示装置 »

2022年1月16日 (日)

Arduinoで作ろう(61) Digisparkで7セグLED温度計

Digispark_lm35_7segled_

 またまたDigisparkに温度センサLM35DZをつないで温度計をつくりました。
今度の表示装置はLCDではなく秋月電子通商の74HC595付き7セグLEDです。
この秋月の7セグLEDはほんとに便利なパーツで,マイコンから3本の線でつなぐだけだし どんどん並べることもできるので使ってて楽しいですよ。オススメです。

// Digispark に秋月の74HC595の7セグLEDを接続
// LM35DZで温度計

#define SDI 0
#define LAT 1
#define CLK 2
#define tempPin A2
float value;
int temp,temp1,temp2,temp3;
const byte digits[] = {
0b11111100, // 0
0b01100000, // 1
0b11011010, // 2
0b11110010, // 3
0b01100110, // 4
0b10110110, // 5
0b10111110, // 6
0b11100000, // 7
0b11111110, // 8
0b11110110, // 9
};

void setup() {
 pinMode(tempPin,INPUT);
 pinMode( SDI, OUTPUT );
 pinMode( LAT, OUTPUT );
 pinMode( CLK, OUTPUT );
}

void loop() {
 value=analogRead(tempPin);
 temp = (value*5000)/1024;
 temp3=temp/100;  //10の位
 digitalWrite( LAT, LOW );
 shiftOut( SDI, CLK, LSBFIRST, digits[temp3] );
 digitalWrite( LAT, HIGH );
 temp2=(temp%100)/10;   //1の位
 digitalWrite(LAT, 0);
 shiftOut( SDI, CLK, LSBFIRST, digits[temp2]|0b00000001 );
 digitalWrite(LAT, 1);<br/temp1=temp%10;   //0.1 の位
 digitalWrite(LAT, 0);
 shiftOut( SDI, CLK, LSBFIRST, digits[temp1] );
 digitalWrite(LAT, 1);
 delay(1000);
}

  

| |

« Digisparkのファームウエア修復 | トップページ | 大型7セグLEDを4個使った表示装置 »

Arduino」カテゴリの記事

Digispark」カテゴリの記事

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