Arduinoの演習
Arduinoの回路
LED点灯(デジタル出力)とスイッチ入力(デジタル入力)の実験回路
フォトトランジスタによる明るさの計測(アナログ入力)とLEDのへの出力
(アナログ出力)の実験回路
赤外LEDのパルス点灯による距離計測の実験
LEDアレイによる表示回路
音声出力の実験回路
// ---------------------------------------------------- // Blink,サンプルスケッチより抜き出し日本語コメント化 // ---------------------------------------------------- int led = 13; // LEDを13ピンに接続 // 最初に一度だけ実行 void setup() { pinMode(led, OUTPUT); // ledを出力ピンに設定 } // 繰り返す void loop() { digitalWrite(led, HIGH); // LED に5Vを出力 delay(1000); // 1000msつまり1秒待つ digitalWrite(led, LOW); // LED に0Vを出力 delay(1000); // 1000msつまり1秒待つ } // ---------------------------------------------------- // Blink2, 点滅スピードを変えてみる // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ void loop() { digitalWrite(led, HIGH); // LED に5Vを出力 delay(500); // 1000msつまり1秒待つ digitalWrite(led, LOW); // LED に0Vを出力 delay(500); // 1000msつまり1秒待つ } // ---------------------------------------------------- // デジタル入力のテスト // ---------------------------------------------------- int led = 13; // LEDを13ピンに接続 int sw = 9; // スイッチを9ピンに接続 // 最初に一度だけ実行 void setup() { pinMode(led, OUTPUT); // ledを出力ピンに設定 pinMode(sw , INPUT ); // swを入力ピンに設定 } // 繰り返す void loop() { if (digitalRead(sw)) digitalWrite(led, HIGH); // LED に5Vを出力 else digitalWrite(led, LOW); // LED に0Vを出力 } // ---------------------------------------------------- // デジタル入力のテスト,HIGH,LOWの入れ替え // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ // 繰り返す void loop() { if (digitalRead(sw)) digitalWrite(led, LOW); // LED に5Vを出力 else digitalWrite(led, HIGH); // LED に0Vを出力 } // ---------------------------------------------------- // デジタル入力のテスト,1秒遅れて点灯 // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ // 繰り返す void loop() { if (digitalRead(sw)){ digitalWrite(led, LOW); // LED に5Vを出力 } else { delay(1000); digitalWrite(led, HIGH); // LED に0Vを出力 } } // ---------------------------------------------------- // アナログ出力のテスト1 // ---------------------------------------------------- // LEDを11ピンに接続 int led = 11; // デジタルピン3, 5, 6, 9, 10,11がアナログ出力可能 // 最初に一度だけ実行 void setup() { pinMode(led, OUTPUT); // ledを出力ピンに設定 } // 繰り返す void loop() { analogWrite(led, 10); // LED にアナログ出力 } // ---------------------------------------------------- // アナログ出力のテスト2 // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ analogWrite(led, 100); // 値を書き換えて明るさを変える // ---------------------------------------------------- // アナログ出力のテスト3 // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ // 繰り返す void loop() { for(int i=0; i<255; i++){ // iの値を0から255まで増やしていく analogWrite(led, i); // LED にアナログ出力 delay(10); // 10msまつ } } // ---------------------------------------------------- // アナログ出力のテスト4 // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ delay(1); // 1msに変えると点滅が早くなる // ---------------------------------------------------- // アナログ入力のテスト // ---------------------------------------------------- // LEDを11ピンに接続 int led = 11; // デジタルピン3, 5, 6, 9, 10,11がアナログ出力可能 int ptr = A5; // アナログ5ピンをフォトトランジスタ入力に使う int val=0; // 最初に一度だけ実行 void setup() { pinMode(led, OUTPUT); // ledを出力ピンに設定 } // 繰り返す void loop() { val=analogRead(ptr); // アナログ入力 (0-1024) analogWrite(led, val/4); // LED にアナログ出力(0-255) } // ---------------------------------------------------- // シリアル通信、文字列出力のテスト // ---------------------------------------------------- int sw = 9; // 最初に一度だけ実行 void setup() { Serial.begin(9600); // シリアル通信を開始 } // 繰り返す void loop() { if (digitalRead(sw)) Serial.println("SW OFF"); // シリアルポートに文字列出力 else Serial.println("SW ON"); // シリアルポートに文字列出力 delay(100); } // ---------------------------------------------------- // シリアル通信、数値出力のテスト // ---------------------------------------------------- int ptr = A5; // アナログ5ピンをフォトトランジスタ入力に使う // 最初に一度だけ実行 void setup() { Serial.begin(9600); // シリアル通信を開始 } // 繰り返す void loop() { Serial.println(analogRead(ptr)); // シリアルポートに数値出力 delay(100); } // ---------------------------------------------------- // 距離計測のテスト // ---------------------------------------------------- int ptr = A5; // アナログ5ピンをフォトトランジスタ入力に使う int led = 13; // LEDをパルス点灯 // 最初に一度だけ実行 void setup() { Serial.begin(9600); // シリアル通信を開始 } // 繰り返す void loop() { digitalWrite(led, HIGH); // LEDを点灯 delay(1); // 1ms待つ Serial.println(analogRead(ptr)); // シリアルポートに数値出力 digitalWrite(led, LOW); // LEDを消灯 delay(100); // 100ms待つ } // ---------------------------------------------------- // ポート操作によるLED点灯テスト // ---------------------------------------------------- // 最初に一度だけ実行 void setup() { DDRB = DDRB | B00111111; } // 繰り返す void loop() { PORTB = B00101010; delay(1000); PORTB = B00010101; delay(1000); } // ---------------------------------------------------- // ポート操作によるLED点灯テスト2,振ると2進数で点滅 // ---------------------------------------------------- // ↓↓↓↓変更部分のみ↓↓↓↓↓ // 繰り返す void loop() { for(int i=0; i<63; i++){ PORTB = i; delay(1); } } // ---------------------------------------------------- // ポート操作によるLED点灯テスト2、数字を0-9まで表示 // ---------------------------------------------------- const byte NUM[11][6]={ {14,17,17,17,14,0}, // 0 { 0, 0, 0,31, 0,0}, // 1 {25,21,21,21,18,0}, // 2 {17,21,21,21,14,0}, // 3 { 7, 4, 4, 4,31,0}, // 4 {23,21,21,21, 9,0}, // 5 {14,21,21,21, 8,0}, // 6 { 3, 1, 1, 1,31,0}, // 7 {10,21,21,21,10,0}, // 8 {18,21,21,21,14,0}, // 9 { 0,10,10 ,0, 0,0} // : }; // 最初に一度だけ実行 void setup() { DDRB = DDRB | B00111111; } // 繰り返す void loop() { for(int i=0; i<9; i++){ // 数字の0-9まで順に読む for(int j=0; j<5; j++){ // 数字を表す6個のデータを順に読む PORTB = NUM[i][j]; // 配列に定義したデータを呼び出して表示 delay(1); // 少し待つ } PORTB = 0; // 数字の間をちょっと開ける delay(2); } } // ---------------------------------------------------- // Tone関数による音 // ---------------------------------------------------- // 最初に一度だけ実行 void setup() { tone(8,440,1000); // 8ピンに440Hzの音(ラ)を1000ms出力 } // 繰り返す void loop() { } // ---------------------------------------------------- // Tone関数による音、ドレミファソラシド // ---------------------------------------------------- // ド レ ミ ファ ソ ラ シ 高いド int f[]={261,293,330,349,392,440,494,523}; // 最初に一度だけ実行 void setup() { for(int i=0;i<8;i++){ tone(8,f[i]); // 8ピンに指定された音を出力 delay(500); // 0.5秒待つ } noTone(8); // 音を止める } // 繰り返す void loop() { }
ESP32 Wifi Bluetooth開発ボード |
Arduino Nano Every |
Raspberry Pi pico |
FPGA XILINX Artix-7 |