質問編集履歴
3
電子工作の進展
title
CHANGED
File without changes
|
body
CHANGED
@@ -205,4 +205,15 @@
|
|
205
205
|
* ➡for文を使えば番号をずらすことができるから、1本の信号線で全てのLEDを光らせることができる
|
206
206
|
*/
|
207
207
|
```
|
208
|
-
[写真7(2/12 12:00)](https://drive.google.com/file/d/1l4U9dNey-ykpJfuiqss3FwbpLzr1qKtT/view?usp=sharing)
|
208
|
+
[写真7(2/12 12:00)](https://drive.google.com/file/d/1l4U9dNey-ykpJfuiqss3FwbpLzr1qKtT/view?usp=sharing)
|
209
|
+
|
210
|
+
追記3(2/12 14:30)
|
211
|
+
LEDリングのサンプルコードを利用したところ、信号線に信号がいっていることがわかりました。
|
212
|
+
ただし、課題として
|
213
|
+
・自身が書いたLEDリングのソースコードだと虹色に光らない➡そもそも思うように光らない
|
214
|
+
・超音波センサを反応させ続けないとプログラムが動かない➡1回の値の取得で継続的に動作させたい
|
215
|
+
ということが明らかになりました。
|
216
|
+
この課題を改善するためには、どのようにプログラムを書き換えればよろしいでしょうか?
|
217
|
+
(LEDリングの信号線のpinの位置はコードに合わせて変えております。)
|
218
|
+
|
219
|
+
}
|
2
回路図の追加、プログラムの意図、写真の追加
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,19 +16,6 @@
|
|
16
16
|
[写真5](https://drive.google.com/file/d/1jDxBMv9r0PWJieynWzUtGQLAgaKghRwf/view?usp=sharing,%20)
|
17
17
|
[写真6](https://drive.google.com/file/d/1jEXwI0SldAwgW6rp0n1z-lCYeN2TSbbh/view?usp=sharing)
|
18
18
|
|
19
|
-
追記
|
20
|
-
色々ご指摘ありがとうございます。回路図作成に手間取ってて返信が遅れました。
|
21
|
-
写真の件については申し訳ございません。違う種類のものが混ざっていたようです。
|
22
|
-
|
23
|
-
プログラムについて補足させていただきますと、
|
24
|
-
超音波センサーで距離を取得し、一定の距離以下(今回はとりあえず2としておきましたが、2未満は難しいという事ですので後ほど修正させていただきます。)になったとき、
|
25
|
-
LED 12連Ringが虹色に点灯するプログラムを書かせていただきました。
|
26
|
-
また、センサが感知するたびにLEDが光るというようにしたいです。
|
27
|
-
ゆくゆくは、9Vのモバイルバッテリーを搭載させ持ち運びができるようにする予定です。
|
28
|
-
|
29
|
-
回路図もfrizingを用いて書かせていただきました。ご迷惑をお掛けしますが、再度ご教授お願いします。
|
30
|
-

|
31
|
-
|
32
19
|
```
|
33
20
|
特になし
|
34
21
|
```
|
@@ -122,4 +109,100 @@
|
|
122
109
|
|
123
110
|
使用基盤:Aruduino UNO
|
124
111
|
超音波センサ:HC-SR04
|
125
|
-
LED:NeoPixel Ring 12連フルカラー
|
112
|
+
LED:NeoPixel Ring 12連フルカラー
|
113
|
+
|
114
|
+
|
115
|
+
追記(2/12 9:00)
|
116
|
+
色々ご指摘ありがとうございます。回路図作成に手間取ってて返信が遅れました。
|
117
|
+
写真の件については申し訳ございません。違う種類のものが混ざっていたようです。
|
118
|
+
|
119
|
+
プログラムについて補足させていただきますと、
|
120
|
+
超音波センサーで距離を取得し、一定の距離以下(今回はとりあえず2としておきましたが、2未満は難しいという事ですので後ほど修正させていただきます。)になったとき、
|
121
|
+
LED 12連Ringが虹色に点灯するプログラムを書かせていただきました。
|
122
|
+
また、センサが感知するたびにLEDが光るというようにしたいです。
|
123
|
+
ゆくゆくは、9Vのモバイルバッテリーを搭載させ持ち運びができるようにする予定です。
|
124
|
+
|
125
|
+
回路図もfrizingを用いて書かせていただきました。ご迷惑をお掛けしますが、再度ご教授お願いします。
|
126
|
+

|
127
|
+
|
128
|
+
追記2(2/12 12:00)
|
129
|
+
配線自体は上手くいったようですが、プログラムが思う通りに動いてくれません。
|
130
|
+
ご指摘いただいた通り、超音波センサの距離の閾値を変えてみましたが、上手く反応していない状態です。ご教授よろしくお願いします。
|
131
|
+
```C
|
132
|
+
/*
|
133
|
+
* 最大32256バイトのフラッシュメモリのうち、スケッチが3614バイト(11%)を使っています。
|
134
|
+
* 最大2048バイトのRAMのうち、グローバル変数が41バイト(2%)を使っていて、ローカル変数で2007バイト使うことができます。
|
135
|
+
*/
|
136
|
+
|
137
|
+
//ライブラリの読み込み
|
138
|
+
#include <Adafruit_NeoPixel.h>
|
139
|
+
#define MAX_VAL 64 // 0 to 255 for brightness ➡ 8bitの範囲で輝度の調整
|
140
|
+
#define DELAY_TIME 50
|
141
|
+
|
142
|
+
int echoPin = 2;
|
143
|
+
int trigPin = 3;
|
144
|
+
double Duration = 0;
|
145
|
+
double Distance = 0;
|
146
|
+
int Neopixel_Count = 60;
|
147
|
+
int Neopixel_Pin = 4; //NeoPixelを接続するデジタル出力ピン
|
148
|
+
|
149
|
+
//インスタンスの生成
|
150
|
+
Adafruit_NeoPixel strip = Adafruit_NeoPixel(Neopixel_Count,Neopixel_Pin,NEO_GRB + NEO_KHZ800);
|
151
|
+
/*Adafruit_NeoPixelの各パラメータについて
|
152
|
+
*
|
153
|
+
* 1つ目のパラメータは、使用するLEDの個数を表す。使用するLEDの数に設定すればメモリの節約になる➡
|
154
|
+
* 2つ目のパラメータは、使用するピンの番号(input)を表す。ピンの接続先に注意すること➡Neopixel_Pin
|
155
|
+
* 3つ目のパラメータはデータの並べ方や転送速度を表す。変更する必要もなさそうだし、正直よくわからんからそのまま。
|
156
|
+
*/
|
157
|
+
// NEO_RGB Pixels are wired for RGB bitstream
|
158
|
+
// NEO_GRB Pixels are wired for GRB bitstream
|
159
|
+
// NEO_KHZ400 400 KHz bitstream (e.g. FLORA pixels)
|
160
|
+
// NEO_KHZ800 800 KHz bitstream (e.g. High Density LED strip)
|
161
|
+
|
162
|
+
|
163
|
+
void setup() {
|
164
|
+
pinMode(echoPin,INPUT);
|
165
|
+
pinMode(trigPin,OUTPUT);
|
166
|
+
|
167
|
+
//インスタンスの使用
|
168
|
+
strip.begin();
|
169
|
+
strip.show();
|
170
|
+
/*
|
171
|
+
* 「インスタンス名.begin()」でインスタンスの使用を開始。
|
172
|
+
* この時すべてのLED上に関する、Arduino上のチャンネル用メモリに0が書き込まれる。➡LEDの初期化
|
173
|
+
* 「インスタンス名.show()」でArduinoからLEDへ転送され、一時的にLEDがオフになる。
|
174
|
+
*/
|
175
|
+
}
|
176
|
+
|
177
|
+
void loop() {
|
178
|
+
digitalWrite(trigPin, LOW);
|
179
|
+
delayMicroseconds(2);
|
180
|
+
digitalWrite( trigPin, HIGH ); //超音波を出力
|
181
|
+
delayMicroseconds( 10 ); //
|
182
|
+
digitalWrite( trigPin, LOW );
|
183
|
+
Duration = pulseIn( echoPin, HIGH ); //センサからの入力
|
184
|
+
Duration = Duration/2;//往復距離なので片道の距離に置き換える
|
185
|
+
Distance = Duration*340*100/1000000;//音速を340m/sと定義し、片道距離の正規化を行う。
|
186
|
+
if (Distance < 5 ){//どの距離でLEDを光らせたいか決める
|
187
|
+
theaterChaseRainbow(DELAY_TIME);
|
188
|
+
strip.show();
|
189
|
+
}
|
190
|
+
}
|
191
|
+
|
192
|
+
|
193
|
+
//虹色にLEDを光らせる
|
194
|
+
void theaterChaseRainbow(int wait){
|
195
|
+
for (int j=0; j<256; j++){//256色➡0~255パターンの色の変化をさせるため
|
196
|
+
for (int i=0; i<strip.numPixels(); i++){//インスタンス名.numPixelsでLEDの個数を取得
|
197
|
+
strip.setPixelColor(i,i+j);
|
198
|
+
}
|
199
|
+
}
|
200
|
+
}
|
201
|
+
|
202
|
+
/*インスタンスにカラーデータを書き込む関数
|
203
|
+
* インスタンス名.setPixelColor(i,c);
|
204
|
+
* i番目のLEDにcで表されるカラーデータを書き込む関数
|
205
|
+
* ➡for文を使えば番号をずらすことができるから、1本の信号線で全てのLEDを光らせることができる
|
206
|
+
*/
|
207
|
+
```
|
208
|
+
[写真7(2/12 12:00)](https://drive.google.com/file/d/1l4U9dNey-ykpJfuiqss3FwbpLzr1qKtT/view?usp=sharing)
|
1
回路図の追加、プログラムの意図
title
CHANGED
File without changes
|
body
CHANGED
@@ -16,6 +16,19 @@
|
|
16
16
|
[写真5](https://drive.google.com/file/d/1jDxBMv9r0PWJieynWzUtGQLAgaKghRwf/view?usp=sharing,%20)
|
17
17
|
[写真6](https://drive.google.com/file/d/1jEXwI0SldAwgW6rp0n1z-lCYeN2TSbbh/view?usp=sharing)
|
18
18
|
|
19
|
+
追記
|
20
|
+
色々ご指摘ありがとうございます。回路図作成に手間取ってて返信が遅れました。
|
21
|
+
写真の件については申し訳ございません。違う種類のものが混ざっていたようです。
|
22
|
+
|
23
|
+
プログラムについて補足させていただきますと、
|
24
|
+
超音波センサーで距離を取得し、一定の距離以下(今回はとりあえず2としておきましたが、2未満は難しいという事ですので後ほど修正させていただきます。)になったとき、
|
25
|
+
LED 12連Ringが虹色に点灯するプログラムを書かせていただきました。
|
26
|
+
また、センサが感知するたびにLEDが光るというようにしたいです。
|
27
|
+
ゆくゆくは、9Vのモバイルバッテリーを搭載させ持ち運びができるようにする予定です。
|
28
|
+
|
29
|
+
回路図もfrizingを用いて書かせていただきました。ご迷惑をお掛けしますが、再度ご教授お願いします。
|
30
|
+

|
31
|
+
|
19
32
|
```
|
20
33
|
特になし
|
21
34
|
```
|