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

迷いませんか?

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

距離センサー(仮)

プログラミング 電子工作

おはこんばんちわ!
最近AmebaのCMでガールフレンド(仮)ってのやってますね。
僕はそこまで面白くなさそうに見えますが、人気があるので面白いのでしょう。
面倒くさいからやりませんが。


そういえば、なんか自分言語で書いたのをHTMLに変換するツールを作りたいと思ったんですが、
わかりやすく、書きやすい書き方を考えていくとHTMLのもともとに辿り着くという不思議。
それだけHTMLの言語仕様が優れているという事なのでしょう。・・・?
一応プログラミングの技術向上に役立つと思うので作ってはみようと思います。


今回、距離センサ(仮)をCdSセルで作れるのじゃないかと思い、作ってみました。
CdSセルに手を近づけたり、離したりすると値が変化するので閃きましたよ。
近ければ値が小さく、話すと値が大きくなるので近いと低い、遠いと高い音がなるようになります。

いやー、最近思ってきたんですけどジャンパワイヤに長いのしかないので
回路がとっても複雑になって困るのでちょっとジャンパワイヤのセットが欲しいですね〜
お年玉が入ってきたんで、Nexus7とかも欲しいしいろいろ欲しいんですけどね。

と テ つ モ ナ く カ ね が タ リ ナ い

とりあえず、ここは我慢一択ですね
いつ破裂するかわかりませんが。

それでは今回もソースと回路を載せていきたいと思います。
そういえばソースが見にくいんですが、どうすればいいかわからないので
今回はスペースの部分にアンダーライン入れときました。
もしもコピペするときには気をつけてください。
あと、ボタン押した時にもどんどん音が高くなるようにしました。
上限になったら高さがリセットされます。


spk_button_sensor.png

#define SPK 8
#define BUTTON 2
#define SENSOR 0

int scale = 0;

void setup(){
  pinMode(SPK,OUTPUT);
  pinMode(BUTTON,INPUT);
  pinMode(SENSOR,INPUT);
}

void loop(){
  int i = analogRead(SENSOR);
  if(digitalRead(BUTTON) == HIGH){
    if(scale + 10 < 2000)   
      scale += 10;
    else
      scale = 0;
    tone(SPK,scale,10);
    delay(10);
  }
  if(digitalRead(BUTTON) == LOW){
    scale = 0;
    tone(SPK,i*10,10);
    delay(10);
  }
}

それじゃ、今回もこれで終わりってことにしましょうかね。
それではさようなら〜