【貂蝉がプログラミングを学ぶ】Arduinoハンズオン(123)---多機能拡張ボード

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の実験シーン図

ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/weixin_41659040/article/details/131358658