Skip to content

Commit 139158b

Browse files
committed
add files
1 parent a6c0b71 commit 139158b

File tree

19 files changed

+314
-0
lines changed

19 files changed

+314
-0
lines changed

Dice/Dice.ino

+43
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
// ピンのポート
2+
const int LED[7] = { 8, 7, 6, 5, 4, 3, 2};
3+
const int BUTTON = 12;
4+
5+
const int seed = 0; // 変数のシード値
6+
int r = 0; // random()で取得した値を入れるための変数
7+
8+
// サイコロの出た目によって光る位置を変えるための配列
9+
int light[6][6] = {
10+
{7}, // サイコロの目が1のとき
11+
{2, 5}, // サイコロの目が2のとき
12+
{2, 7, 5}, // .
13+
{1, 3, 4, 6}, // .
14+
{1, 3, 4, 6, 7}, // .
15+
{1, 2, 3, 4, 5, 6}
16+
};
17+
18+
// 設定
19+
void setup() {
20+
randomSeed(analogRead(seed));
21+
for (int i = 0; i < 7; i++)
22+
pinMode(LED[i], OUTPUT);
23+
pinMode(BUTTON, INPUT);
24+
Serial.begin(9600);
25+
}
26+
27+
// メインループ
28+
void loop() {
29+
if (digitalRead(BUTTON) == LOW) {
30+
for (int i = 0; i < 7; i++)
31+
digitalWrite(LED[i], LOW); // 全てのLEDを消す
32+
33+
r = random(0, 6); // 0 ~ 5 の乱数
34+
35+
// 出た目のLEDを光らせる
36+
for (int i = 0; i < 6; i++) {
37+
if (light[r][i] != 0)
38+
digitalWrite(LED[light[r][i] - 1], HIGH);
39+
}
40+
}
41+
}
42+
43+
// プログラム7 Dice.ino : 応用実験1

DigitalButton2/DigitalButton2.ino

+27
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
const int LED = 7;
2+
const int BUTTON = 12;
3+
const int BUTTON2 = 13;
4+
int buttonState = 0;
5+
int sw = 0; // スイッチの状態を保存するための変数
6+
7+
// 設定
8+
void setup() {
9+
pinMode(LED, OUTPUT);
10+
pinMode(BUTTON, INPUT);
11+
}
12+
13+
// メインループ
14+
void loop() {
15+
if (digitalRead(BUTTON) == LOW)
16+
sw = 1; // BUTTONが押された
17+
else if (digitalRead(BUTTON2) == LOW)
18+
sw = 0; // BUTTON2が押された
19+
20+
// swの状態によってLEDを付けるかどうかを決める
21+
if (sw == 0)
22+
digitalWrite(LED, LOW);
23+
else
24+
digitalWrite(LED, HIGH);
25+
}
26+
27+
// プログラム4 DigitalButton2.ino : 課題2

LED_lighting.ino

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
const int LED = 13;
2+
3+
// 設定
4+
void setup() {
5+
pinMode(LED, OUTPUT); // 13番のLEDを出力用に設定
6+
}
7+
8+
// メインループ
9+
void loop() {
10+
digitalWrite(LED, HIGH); // LEDをつける
11+
delay(500); // 500ms待つ
12+
degitalWrite(LED, LOW); // LEDを消す
13+
delay(500); // 500ms待つ
14+
}
15+
16+
// プログラム1 サンプルプログラム1 : 演習1,2 課題1

Termin_Dwrite/Termin_Dwrite.ino

