สารบัญ:
- ขั้นตอนที่ 1: แปลงโน้ตดนตรีเป็นโน้ตดิจิทัล: ค่าหน่วงเวลา
- ขั้นตอนที่ 2: แปลงโน้ตดนตรีเป็นโน้ตดิจิทัล: ค่าเฮิรตซ์
- ขั้นตอนที่ 3: การออกแบบวงจร
- ขั้นตอนที่ 4: การอัปโหลดโค้ด: How-To
- ขั้นตอนที่ 5: การอัปโหลดโค้ด: ทั้งหมดนี้หมายความว่าอย่างไร
- ขั้นตอนที่ 6: เสร็จสิ้น !!
วีดีโอ: แปลงเพลงเป็นดิจิทัลด้วย Arduino: 6 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
ฉันต้องการสร้างโครงการที่รวมสองวิชาที่ฉันโปรดปราน: วิทยาศาสตร์และดนตรี ฉันคิดถึงทุกวิถีทางที่จะรวมสองโดเมนนี้เข้าด้วยกัน และฉันคิดว่ามันน่าสนใจที่จะทำให้ Arduino เล่น Fur Elise ในขณะที่แสดงระดับเสียงของโน้ตในเฮิรตซ์ เอาล่ะ มาเริ่มสร้างกันเลย!
คุณจะต้องใช้ Arduino Uno หรือ Mega หนึ่งตัว สายจัมเปอร์จำนวนมาก ออด Piezo เขียงหั่นขนม จอ LCD ขนาด 16*2 ที่มีหมุดปัดน้ำฝนทั้งหมด และโพเทนชิออมิเตอร์ 10k (คุณอาจได้ยินพวกมันถูกเรียกว่าพอตมิเตอร์). ทางที่ดีควรรวบรวมอุปกรณ์เหล่านี้ทั้งหมดก่อนที่เราจะเริ่มสร้าง
ขั้นตอนที่ 1: แปลงโน้ตดนตรีเป็นโน้ตดิจิทัล: ค่าหน่วงเวลา
มีสองขั้นตอนในการถ่ายทอดบันทึกจากคะแนนเป็นดิจิทัลเทียบเท่า ขั้นแรก เราจะต้องเขียนเวลาที่บันทึกเป็นมิลลิวินาที ฉันใช้แผนภูมิที่พบทางออนไลน์สำหรับงานนี้ ฉันถอดความความยาวของโน้ตเป็นมิลลิวินาทีโดยพิจารณาจากโน้ตตัวหนึ่งว่าเป็นโน้ตครึ่งตัว โน้ตตัวหนึ่งในสี่ตัว ตัวที่แปด ฯลฯ คุณสามารถเห็นตัวเลขเหล่านี้ในรหัสของฉันเป็น delay(); ฟังก์ชันและตัวเลขในวงเล็บจะเป็นค่าการหน่วงเวลาเป็นมิลลิวินาทีที่เรากำหนดในขั้นตอนนี้
ขั้นตอนที่ 2: แปลงโน้ตดนตรีเป็นโน้ตดิจิทัล: ค่าเฮิรตซ์
ก่อนเริ่มขั้นตอนนี้ ให้ฉันกำหนดคำศัพท์ทางเทคนิคบางอย่างก่อน "ค่า" ของโน้ตสามารถใช้แทนกันได้กับคำว่า "pitch" "value" และ "note" ตอนนี้ คุณต้องอ่านโน้ตแต่ละเพลงจากสกอร์ จากนั้นคุณจะต้องแปลโน้ตแต่ละรายการเป็นเฮิรตซ์โดยใช้เพลงเป็นตารางเฮิรตซ์ ซึ่งคุณสามารถค้นหาออนไลน์ได้อย่างง่ายดาย สิ่งหนึ่งที่ต้องจำไว้คือ C กลางแสดงเป็น C4 บนโต๊ะ และอ็อกเทฟที่สูงกว่าคือ C5 เป็นต้น เมื่อบันทึกย่อเหล่านี้ทั้งหมดเป็นเฮิรตซ์ คุณจะวางค่าลงในเสียงฟังก์ชัน (x, y, z); โดยที่ X คือหมายเลขพินหรือ const int ซึ่งเป็นวิธีกำหนดตัวแปรที่ผมจะอธิบายในภายหลัง Y จะเป็นค่าเฮิรตซ์ที่คุณเพิ่งคัดลอก และ Z จะเป็นระยะเวลาของโน้ตในหน่วยมิลลิวินาทีที่ปัดเศษเป็นร้อยที่ใกล้ที่สุด ล่าช้า(); ค่าจะเป็นระยะเวลาของบันทึกย่อ ทีนี้มาออกแบบวงจรที่เล่นเพลงได้
ขั้นตอนที่ 3: การออกแบบวงจร
ตอนนี้เราได้แปลบันทึกทั้งหมดเป็นค่าดิจิทัลที่คอมพิวเตอร์สามารถเข้าใจได้ ก็ถึงเวลาสร้างวงจร เริ่มต้นด้วยการใช้เขียงหั่นขนมและวางหน้าจอ LCD ด้วยหมุดแรก (GND) ในแถวที่ 14 วางออดที่ใดก็ได้ที่คุณต้องการ และวางโพเทนชิออมิเตอร์ไว้ข้างๆ เป้าหมายคือการจัดวางทุกอย่างให้เป็นระเบียบ เพื่อลดความยุ่งเหยิงของสายไฟ วาง Arduino ถัดจากเขียงหั่นขนม และเชื่อมต่อพิน 5v กับรางบวกของเขียงหั่นขนม และพินกราวด์กับรางลบ ตอนนี้ เราพร้อมที่จะเชื่อมต่อจัมเปอร์ระหว่าง Arduino และส่วนประกอบต่างๆ แล้ว
ตอนนี้ มาพูดถึงหมุดบน LCD และวิธีต่อสายกัน
GND ย่อมาจาก กราวด์ นี่คือลวดลบในกระแสตรง ลวด GND กับรางลบของเขียงหั่นขนม
VCC ย่อมาจาก Voltage at the Common Collector และนี่คือที่ที่คุณเชื่อมต่อแหล่งพลังงาน 5 โวลต์ของคุณ (รางพลังงานบวก)
VO ย่อมาจาก Contrast ต่อสายนี้เข้ากับพินตรงกลางของโพเทนชิออมิเตอร์ เชื่อมต่อพินด้านซ้ายของโพเทนชิออมิเตอร์กับรางจ่ายไฟบวก และพินขวากับรางจ่ายไฟภาคพื้นดิน
RS ย่อมาจาก Register Select และ Arduino ใช้เพื่อบอกให้จอแสดงผลเก็บข้อมูลไว้ที่ไหน เชื่อมต่อพินนี้กับพิน 12 บน Arduino
RW ย่อมาจาก Read/Write pin ซึ่ง Arduino ใช้เพื่อตรวจสอบว่าหน้าจอแสดงสิ่งที่คุณตั้งโปรแกรมให้แสดงหรือไม่ เชื่อมต่อพินนี้กับรางลบบนเขียงหั่นขนม
E ย่อมาจาก Enable ซึ่งบอก LCD ว่าพิกเซลใดที่จะเปิดใช้งาน (เปิด) หรือปิดใช้งาน (ปิด) เชื่อมต่อพินนี้กับพิน Arduino 11
D4, D5, D6 และ D7 เป็นหมุดแสดงผลที่ควบคุมอักขระและตัวอักษรที่แสดง เชื่อมต่อกับหมุด Arduino 5, 4, 3 และ 2 ตามลำดับ
ขา A ซึ่งบางครั้งเรียกว่า LED เป็นขั้วบวก LED สำหรับไฟแบ็คไลท์ เชื่อมต่อสิ่งนี้เข้ากับรางจ่ายไฟบวกด้วยสายไฟหรือตัวต้านทาน 220 โอห์ม ตัวต้านทานจะดีกว่าสำหรับการใช้งานอีกต่อไปเนื่องจากเป็นอะไหล่ของ LCD แต่ถ้าอุปกรณ์จะไม่ถูกใช้งานทั้งกลางวันและกลางคืน คุณไม่จำเป็นต้องมีตัวต้านทาน
Pin K ซึ่งบางครั้งมีป้ายกำกับว่า LED (สับสน) ก็คือพินกราวด์ LED เชื่อมต่อสิ่งนี้กับรางไฟฟ้าภาคพื้นดิน
ขั้นตอนที่ 4: การอัปโหลดโค้ด: How-To
เสียบ Arduino ของคุณเข้ากับ USB ของคอมพิวเตอร์ อัปโหลดโค้ดต่อไปนี้โดยใช้โปรแกรมเมอร์ Arduino IDE
#รวม
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2; LiquidCrystal LCD (rs, en, d4, d5, d6, d7);
การตั้งค่าเป็นโมฆะ () {
// ตั้งค่าจำนวนคอลัมน์และแถวของ LCD: lcd.begin(16, 2); // พิมพ์ข้อความไปยัง LCD lcd.print("สนามเฮิรตซ์:!"); ล่าช้า (1000); void loop () { // เล่น e4 delay (600); // หยุดชั่วคราวเป็นเวลา 0.6 วินาที (10, 329.63, 300); // เล่น e ไปที่ออดที่พิน 10 นาน.3 วินาที lcd.print (" 329.63"); //แสดงข้อความบน LCD "329.63"
ดีเลย์(350);//หน่วงเวลา.35 วินาที
lcd.clear();//clear LCD และรีเซ็ตสำหรับข้อความถัดไป // เล่น d4# tone(10, 311.13, 300); lcd.print("311.13"); ล่าช้า (350); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (350); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (350); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (350); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.66, 300); lcd.print("293.66"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear();//line60//helpsave//avrdude.failure.eeprom // เล่น d3 tone(10, 146.83, 300); lcd.print("146.63"); ล่าช้า (350); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3 (10, 220, 300); lcd.print("220"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 900); lcd.print("246.94"); ล่าช้า (1000); lcd.clear();
// เล่น e3
โทน (10, 164.81, 300); lcd.print("164.81"); ล่าช้า (400); lcd.clear(); // เล่น g3# โทน (10, 207.65, 300); lcd.print("207.65"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 900); lcd.print("261.63"); ล่าช้า (1000); lcd.clear(); // เล่นอีโทน (10, 164.81, 300); lcd.print("164.81"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.66, 300); lcd.print("293.66"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง d3 (10, 146.83, 300); lcd.print("146.83"); ล่าช้า (400); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); //eeprom 20--6 ใช่ไม่ใช่, แฟลช 65--0 noyes lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 300); lcd.print("220.0"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 900); lcd.print("246.94"); ล่าช้า (1000); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.66, 300); lcd.print("293.66"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 900); lcd.print("329.63"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง g3 (10, 196, 300); lcd.print("196.0"); ล่าช้า (400); lcd.clear(); // เล่นโทน f4(10, 349.23, 300); lcd.print("349.23"); ล่าช้า (400); lcd.clear(); // เล่นโทนเสียง e4 (10, 329.23, 300); lcd.print("329.23"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.63, 900); lcd.print("293.63"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง e3 (10, 164.81, 300); lcd.print("164.81"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.63, 300); lcd.print("293.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 900); lcd.print("261.63"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง d3 (10, 146.83, 300); lcd.print("146.83"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.63, 300); lcd.print("293.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 900); lcd.print("246.94"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (350); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (350); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (350); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (350); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.66, 300); lcd.print("293.66"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง d3 (10, 146.83, 300); lcd.print("146.83"); ล่าช้า (350); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3 (10, 220, 300); lcd.print("220.0"); ล่าช้า (400); // เล่น b3 lcd.clear(); โทน (10, 246.94, 900); lcd.print("246.94"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง e3 (10, 164.81, 300); lcd.print("164.81"); ล่าช้า (400); lcd.clear(); // เล่น g#3 โทน (10, 207.65, 300); lcd.print("207.65"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 900); lcd.print("261.63"); ล่าช้า (1000); ล่าช้า (300); lcd.clear(); // เล่นเสียง e3 (10, 164.81, 300); lcd.print("164.81"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่น d4# โทน (10, 311.13, 300); lcd.print("311.13"); ล่าช้า (400); lcd.clear(); // เล่นเสียง e4 (10, 329.63, 300); lcd.print("329.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นเสียง d4 (10, 293.66, 300); lcd.print("293.66"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear(); // เล่นเสียง d3 (10, 146.83, 300); lcd.print("146.83"); ล่าช้า (400); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 300); lcd.print("220.0"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 900); lcd.print("246.94"); ล่าช้า (1000); lcd.clear(); // เล่นโทน f3 (10, 174.61, 300); lcd.print("174.61"); ล่าช้า (400); lcd.clear(); // เล่นโทน c4 (10, 261.63, 300); lcd.print("261.63"); ล่าช้า (400); lcd.clear(); // เล่นโทน b3 (10, 246.94, 300); lcd.print("246.94"); ล่าช้า (400); lcd.clear(); // เล่นโทน a3(10, 220, 900); lcd.print("220.0"); ล่าช้า (1000); lcd.clear(); }
ขั้นตอนที่ 5: การอัปโหลดโค้ด: ทั้งหมดนี้หมายความว่าอย่างไร
มากำหนดฟังก์ชันบางอย่างเป็นภาษาอังกฤษกัน เพื่อให้คุณเข้าใจโค้ด
โทน(x, y, z); = เล่นโทนเสียงที่มีพิทช์ของ y เฮิรตซ์ เป็นเสียงกริ่งที่พิน x สำหรับ z มิลลิวินาที
lcd.print("XYZ"); = พิมพ์ข้อความด้วยตัวอักษร XYZ ไปยังหน้าจอ LCD (เช่น แสดงระยะห่างของเฮิรตซ์)
ล่าช้า(x); = หยุดชั่วคราวเป็นเวลา x มิลลิวินาที
const int X=Y = ตั้งค่าตัวแปรคงที่ X เพื่อตรึง Y และใช้ X หรือ Y เพื่อมอบหมายงานให้กับอุปกรณ์
lcd.clear(); = ล้างหน้าจอ LCD และรีเซ็ตสำหรับจอแสดงผลใหม่
โหมดพิน (X, เอาต์พุต); = ตั้งค่าพิน X สำหรับโหมดเอาต์พุต
เมื่อคุณเข้าใจฟังก์ชันทั้งหมดเหล่านี้แล้ว คุณสามารถแทนที่ตัวแปรด้วยข้อมูลที่คุณรวบรวมเมื่อแปลเพลง และจากนั้นคุณสามารถเขียนโค้ดเพลงของคุณเองได้!
ขั้นตอนที่ 6: เสร็จสิ้น !!
คุณมี Arduino ที่เล่น Fur Elise และแสดงค่าโน้ตใน Hertz หรือคุณสร้าง Arduino ที่เล่นทำนองเพลงที่คุณเลือก และแสดงข้อความที่คุณต้องการแสดง ขอบคุณสำหรับการเยี่ยมชมบทช่วยสอนนี้ และฉันหวังว่าคุณจะทำโครงการนี้บน Arduino
แนะนำ:
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: 5 ขั้นตอน
การออกแบบเกมในการสะบัดใน 5 ขั้นตอน: การตวัดเป็นวิธีง่ายๆ ในการสร้างเกม โดยเฉพาะอย่างยิ่งเกมปริศนา นิยายภาพ หรือเกมผจญภัย
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: 3 ขั้นตอน
การตรวจจับใบหน้าบน Raspberry Pi 4B ใน 3 ขั้นตอน: ในคำแนะนำนี้ เราจะทำการตรวจจับใบหน้าบน Raspberry Pi 4 ด้วย Shunya O/S โดยใช้ Shunyaface Library Shunyaface เป็นห้องสมุดจดจำใบหน้า/ตรวจจับใบหน้า โปรเจ็กต์นี้มีจุดมุ่งหมายเพื่อให้เกิดความเร็วในการตรวจจับและจดจำได้เร็วที่สุดด้วย
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: 3 ขั้นตอน
วิธีการติดตั้งปลั๊กอินใน WordPress ใน 3 ขั้นตอน: ในบทช่วยสอนนี้ ฉันจะแสดงขั้นตอนสำคัญในการติดตั้งปลั๊กอิน WordPress ให้กับเว็บไซต์ของคุณ โดยทั่วไป คุณสามารถติดตั้งปลั๊กอินได้สองวิธี วิธีแรกคือผ่าน ftp หรือผ่าน cpanel แต่ฉันจะไม่แสดงมันเพราะมันสอดคล้องกับ
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): 8 ขั้นตอน
การลอยแบบอะคูสติกด้วย Arduino Uno ทีละขั้นตอน (8 ขั้นตอน): ตัวแปลงสัญญาณเสียงล้ำเสียง L298N Dc ตัวเมียอะแดปเตอร์จ่ายไฟพร้อมขา DC ตัวผู้ Arduino UNOBreadboardวิธีการทำงาน: ก่อนอื่น คุณอัปโหลดรหัสไปยัง Arduino Uno (เป็นไมโครคอนโทรลเลอร์ที่ติดตั้งดิจิตอล และพอร์ตแอนะล็อกเพื่อแปลงรหัส (C++)
Arduino ที่ถูกที่สุด -- Arduino ที่เล็กที่สุด -- Arduino Pro Mini -- การเขียนโปรแกรม -- Arduino Neno: 6 ขั้นตอน (พร้อมรูปภาพ)
Arduino ที่ถูกที่สุด || Arduino ที่เล็กที่สุด || Arduino Pro Mini || การเขียนโปรแกรม || Arduino Neno:…………………………… โปรดสมัครสมาชิกช่อง YouTube ของฉันสำหรับวิดีโอเพิ่มเติม……. โปรเจ็กต์นี้เกี่ยวกับวิธีเชื่อมต่อ Arduino ที่เล็กที่สุดและถูกที่สุดเท่าที่เคยมีมา Arduino ที่เล็กที่สุดและถูกที่สุดคือ arduino pro mini คล้ายกับ Arduino