質問編集履歴

2

2020/01/10 23:38

投稿

ganaha_cocoA
ganaha_cocoA

スコア4

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
 
4
4
 
5
+
6
+
5
7
  ```Arudino
6
8
 
7
9
  byte bb1[8];

1

2020/01/10 23:38

投稿

ganaha_cocoA
ganaha_cocoA

スコア4

test CHANGED
File without changes
test CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
 
4
4
 
5
+ ```Arudino
6
+
5
7
  byte bb1[8];
6
8
 
7
9
  byte bb2[8];
@@ -44,336 +46,334 @@
44
46
 
45
47
  int led6=8;
46
48
 
47
- int led7=9;```ここに言語を入力
49
+ int led7=9;
50
+
48
-
51
+ int led8=10;
52
+
53
+
54
+
55
+ void setup()
56
+
57
+
58
+
59
+ pinMode(SensPin,INPUT_PULLUP);
60
+
61
+ pinMode(led1,OUTPUT);
62
+
63
+ pinMode(led2,OUTPUT);
64
+
65
+ pinMode(led3,OUTPUT);
66
+
67
+ pinMode(led4,OUTPUT);
68
+
69
+ pinMode(led5,OUTPUT);
70
+
71
+ pinMode(led6,OUTPUT);
72
+
73
+ pinMode(led7,OUTPUT);
74
+
75
+ pinMode(led8,OUTPUT);
76
+
77
+
78
+
79
+ /* 文字パターン[A] */
80
+
81
+ bb1[0]=B00000000;
82
+
83
+ bb1[1]=B00000000;
84
+
85
+ bb1[2]=B00111111;
86
+
87
+ bb1[3]=B01001000;
88
+
89
+ bb1[4]=B10001000;
90
+
91
+ bb1[5]=B01001000;
92
+
93
+ bb1[6]=B00111111;
94
+
95
+ bb1[7]=B00000000;
96
+
97
+ /* 文字パターン[B] */
98
+
99
+ bb2[0]=B00000000;
100
+
101
+ bb2[1]=B00000000;
102
+
103
+ bb2[2]=B11111110;
104
+
105
+ bb2[3]=B10010010;
106
+
107
+ bb2[4]=B10010010;
108
+
109
+ bb2[5]=B10010010;
110
+
111
+ bb2[6]=B01101100;
112
+
113
+ bb2[7]=B00000000;
114
+
115
+ /* 文字パターン[C] */
116
+
117
+ bb3[0]=B00000000;
118
+
119
+ bb3[1]=B00111100;
120
+
121
+ bb3[2]=B01000010;
122
+
123
+ bb3[3]=B10000001;
124
+
125
+ bb3[4]=B10000001;
126
+
127
+ bb3[5]=B10000001;
128
+
129
+ bb3[6]=B01000010;
130
+
131
+ bb3[7]=B00100100;
132
+
133
+ /* 文字パターン[D] */
134
+
135
+ bb4[0]=B00000000;
136
+
137
+ bb4[1]=B00000000;
138
+
139
+ bb4[2]=B11111111;
140
+
141
+ bb4[3]=B10000001;
142
+
143
+ bb4[4]=B10000001;
144
+
145
+ bb4[5]=B10000001;
146
+
147
+ bb4[6]=B01000010;
148
+
149
+ bb4[7]=B00111100;
150
+
151
+ /* 文字パターン[E] */
152
+
153
+ bb5[0]=B00000000;
154
+
155
+ bb5[1]=B11111110;
156
+
157
+ bb5[2]=B10010010;
158
+
159
+ bb5[3]=B10010010;
160
+
161
+ bb5[4]=B10010010;
162
+
163
+ bb5[5]=B10010010;
164
+
165
+ bb5[6]=B10010010;
166
+
167
+ bb5[7]=B10000010;
168
+
169
+
170
+
171
+ km=7;
172
+
173
+ /*パターンの総コマ数 */
174
+
175
+ /* 配列bbをbyte型に宣言しているので,8bitしか入らない。
176
+
177
+ LEDの個数を9個以上に増やす場合は,int型に宣言を変更する */
178
+
179
+ kct=0;
180
+
181
+ Tperiod=300;
182
+
183
+ Serial.begin(9600);
184
+
185
+ }
186
+
187
+
188
+
189
+ void loop(){
190
+
191
+ if(Serial.available() > 0){
192
+
193
+ date=Serial.read();
194
+
195
+ switch(date){
196
+
197
+ case'a':
198
+
199
+ Serial.print("receive A");
200
+
201
+ break;
202
+
203
+ case'b':
204
+
205
+ Serial.print("receive B");
206
+
207
+ break;
208
+
209
+ case'c':
210
+
211
+ Serial.print("receive C");
212
+
213
+ break;
214
+
215
+ case'd':
216
+
217
+ Serial.print("receive D");
218
+
219
+ break;
220
+
221
+ case'e':
222
+
223
+ Serial.print("receive E");
224
+
225
+ break;
226
+
227
+
228
+
229
+ }
230
+
231
+ }
232
+
233
+
234
+
235
+ byte v;/*文字パターン作業変数*/
236
+
237
+ /*文字パターンの表示*/
238
+
239
+ if (kind>0 && kind<=km && date=='a')
240
+
241
+ { /* 添え字が範囲内であることを確認した */
242
+
243
+ v=bb1[kind]; /* 文字パターンを読み出して,*/
244
+
245
+ hyoji(v); /*LEDに表示する */
246
+
247
+ }
248
+
249
+ if (kind>0 && kind<=km && date=='b' )
250
+
251
+ { /* 添え字が範囲内であることを確認した */
252
+
253
+ v=bb2[kind]; /* 文字パターンを読み出して,*/
254
+
255
+ hyoji(v); /*LEDに表示する */
256
+
257
+ }
258
+
259
+ if (kind>0 && kind<=km && date=='c' )
260
+
261
+ { /* 添え字が範囲内であることを確認した */
262
+
263
+ v=bb3[kind]; /* 文字パターンを読み出して,*/
264
+
265
+ hyoji(v); /*LEDに表示する */
266
+
267
+ }
268
+
269
+ if (kind>0 && kind<=km && date=='d' )
270
+
271
+ { /* 添え字が範囲内であることを確認した */
272
+
273
+ v=bb4[kind]; /* 文字パターンを読み出して,*/
274
+
275
+ hyoji(v); /*LEDに表示する */
276
+
277
+ }
278
+
279
+ if (kind>0 && kind<=km && date=='e' )
280
+
281
+ { /* 添え字が範囲内であることを確認した */
282
+
283
+ v=bb5[kind]; /* 文字パターンを読み出して,*/
284
+
285
+ hyoji(v); /*LEDに表示する */
286
+
287
+ }
288
+
289
+
290
+
291
+ /*文字パターンの添え字kindを決める*/
292
+
293
+ if (kct < Tperiod/2)
294
+
295
+ { /* 行き(右から左)のときのみ表示*/
296
+
297
+ kind=km - km*kct/(Tperiod/2);
298
+
299
+ }
300
+
49
- コード
301
+ else
302
+
303
+ {
304
+
305
+ /* 帰り(左から右)は消灯させるため,kindをありえない値に設定 */
306
+
307
+ kind=km+99;
308
+
309
+ }
310
+
311
+ /*1ms遅らせる*/
312
+
313
+ delay(1);
314
+
315
+ kct=kct+1; /*ループ回数をカウント*/
316
+
317
+
318
+
319
+ /*傾斜センサ*/
320
+
321
+ sn2=sn1; /*ひとつ古い値を退避する*/
322
+
323
+ sn1=digitalRead(SensPin); /*センサ入力*/
324
+
325
+ if(sn1 ==LOW && sn2 ==HIGH && kct>30 )
326
+
327
+ { /*センサがHIGHからLOWに変わった。
328
+
329
+ kct>30の条件は,チャタリングによって
330
+
331
+ 頻繁にLOW/HIGHが変化する現象を捨てるため */
332
+
333
+ /* 周期Tperiodを測定*/
334
+
335
+ Tperiod=kct;
336
+
337
+
338
+
339
+ /* Tperiodの上下限。想定される範囲内に周期Tperiodを押さえ込む */
340
+
341
+ if (Tperiod>1000) Tperiod=1000; /*周期1s,周波数1Hzより早いだろう*/
342
+
343
+ if (Tperiod<150) Tperiod=150; /*周期0.15s,周波数6.7Hzより遅いだろう*/
344
+
345
+ /* ループカウンタkctを初期化*/
346
+
347
+ kct=0;
348
+
349
+ }
350
+
351
+
352
+
353
+ }
354
+
355
+ void hyoji(byte v) /*文字パターンを8個のLEDに表示する*/
356
+
357
+ {
358
+
359
+
360
+
361
+ if((v &B00000001)==0)digitalWrite(led1,LOW);else digitalWrite(led1,HIGH);
362
+
363
+ if((v &B00000010)==0)digitalWrite(led2,LOW);else digitalWrite(led2,HIGH);
364
+
365
+ if((v &B00000100)==0)digitalWrite(led3,LOW);else digitalWrite(led3,HIGH);
366
+
367
+ if((v &B00001000)==0)digitalWrite(led4,LOW);else digitalWrite(led4,HIGH);
368
+
369
+ if((v &B00010000)==0)digitalWrite(led5,LOW);else digitalWrite(led5,HIGH);
370
+
371
+ if((v &B00100000)==0)digitalWrite(led6,LOW);else digitalWrite(led6,HIGH);
372
+
373
+ if((v &B01000000)==0)digitalWrite(led7,LOW);else digitalWrite(led7,HIGH);
374
+
375
+ if((v &B10000000)==0)digitalWrite(led8,LOW);else digitalWrite(led8,HIGH);
376
+
377
+ }
50
378
 
51
379
  ```
