//<Arduinoでの変数スコープとstatic宣言のテスト>
//
//Arduinoは、C言語と違い変数をローカルかグローバルかで使い分けが難しい面あり
//(loop()が前提でCのようなmain()関数内で1回だけ実行できる領域が無い)
//★【ローカル:loop()関数内】
// (メリット)他の関数内変数との干渉無し(同じ変数でも別物)
// (デメリット)変数宣言を繰り返すので毎回初期化され、値の継続が困難
//★【グルーバル:setup()関数の前】
// (メリット)他の関数内変数との共有
// (デメリット)共有不要の際は意図せず干渉する可能性あり
//
// ローカルで使用したいのに、デメリット回避のためグローバル変数を使わざるを
// 得ず、グローバルのデメリットや、可読性の悪さに陥ることを防ぐため、static
// 宣言を用いることで回避できる(ただし、これも可読性は悪い)
#define RED_LED 9
#define Vo A0
//変数をインクリメントさせてシリアルモニタに表示していく
int a; //グローバル変数
void setup() {
pinMode(9, OUTPUT);
pinMode(Vo, INPUT);
}
void loop() {
int volumeValue = analogRead(Vo);
analogWrite(9,volumeValue/4);
//analogWrite(RED_LED,volumeValue/4);
delay(10);
Serial.println(digitalRead(9));
}