37 個のセンサーとアクチュエーターに関する言及はインターネット上で広く広まっていますが、実際には、Arduino と互換性のあるセンサー モジュールは 37 個以上あるはずです。手持ちのセンサーとアクチュエーターのモジュールがいくつかあるという事実を考慮して、学習とコミュニケーションの目的で、真の知識を実践する(やらなければならない)というコンセプトに従って、一連の実験を試してみるつもりです。 1つは、成功(プログラムが完了する)かどうかに関係なく、他の人にインスピレーションを与えることを期待して、小さな進歩や解決できない問題などを記録します。
【Arduino】168種類のセンサーモジュールシリーズ実験(データコード+シミュレーションプログラミング+グラフィックスプログラミング)
実験123:Multifunction Shield多機能拡張ボードArduino実験12 in 1バージョン
多機能拡張ボードモジュールの特長
1. 2009 UNO LENARDO 2560などの市販の主流コントローラーとシームレスに接続可能
2. 4ウェイLEDインジケータライト(LEDインジケータライトの重要性を知っておく必要があります。実際のプロジェクトでは、このインジケータライトを使用して、インジケータライトを直接使用してプログラムの動作ステータスを示すことができ、便利です)プログラムのデバッグ。
3. DS18B20 温度センサーインターフェイスは温度測定実験に使用できますが、この価格には DS18B20 は含まれておらず、必要に応じて別売りされます。
4. LM35 温度センサーインターフェースは温度測定実験に使用できますが、この価格には LM35 は含まれておらず、必要に応じて別途購入する必要があります。
5. 3296 精度調整可能ポテンショメータ、アナログポート入力を提供 (LED の明るさの制御、ステアリングギアの角度の回転、デジタル電圧などに使用可能)
6. 赤外線一体型受信ヘッドは、あらゆる赤外線リモコン実験に適しています。この価格には一体型受信ヘッドは含まれていません。必要に応じて別売りになります。
7. 4 つのデジタル管 (IO の駆動と SPI の学習に 74HC595 を使用)、デジタル管表示実験を行うことができます (温度、電圧、カウント値などを表示できます)。
8. 3 つの独立したボタンと 1 つのリセット ボタンでボタン実験 (マンマシン インターフェイス) を行うことができます。
9. ブザーは音響実験に使用できます。(警察に電話したり、発音したりできる)
10. Bluetooth、無線インターフェース、音声モジュール、音声認識モジュール、無線通信実験に使用可能
11.ステアリングギアインターフェイス、ステアリングギアを駆動するのに便利
12.赤外線検出インターフェース。赤外線とのドッキングに便利で、人流統計などを実現します。
Versatile Extended Edition の実験シリーズは、次の 3 つの主要な部分に分かれています。
1. 基本的な入出力
2. 読み取りセンサー
3. 実用化
パート 1 では、拡張ライブラリを使用して多機能拡張ボタン、ブザー、ディスプレイの使いやすさを実証するため、アプリケーションに集中しやすくなります。
パート 2 では、拡張ライブラリを使用して温度、ソナー、モーション センサーなどの外部センサーから値を読み取る方法と、外部ソースからの電気パルスを処理する方法を示します。
パート 3 では、ライブラリと多機能シールドを使用して動作するアプリケーションを検討します。
24時間目覚まし時計
心拍モニター – (心拍センサーが必要)
カウントダウンタイマー
地面傾斜レベルインジケータ – (MPU6050 モーションセンサーが必要)
ソナー距離計 – (HC SR04 ソナーモジュールが必要)
スピードメーター – (マグネットとリードスイッチが必要)
それぞれに構築および拡張する余地がありますが、それはあなた次第です。
Arduino実験のオープンソースコード
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百二十三:Multi-function Shield多功能扩展板 Arduino实验12合1版
项目一:4个短哔声,重复3次
*/
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
void setup() {
// put your setup code here, to run once:
Timer1.initialize();
MFS.initialize(&Timer1); // initialize multi-function shield library
// NOTE beep control is performed in the background, i.e. beep() is non blocking.
// short beep for 200 milliseconds
MFS.beep();
delay(1000);
// 4 short beeps, repeated 3 times.
MFS.beep(5, // beep for 50 milliseconds
5, // silent for 50 milliseconds
4, // repeat above cycle 4 times
3, // loop 3 times
50 // wait 500 milliseconds between loop
);
}
void loop() {
// put your main code here, to run repeatedly:
}
Arduino実験オープンソースコード2
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百二十三:Multi-function Shield多功能扩展板 Arduino实验12合1版
项目二:显示串行监视器窗口中按钮按下的类型。检查发生了什么,按或者把多个按钮放在一起,持续时间不同。
*/
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Timer1.initialize();
MFS.initialize(&Timer1); // initialize multi-function shield library
}
void loop() {
// put your main code here, to run repeatedly:
byte btn = MFS.getButton(); // Normally it is sufficient to compare the return
// value to predefined macros, e.g.
BUTTON_1_PRESSED;
//BUTTON_1_LONG_PRESSED etc.
if (btn)
{
byte buttonNumber = btn & B00111111;
byte buttonAction = btn & B11000000;
Serial.print("BUTTON_");
Serial.write(buttonNumber + '0');
Serial.print("_");
if (buttonAction == BUTTON_PRESSED_IND)
{
Serial.println("PRESSED");
}
else if (buttonAction == BUTTON_SHORT_RELEASE_IND)
{
Serial.println("SHORT_RELEASE");
}
else if (buttonAction == BUTTON_LONG_PRESSED_IND)
{
Serial.println("LONG_PRESSED");
}
else if (buttonAction == BUTTON_LONG_RELEASE_IND)
{
Serial.println("LONG_RELEASE");
}
}
}
Arduino実験オープンソースコード3
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百二十三:Multi-function Shield多功能扩展板 Arduino实验12合1版
项目三:数字显示,计数器
*/
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
void setup() {
// put your setup code here, to run once:
Timer1.initialize();
MFS.initialize(&Timer1); // initialize multi-function shield library
MFS.write("Hi");
delay(2000);
MFS.write(-273);
delay(2000);
MFS.write(3.141, 2); // display to 2 decimal places.
delay(2000);
}
int counter=0;
byte ended = false;
void loop() {
// put your main code here, to run repeatedly:
if (counter < 200)
{
MFS.write((int)counter);
counter++;
}
else if (!ended)
{
ended = true;
MFS.write("End");
MFS.blinkDisplay(DIGIT_ALL, ON);
}
delay(50);
}
Arduino 実験オープンソース コード 4
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验一百二十三:Multi-function Shield多功能扩展板 Arduino实验12合1版
项目四:控制板载LED
*/
#include <TimerOne.h>
#include <Wire.h>
#include <MultiFuncShield.h>
void setup() {
// put your setup code here, to run once:
Timer1.initialize();
MFS.initialize(&Timer1); // initialize multi-function shield library
MFS.writeLeds(LED_ALL, ON);
delay(2000);
MFS.blinkLeds(LED_1 | LED_2, ON);
delay(2000);
MFS.blinkLeds(LED_1 | LED_2, OFF);
MFS.blinkLeds(LED_3 | LED_4, ON);
delay(2000);
MFS.blinkLeds(LED_ALL, ON);
delay(2000);
MFS.blinkLeds(LED_ALL, OFF);
MFS.writeLeds(LED_ALL, OFF);
}
void loop() {
// put your main code here, to run repeatedly:
}
Arduinoの実験シーン図