สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เราต้องการทดสอบว่ามันทำงานอย่างไรเพื่อปรับค่าหรือการตั้งค่าบางอย่างและเรียกคืนการตั้งค่านี้ในภายหลัง สำหรับการทดลองนี้ เราใช้แท็ก NFC เพื่ออ่านแล้วบันทึกค่าไว้ ภายหลังสามารถสแกนแท็กอีกครั้งและส่งค่ากลับเพื่อคืนค่าการตั้งค่าบางอย่าง ในการจำลองการโต้ตอบ เราใช้ Arduino Uno เป็นตัวควบคุม และวงแหวน RGB LED เป็นส่วนที่ปรับได้ ด้วยโพเทนชิออมิเตอร์ คุณสามารถตั้งค่าสี RGB ได้ การสื่อสารระหว่าง Arduino และแท็ก NFC ได้รับการตั้งค่าด้วย NFC Shield
(โครงการนี้เป็นแบบฝึกหัดสำหรับ TU Delft, Integrated Product Design, หลักสูตร TfCD)
ขั้นตอนที่ 1: รวบรวมวัสดุ
เราใช้วัสดุต่อไปนี้สำหรับโครงการนี้:
- Arduino uno- NFC shield & tag (https://www.elecrow.com/wiki/index.php?title=NFC_Shield)- Mokugi t-WS2812B-8LED- Potentiometer (10 3B 42 5V) - สวิตช์- ตัวต้านทาน 10K Ohm - (เขียงหั่นขนม)
ขั้นตอนที่ 2: ใช้โพเทนชิออมิเตอร์เพื่อปรับ RGB LED
ขั้นแรก ตรวจสอบให้แน่ใจว่า LED ที่คุณกำลังทำงานกับฟังก์ชันอยู่ โดยเรียกใช้รหัสทดสอบอื่น จากนั้นคุณสามารถเชื่อมต่อโพเทนชิออมิเตอร์เพื่อปรับ RGB ของ LED ได้ สำหรับสิ่งนี้สร้างวงจรตามที่แสดงในภาพ ต่อไฟ (5V) และกราวด์ แล้วต่อโพเทนชิออมิเตอร์กับพิน A0
หากคุณต้องการขยายขนาดโมเดลและบันทึกค่าต่างๆ ในภายหลัง คุณสามารถใช้โพเทนชิโอมิเตอร์ได้มากขึ้นในขั้นตอนนี้
โค้ดสำหรับการทดสอบนี้แนบมาด้วย เพื่อให้โค้ดใช้งานได้ คุณต้องดาวน์โหลดไลบรารี Adafruit_NeoPixel.h
เราผสมเฉดสีของ LED RGB ดังนี้: เราเลือกที่จะเปิดสีแดงอย่างต่อเนื่องและปรับให้เป็นสีม่วงโดยผสมสีน้ำเงินเข้าด้วยกัน หากโพเทนชิออมิเตอร์สูง สีน้ำเงินจะเปิดโดยสมบูรณ์ เมื่อต่ำจะเป็นสีน้ำเงิน สำหรับสิ่งนี้ เราทำแผนที่การอ่าน potmeter:
เป็นโมฆะ ReadPot () { val = analogRead (หม้อ); วาล = แผนที่(วาล, 0, 1023, 0, 255);
เพื่อหลีกเลี่ยงความเบี่ยงเบนของค่าอินพุตของโพเทนชิออมิเตอร์ เราเปลี่ยนเฉพาะค่าใหม่ของ LED สีน้ำเงินเท่านั้น เมื่อความแตกต่างระหว่างค่าปัจจุบันและค่าปัจจุบันก่อนหน้าสูงพอ:
int diff = abs (val-oldVal);
ถ้า (diff > TOLERANCE) { ChangeLED();
ขั้นตอนที่ 3: รวม NFC
ขั้นตอนต่อไปคือการรวม NFC ขั้นแรกให้เชื่อมต่อ NFC shield กับ Arduino
เพิ่มสวิตช์ตามที่แสดงในรูปภาพ สวิตช์ใช้เพื่อเปลี่ยนระหว่างการอ่านและการเขียนไปยังแท็ก NFC
ดาวน์โหลดไลบรารี PN532.h สำหรับ NFC shield โค้ดที่แนบมานี้เป็นการดัดแปลงโค้ดตัวอย่างที่มีให้ในไลบรารี มีการเปลี่ยนแปลงในลักษณะที่ถ่ายโอนค่า RGB ของ LED
ขั้นแรก คุณสามารถทดสอบเฉพาะการอ่านหรือการเขียนด้วยรหัสสองรหัสที่แนบมาแยกกัน
คำอธิบายรหัสสุดท้าย
ขั้นแรก ตัวแปรที่ใช้ทั้งหมดจะถูกเตรียมใช้งาน
จากนั้นในการตั้งค่าเป็นโมฆะการเชื่อมต่อ nfc จะถูกตั้งค่า
วงโมฆะเริ่มต้นด้วยการอ่านสถานะของสวิตช์
กรณี 0 คือเมื่อสถานะปุ่มสูง ในกรณีนี้ ฟังก์ชัน Reading() จะถูกเรียกก่อน สิ่งนี้จะอ่านค่า RGB ที่บันทึกไว้ในบล็อก 8 ของแท็ก NFC ในตำแหน่งแรกของอาร์เรย์ (สีน้ำเงิน = block[0];) จากนั้นจะเรียกฟังก์ชัน ChangeLEDRead() ซึ่งจะเปลี่ยนสีของ LED เป็นค่าซึ่งเพิ่งอ่านจากแท็ก NFC
กรณีที่ 1 คือเมื่อสถานะปุ่มเป็น LOW ในกรณีนี้ ฟังก์ชัน ReadPot() จะถูกเรียกก่อน ซึ่งหมายความว่าตอนนี้คุณสามารถปรับระดับสีของไฟ LED ด้วยตนเองด้วยโพเทนชิออมิเตอร์ อินพุตนี้จาก potmeter จะถูกจับคู่กับค่าระหว่าง 0 ถึง 255 จากนั้นฟังก์ชัน ChangeLEDPot() จะควบคุมสี LED โดยใช้อินพุตจาก potmeter ในกรณีนี้จะมีการเรียกฟังก์ชัน Writing() เพื่อให้แน่ใจว่าทันทีที่มีการวางแท็ก NFC ไว้ใกล้กับโล่ ค่าปัจจุบันของสีน้ำเงินจะถูกเขียนลงบนตำแหน่งแรกของบล็อก 8
ขั้นตอนที่ 4: การดัดแปลงที่เป็นไปได้
หลักการเดียวกันนี้สามารถนำไปใช้ในกรณีอื่นๆ ได้ และไม่ได้จำกัดอยู่เพียง NFC เท่านั้น มีการนำไปใช้ที่เป็นไปได้มากมาย ซึ่งคุณต้องการปรับค่าบางอย่างตามความต้องการของคุณ บันทึกค่าเหล่านั้น และคืนค่าการตั้งค่าส่วนบุคคลของคุณอีกครั้งในภายหลัง
ตัวอย่างเช่น ลองนึกถึงสถานที่ทำงานที่ใช้ร่วมกัน ซึ่งคุณปรับความสูงของเก้าอี้ มุมพนักพิง และความสูงของโต๊ะได้ตามที่คุณต้องการ คุณบันทึกการตั้งค่าของคุณด้วยการสแกนอย่างรวดเร็วด้วยแท็ก NFC เมื่อคุณกลับมาอีกวัน คุณจะสแกนแท็กของคุณอีกครั้ง และที่ทำงานจะเปลี่ยนการตั้งค่าของคุณ
คุณสามารถใช้สมาร์ทโฟนแทนชิป NFC ได้ แอปพลิเคชันหรือเว็บไซต์พิเศษสามารถใช้เป็นอินเทอร์เฟซได้
การใช้งานอื่นอาจเป็นเช่นการสแกนลายนิ้วมือแทนการสแกนแท็ก NFC จากนั้น ลายนิ้วมือสามารถเชื่อมโยงกับโปรไฟล์ผู้ใช้บางตัวที่บันทึกการตั้งค่าไว้ได้