
ArduinoでRFIDリーダRC522を使って生産管理をやろうと思っています。
https://dotstud.io/blog/arduino-use-rfid-reader/を参考にしてやっています。
工具に識別タグを付けて工具を識別する管理をやりたいのですが。
下のプログラムにプラスでRC522センサーにタグをかざしていない間は20秒ごとにNOと出るようにしたいのですが。誰か教えてください。
#include <SPI.h>
#include <MFRC522.h>
constexpr uint8_t RST_PIN = 9;
constexpr uint8_t SS_PIN = 10;
#define UID "xx xx xx xx xx xx xx" // 取得した識別子を記述
int led_blue = 8;
int led_red = 3;
MFRC522 mfrc522(SS_PIN, RST_PIN);
MFRC522::MIFARE_Key key;
void setup() {
Serial.begin(9600);
pinMode(led_blue, OUTPUT);
pinMode(led_red, OUTPUT);
while (!Serial);
SPI.begin();
mfrc522.PCD_Init();
mfrc522.PCD_DumpVersionToSerial();
Serial.println(F("Scan PICC to see UID, SAK, type, and data blocks..."));
dump_byte_array(key.keyByte, MFRC522::MF_KEY_SIZE);
}
void loop() {
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
String strBuf[mfrc522.uid.size];
for (byte i = 0; i < mfrc522.uid.size; i++) {
strBuf[i] = String(mfrc522.uid.uidByte[i], HEX);
if(strBuf[i].length() == 1){
strBuf[i] = "0" + strBuf[i];
}
}
String strUID = strBuf[0] + " " + strBuf[1] + " " + strBuf[2] + " " + strBuf[3] + " " + strBuf[4] + " " + strBuf[5] + " " + strBuf[6];
if ( strUID.equalsIgnoreCase(UID) ){
Serial.println("chantoku");
digitalWrite(led_blue, HIGH); // 青いLEDを光らせる
delay(1000); // 1秒待つ
digitalWrite(led_blue, LOW); // 青いLEDを消す
} else {
Serial.println("error!");
analogWrite(led_red, 180); // 赤いLEDを光らせる
delay(1000); // 1秒待つ
analogWrite(led_red, 0); // 赤いLEDを消す
}
}
void dump_byte_array(byte *buffer, byte bufferSize) {
for (byte i = 0; i < bufferSize; i++) {
Serial.print(buffer[i] < 0x10 ? " 0" : " ");
Serial.print(buffer[i], HEX);
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Microsoft ASP LEDで電光掲示板に「A B C D E」と表示したいのですが・・・ 1 2023/07/04 07:37
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- C言語・C++・C# C言語 コードを書いたのですが上手く実行出来なかったです。どこが間違ってますか? 【作成したいもの】 1 2022/05/04 11:36
- C言語・C++・C# TCP/IP通信時のサーバーからの受信 2 2022/11/23 09:11
- Excel(エクセル) VBAで組み合わせ算出やCOUNTIFSの処理を高速化したいです。 4 2022/04/07 02:38
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# c言語の問題です 3 2023/01/10 16:15
- 照明・ライト 直管蛍光灯照明器具の蛍光灯を取り付けるところに、そのまま取り付けることができる直管タイプのLED灯が 4 2023/04/29 21:00
- その他(プログラミング・Web制作) pythonのこのエラーがわかりません 3 2022/11/16 14:54
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
static constメンバ変数(配列)...
-
ソケット通信時のWSACleanup処...
-
プログラミング教えてください
-
二重定義の回避法
-
既定のコンストラクタがありま...
-
C++にてtemplateで受け取った任...
-
C#でテンキーの操作は可能でし...
-
_beginthreadにて発生するコン...
-
リージョンのフレームを描画す...
-
関数名の名前の衝突について。
-
C言語 extern について
-
メッセージマップ(ON_CONTROL_...
-
関数の戻り値にその関数のポイ...
-
int main()、void main()、void...
-
カノニカルモードの設定について
-
CTabCtrl:TABインデックス単位...
-
Aの値からBの値を除するとは??
-
「Aに対するBの割合」と「Aに対...
-
2÷3などの余りについて
-
数字以外が入力されたらエラー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【gcc・cygwin】multiple defin...
-
多重定義が起きている?--lnk20...
-
C++にてtemplateで受け取った任...
-
const_castのつかいどころを教...
-
既定のコンストラクタがありま...
-
戻り値を返す関数の前に(void)...
-
静的でないメンバ関数の呼び出...
-
int main()、void main()、void...
-
C# KeyDownイベントでショート...
-
C# Controls.Addで動的に配置し...
-
(void)0 はどんな意味ですか
-
gcc: incompatible pointer type
-
C#でラジオボタンを設定に記録...
-
_beginthreadにて発生するコン...
-
C#でテンキーの操作は可能でし...
-
C++別のオブジェクトからメンバ...
-
CTabCtrl:TABインデックス単位...
-
見た目は同じソースなのにエラ...
-
【VC++6.0】イベントハンドラ関...
-
pictureboxの画像を削除するには?
おすすめ情報