+62
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
// 音階の定義 (周波数)
2+
#define NOTE_C4 262
3+
#define NOTE_D4 294
4+
#define NOTE_E4 330
5+
#define NOTE_F4 349
6+
#define NOTE_G4 392
7+
#define NOTE_A4 440
8+
#define NOTE_B4 492
9+
#define NOTE_C5 523
10+
11+
// ピンのポート
12+
const int speakerPin = 10;
13+
const int sensorPin = 0;
14+
const int threshold = 80;
15+
double d;
16+
17+
// 設定
18+
void setup() {
19+
pinMode(speakerPin, OUTPUT);
20+
Serial.begin(9600);
21+
}
22+
23+
// メインループ
24+
void loop() {
25+
onPress();
26+
}
27+
28+
// 距離の計算と音を鳴らす処理
29+
void onPress() {
30+
int value = analogRead(sensorPin);
31+
int range = (6787 / (value - 3)) - 4;
32+
33+
if (range < 10)
34+
d = 500000.0 / NOTE_C4;
35+
else if (range < 20)
36+
d = 500000.0 / NOTE_D4;
37+
else if (range < 30)
38+
d = 500000.0 / NOTE_E4;
39+
else if (range < 40)
40+
d = 500000.0 / NOTE_F4;
41+
else if (range < 50)
42+
d = 500000.0 / NOTE_G4;
43+
else if (range < 60)
44+
d = 500000.0 / NOTE_A4;
45+
else if (range < 70)
46+
d = 500000.0 / NOTE_B4;
47+
else if (range < 79)
48+
d = 500000.0 / NOTE_C5;
49+
else
50+
return;
51+
52+
// Serial.println(d);
53+
54+
for (int i = 0; i < 50; i++) {
55+
digitalWrite(speakerPin, LOW); // 音を止める
56+
delayMicroseconds(d); // d[ms]待つ dが変わることで音階が変わる
57+
digitalWrite(speakerPin, HIGH); // 音を鳴らす
58+
delayMicroseconds(d); // d[ms]待つ
59+
}
60+
}
61+
62+
// プログラム6 Termin_Dwrite.ino : 課題3

Termin_tone/Termin_tone.ino

+52
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
// ドレミの音階 (周波数を設定)
2+
#define NOTE_C4 262
3+
#define NOTE_D4 294
4+
#define NOTE_E4 330
5+
#define NOTE_F4 349
6+
#define NOTE_G4 392
7+
#define NOTE_A4 440
8+
#define NOTE_B4 492
9+
#define NOTE_C5 523
10+
11+
// ピンのポートを定義
12+
const int speakerPin = 10;
13+
const int sensorPin = 0;
14+
const int threshold = 80;
15+
16+
// 設定
17+
void setup() {
18+
pinMode(speakerPin, OUTPUT);
19+
Serial.begin(9600); // モニタ出力用の設定
20+
}
21+
22+
// メインループ
23+
void loop() {
24+
onPress();
25+
delay(10);
26+
}
27+
28+
void onPress() {
29+
int value = analogRead(sensorPin);
30+
int range = (6787 / (value - 3)) - 4; // 受け取った値を距離[cm]に変換
31+
Serial.println(range);
32+
33+
// センサとの距離によって鳴らす音の高さを変える
34+
if (range < 10)
35+
tone(speakerPin, NOTE_C4, 500);
36+
else if (range < 20)
37+
tone(speakerPin, NOTE_D4, 500);
38+
else if (range < 30)
39+
tone(speakerPin, NOTE_E4, 500);
40+
else if (range < 40)
41+
tone(speakerPin, NOTE_F4, 500);
42+
else if (range < 50)
43+
tone(speakerPin, NOTE_G4, 500);
44+
else if (range < 60)
45+
tone(speakerPin, NOTE_A4, 500);
46+
else if (range < 70)
47+
tone(speakerPin, NOTE_B4, 500);
48+
else if (range < 79)
49+
tone(speakerPin, NOTE_C5, 500);
50+
}
51+
52+
// プログラム5 サンプルプログラム3 Termin_tone.ino : 演習5

Timer/Timer.ino

