質問するログイン新規登録

質問編集履歴

3

電子工作の進展

2021/02/12 05:38

投稿

mau
mau

スコア13

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

回路図の追加、プログラムの意図、写真の追加

2021/02/12 05:38

投稿

mau
mau

スコア13

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
- ![回路図](e25c03414c95f89051c1225361a7147a.jpeg)
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
+ ![回路図](e25c03414c95f89051c1225361a7147a.jpeg)
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

回路図の追加、プログラムの意図

2021/02/12 03:26

投稿

mau
mau

スコア13

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
+ ![回路図](e25c03414c95f89051c1225361a7147a.jpeg)
31
+
19
32
  ```
20
33
  特になし
21
34
  ```