読者です 読者をやめる 読者になる 読者になる

迷いませんか?

プログラミング、電子工作、ゲーム・・・etc、色々やるけど中途半端なブログです。

簡易的温度計(二進数)を作った

C/C++ プログラミング 電子工作

Arduinoで結構前にLEDで二進数表示する温度計を作ったからとりあえずうp?
この温度計を作るときに大変だったのが摂氏温度に変換すること、
とりあえず調べてみるもののなかなか出てこないこと(^_^;)

そして見つけたのが5/1024を掛けたあとに更に100を書けるというもの。
・・・ちょっと良くわからないですね(´・ω・`)
1024はわかります。たぶん読み込んだ値がなんかバイト関連だったんでしょう


あれ?ちっともわかってないぞ?
まあやり方はわかったのでキニシナイことにしましょう、こういうのは諦めが肝心
しかし、こっちは温度の変化が乏しいのでセンサーにハーハー息をかけたり、
やめたりをして温度がしっかり変わっているかを確かめるという大変さ

沖縄なんで低い温度を試すことも出来ません(´Д`)ハァ…

ちなみに、温度センサはLM35。結構メジャーなのかもしれません。

それでは回路図

f:id:pazzle1230:20140208184444p:plain

そしてソースコード

#define LED_ONE 6
#define LED_TWO 5
#define LED_THR 2
#define LED_FOU 3
#define LED_FIV 4


#define SENSOR 0

int summary = 0;
int tempC = 0;
int l_up[5] = {0};
int i;

void setup(){
  pinMode(LED_ONE,OUTPUT);
  pinMode(LED_TWO,OUTPUT);
  pinMode(LED_THR,OUTPUT);
  pinMode(LED_FOU,OUTPUT);
  pinMode(LED_FIV,OUTPUT);
  
  Serial.begin(9600);
}

void loop(){
  
  summary = analogRead(SENSOR);
  tempC = ((double)(summary) * (5 / 1024.0)) * 100.0;
  
  for(i = 0;i < 5;i++)
    l_up[i] = 0;
  
  if(tempC / 16 == 1){
    l_up[0] = 1;
    tempC = tempC - 16;
  }
  if(tempC / 8 == 1){
    l_up[1] = 1;
    tempC = tempC - 8;
  }
  if(tempC / 4 == 1){
    l_up[2] = 1;
    tempC = tempC - 4;
  }
  if(tempC / 2 == 1){
    l_up[3]= 1;
    tempC = tempC - 2;
  }
  if(tempC == 1)
    l_up[4] = 1;
  
    
  for(i = 0;i < 5;i++){
    if(l_up[i] == 1){
      if(i == 0)
        digitalWrite(LED_ONE,HIGH);
      if(i == 1)
        digitalWrite(LED_TWO,HIGH);
      if(i == 2)
        digitalWrite(LED_THR,HIGH);
      if(i == 3)
        digitalWrite(LED_FOU,HIGH);
      if(i == 4)
        digitalWrite(LED_FIV,HIGH);
    }else if(l_up[i] == 0){
      if(i == 0)
        digitalWrite(LED_ONE,LOW);
      if(i == 1)
        digitalWrite(LED_TWO,LOW);
      if(i == 2)
        digitalWrite(LED_THR,LOW);
      if(i == 3)
        digitalWrite(LED_FOU,LOW);
      if(i == 4)
        digitalWrite(LED_FIV,LOW);
    }
  }
  
  delay(1000);
}

もっと簡単に書ける方法を知りたい・・・
簡単にっていうか簡潔に?綺麗に?ですかね。
なんですかこのスペグティは、とっても不味そうですよ。

温度は何回か測り平均を取ったほうがいいらしいんですが、
待ち時間の調整などが面倒くさいので一回で済ませました。
そしてもう作れると思わしきものがなくなってきている・・・


まあいっか

それではさようなら〜