+58
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
// 音階の定義 (周波数)
2+
#define NOTE_C4 262
3+
#define NOTE_D4 294
4+
#define NOTE_E4 330
5+
#define NOTE_F4 349
6+
#define NOTE_G4 392
7+
#define NOTE_A4 440
8+
#define NOTE_B4 492
9+
#define NOTE_C5 523
10+
11+
// ピンのポート
12+
const int LED = 2;
13+
const int BUTTON = 12;
14+
const int speakerPin = 10;
15+
16+
const int set_sec = 3; // タイマーの秒数
17+
int sec = 0; // タイマーの経過時間を保存するための変数
18+
int state = -1; // タイマーの状態
19+
20+
// 設定
21+
void setup() {
22+
pinMode(LED, OUTPUT);
23+
pinMode(BUTTON, INPUT);
24+
pinMode(speakerPin, OUTPUT);
25+
Serial.begin(9600);
26+
}
27+
28+
// メインループ
29+
void loop() {
30+
if (digitalRead(BUTTON) == LOW && state == -1) {
31+
sec = set_sec;
32+
state = 0;
33+
}
34+
35+
// タイマーがスタートしているとき
36+
if (state == 0) {
37+
digitalWrite(LED, HIGH); // LEDを点滅させる
38+
delay(500);
39+
digitalWrite(LED, LOW);
40+
delay(500);
41+
sec--; // 時間をカウント
42+
43+
if (sec <= 0)
44+
state = 1; // タイマーの状態を鳴らす状態に
45+
}
46+
47+
// タイマーが0のとき
48+
if (state == 1) {
49+
tone(speakerPin, NOTE_G4, 200); // 音を鳴らす
50+
delay(400);
51+
if (digitalRead(BUTTON) == LOW) { // ボタンが押されたら最初の状態に戻す
52+
state = -1;
53+
delay(1000);
54+
}
55+
}
56+
}
57+
58+
// プログラム8 Timer.ino : 応用実験2

ensyu2/ensyu2.ino

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
const int LED = 13;
2+
3+
void setup() {
4+
// put your setup code here, to run once:
5+
pinMode(LED, OUTPUT);
6+
}
7+
8+
void loop() {
9+
// put your main code here, to run repeatedly:
10+
digitalWrite(LED, HIGH);
11+
delay(500);
12+
digitalWrite(LED, LOW);
13+
delay(500);
14+
}

ensyu3/ensyu3.ino

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// ピンのポートを配列に入れておく
2+
const int LED[7] = { 8, 7, 6, 5, 4, 3, 2};
3+
4+
// 設定
5+
void setup() {
6+
for (int i = 0; i < 7; i++)
7+
pinMode(LED[i], OUTPUT); // ピンの設定
8+
}
9+
10+
// メインループ
11+
void loop() {
12+
for (int i = 0; i < 7; i++)
13+
digitalWrite(LED[i], HIGH); // 全てのLEdを付ける
14+
delay(500); // 500ms待つ
15+
for (int i = 0; i < 7; i++)
16+
digitalWrite(LED[i], LOW); // 全てのLEDを消す
17+
delay(500); // 500ms待つ
18+
}
19+
20+
// プログラム2 LEDのすべてを点滅させるプログラム : 演習3

ensyu4/ensyu4.ino

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
const int LED = 7;
2+
const int BUTTON = 12;
3+
int buttonState = 0;
4+
5+
// 設定
6+
void setup() {
7+
pinMode(LED, OUTPUT);
8+
pinMode(BUTTON, INPUT);
9+
}
10+
11+
// メインループ
12+
void loop() {
13+
buttonState = digitalRead(BUTTON);
14+
15+
// ボタンが押されるとLEDを付ける
16+
if (buttonState == LOW)
17+
digitalWrite(LED, HIGH);
18+
else
19+
digitalWrite(LED, LOW);
20+
}
21+
22+
// プログラム3 サンプルプログラム2 DigiralButton.ino : 演習4

screen-shot/1.jpg

105 KB
Loading

screen-shot/2.jpg

164 KB
Loading

screen-shot/3.jpg

149 KB
Loading

screen-shot/4.jpg

194 KB
Loading

screen-shot/5.jpg

239 KB
Loading

screen-shot/6-1.jpg

157 KB
Loading

screen-shot/6-2.jpg

230 KB
Loading

screen-shot/7.jpg

217 KB
Loading

screen-shot/8-1.jpg

182 KB
Loading

screen-shot/8-2.jpg

204 KB
Loading

0 commit comments

Comments
 (0)