3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

【変態】ArduinoとMozziでうねうね動くクラドニ図形【動的】

Last updated at Posted at 2018-10-16

#まずはこちらを

#以前書いた記事の続きです。 [【自作】ArduinoとMozziでつくるクラドニ図形【簡単】](https://qiita.com/p3ishunma2/items/26d9d90020e75fefd5db) の続編として、今回はクラドニ図形をセンサで動かしてみたいと思う。 どうなるだろうか。 #前回との変更点 硫化カドミウム (CdS) を使った半固定抵抗のcdsセルを、回路に組み込む。 手で覆ったり、光を当てると抵抗値が変わるので、Mozziと組み合わせればテルミンも作れる。 #回路図 ![chladni_回路図.png](https://qiita-image-store.s3.amazonaws.com/0/285932/369f8c0a-ee5f-e9af-4da3-0fc52c67a4ed.png) #プログラム
Chladni.ino
#include <MozziGuts.h> //Mozziのライブラリを利用するために読み込み
#include <Oscil.h> //音出力用のオシレーターテンプレートの読み込み
#include <tables/sin2048_int8.h> //オシレーターでサイン波を利用するために読み込み
Oscil <SIN2048_NUM_CELLS, AUDIO_RATE> aSin(SIN2048_DATA); //オシレーターのサイン波の形式を設定
#define CONTROL_RATE 64 //コントロールレート

int pitch = 200;

void setup(){
  startMozzi(CONTROL_RATE); //コントロールレートを設定
  aSin.setFreq(pitch); //出力する周波数
  Serial.begin(9600);//Start connection with serial monitor

}

void updateControl(){
  int pitch = mozziAnalogRead(1); //1番ピンから入力
  aSin.setFreq(pitch); //出力する周波数
  Serial.println(pitch);
}
int updateAudio(){
  return aSin.next(); //サイン波を引き続き出力
}
void loop(){
  audioHook(); //音の出力
}

出力はただの正弦波で、周波数をアナログ入力に変えてるだけ。
センサの値を確認するために、シリアルモニタに出力
プルアップ/プルダウンの切り替えや、周波数に任意の定数をかけ算して、調整してみても面白い

3
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?