52
-
53
- int led8=10;
54
-
55
-
56
-
57
- void setup()
58
-
59
-
60
-
61
- pinMode(SensPin,INPUT_PULLUP);
62
-
63
- pinMode(led1,OUTPUT);
64
-
65
- pinMode(led2,OUTPUT);
66
-
67
- pinMode(led3,OUTPUT);
68
-
69
- pinMode(led4,OUTPUT);
70
-
71
- pinMode(led5,OUTPUT);
72
-
73
- pinMode(led6,OUTPUT);
74
-
75
- pinMode(led7,OUTPUT);
76
-
77
- pinMode(led8,OUTPUT);
78
-
79
-
80
-
81
- /* 文字パターン[A] */
82
-
83
- bb1[0]=B00000000;
84
-
85
- bb1[1]=B00000000;
86
-
87
- bb1[2]=B00111111;
88
-
89
- bb1[3]=B01001000;
90
-
91
- bb1[4]=B10001000;
92
-
93
- bb1[5]=B01001000;
94
-
95
- bb1[6]=B00111111;
96
-
97
- bb1[7]=B00000000;
98
-
99
- /* 文字パターン[B] */
100
-
101
- bb2[0]=B00000000;
102
-
103
- bb2[1]=B00000000;
104
-
105
- bb2[2]=B11111110;
106
-
107
- bb2[3]=B10010010;
108
-
109
- bb2[4]=B10010010;
110
-
111
- bb2[5]=B10010010;
112
-
113
- bb2[6]=B01101100;
114
-
115
- bb2[7]=B00000000;
116
-
117
- /* 文字パターン[C] */
118
-
119
- bb3[0]=B00000000;
120
-
121
- bb3[1]=B00111100;
122
-
123
- bb3[2]=B01000010;
124
-
125
- bb3[3]=B10000001;
126
-
127
- bb3[4]=B10000001;
128
-
129
- bb3[5]=B10000001;
130
-
131
- bb3[6]=B01000010;
132
-
133
- bb3[7]=B00100100;
134
-
135
- /* 文字パターン[D] */
136
-
137
- bb4[0]=B00000000;
138
-
139
- bb4[1]=B00000000;
140
-
141
- bb4[2]=B11111111;
142
-
143
- bb4[3]=B10000001;
144
-
145
- bb4[4]=B10000001;
146
-
147
- bb4[5]=B10000001;
148
-
149
- bb4[6]=B01000010;
150
-
151
- bb4[7]=B00111100;
152
-
153
- /* 文字パターン[E] */
154
-
155
- bb5[0]=B00000000;
156
-
157
- bb5[1]=B11111110;
158
-
159
- bb5[2]=B10010010;
160
-
161
- bb5[3]=B10010010;
162
-
163
- bb5[4]=B10010010;
164
-
165
- bb5[5]=B10010010;
166
-
167
- bb5[6]=B10010010;
168
-
169
- bb5[7]=B10000010;
170
-
171
-
172
-
173
- km=7;
174
-
175
- /*パターンの総コマ数 */
176
-
177
- /* 配列bbをbyte型に宣言しているので,8bitしか入らない。
178
-
179
- LEDの個数を9個以上に増やす場合は,int型に宣言を変更する */
180
-
181
- kct=0;
182
-
183
- Tperiod=300;
184
-
185
- Serial.begin(9600);
186
-
187
- }
188
-
189
-
190
-
191
- void loop(){
192
-
193
- if(Serial.available() > 0){
194
-
195
- date=Serial.read();
196
-
197
- switch(date){
198
-
199
- case'a':
200
-
201
- Serial.print("receive A");
202
-
203
- break;
204
-
205
- case'b':
206
-
207
- Serial.print("receive B");
208
-
209
- break;
210
-
211
- case'c':
212
-
213
- Serial.print("receive C");
214
-
215
- break;
216
-
217
- case'd':
218
-
219
- Serial.print("receive D");
220
-
221
- break;
222
-
223
- case'e':
224
-
225
- Serial.print("receive E");
226
-
227
- break;
228
-
229
-
230
-
231
- }
232
-
233
- }
234
-
235
-
236
-
237
- byte v;/*文字パターン作業変数*/
238
-
239
- /*文字パターンの表示*/
240
-
241
- if (kind>0 && kind<=km && date=='a')
242
-
243
- { /* 添え字が範囲内であることを確認した */
244
-
245
- v=bb1[kind]; /* 文字パターンを読み出して,*/
246
-
247
- hyoji(v); /*LEDに表示する */
248
-
249
- }
250
-
251
- if (kind>0 && kind<=km && date=='b' )
252
-
253
- { /* 添え字が範囲内であることを確認した */
254
-
255
- v=bb2[kind]; /* 文字パターンを読み出して,*/
256
-
257
- hyoji(v); /*LEDに表示する */
258
-
259
- }
260
-
261
- if (kind>0 && kind<=km && date=='c' )
262
-
263
- { /* 添え字が範囲内であることを確認した */
264
-
265
- v=bb3[kind]; /* 文字パターンを読み出して,*/
266
-
267
- hyoji(v); /*LEDに表示する */
268
-
269
- }
270
-
271
- if (kind>0 && kind<=km && date=='d' )
272
-
273
- { /* 添え字が範囲内であることを確認した */
274
-
275
- v=bb4[kind]; /* 文字パターンを読み出して,*/
276
-
277
- hyoji(v); /*LEDに表示する */
278
-
279
- }
280
-
281
- if (kind>0 && kind<=km && date=='e' )
282
-
283
- { /* 添え字が範囲内であることを確認した */
284
-
285
- v=bb5[kind]; /* 文字パターンを読み出して,*/
286
-
287
- hyoji(v); /*LEDに表示する */
288
-
289
- }
290
-
291
-
292
-
293
- /*文字パターンの添え字kindを決める*/
294
-
295
- if (kct < Tperiod/2)
296
-
297
- { /* 行き(右から左)のときのみ表示*/
298
-
299
- kind=km - km*kct/(Tperiod/2);
300
-
301
- }
302
-
303
- else
304
-
305
- {
306
-
307
- /* 帰り(左から右)は消灯させるため,kindをありえない値に設定 */
308
-
309
- kind=km+99;
310
-
311
- }
312
-
313
- /*1ms遅らせる*/
314
-
315
- delay(1);
316
-
317
- kct=kct+1; /*ループ回数をカウント*/
318
-
319
-
320
-
321
- /*傾斜センサ*/
322
-
323
- sn2=sn1; /*ひとつ古い値を退避する*/
324
-
325
- sn1=digitalRead(SensPin); /*センサ入力*/
326
-
327
- if(sn1 ==LOW && sn2 ==HIGH && kct>30 )
328
-
329
- { /*センサがHIGHからLOWに変わった。
330
-
331
- kct>30の条件は,チャタリングによって
332
-
333
- 頻繁にLOW/HIGHが変化する現象を捨てるため */
334
-
335
- /* 周期Tperiodを測定*/
336
-
337
- Tperiod=kct;
338
-
339
-
340
-
341
- /* Tperiodの上下限。想定される範囲内に周期Tperiodを押さえ込む */
342
-
343
- if (Tperiod>1000) Tperiod=1000; /*周期1s,周波数1Hzより早いだろう*/
344
-
345
- if (Tperiod<150) Tperiod=150; /*周期0.15s,周波数6.7Hzより遅いだろう*/
346
-
347
- /* ループカウンタkctを初期化*/
348
-
349
- kct=0;
350
-
351
- }
352
-
353
-
354
-
355
- }
356
-
357
- void hyoji(byte v) /*文字パターンを8個のLEDに表示する*/
358
-
359
- {
360
-
361
-
362
-
363
- if((v &B00000001)==0)digitalWrite(led1,LOW);else digitalWrite(led1,HIGH);
364
-
365
- if((v &B00000010)==0)digitalWrite(led2,LOW);else digitalWrite(led2,HIGH);
366
-
367
- if((v &B00000100)==0)digitalWrite(led3,LOW);else digitalWrite(led3,HIGH);
368
-
369
- if((v &B00001000)==0)digitalWrite(led4,LOW);else digitalWrite(led4,HIGH);
370
-
371
- if((v &B00010000)==0)digitalWrite(led5,LOW);else digitalWrite(led5,HIGH);
372
-
373
- if((v &B00100000)==0)digitalWrite(led6,LOW);else digitalWrite(led6,HIGH);
374
-
375
- if((v &B01000000)==0)digitalWrite(led7,LOW);else digitalWrite(led7,HIGH);
376
-
377
- if((v &B10000000)==0)digitalWrite(led8,LOW);else digitalWrite(led8,HIGH);
378
-
379
- }