Main Menu

Recent posts

#91
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 04:23:31 PM
MIDI Piano Notes

sketch จะแบ่ง the potentiometer input ออกเป็นขั้นๆ, ซึ่งจะถูกแปลไปเป็น the 88 MIDI notes ที่เป็นตัวแทน the keys ต่างๆบน a piano.

Code Source on Github



#92
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 03:00:12 PM
Frere Jacques

ตัวอย่างอันนี้เล่นทำนองของ Frere Jacques:

Code Source on Github




#93
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 01:57:31 PM
Analog Wave Types

The sketch ข้างบนสร้างสิ่งที่เรียกว่า a sine wave. มันถูกเรียกว่า a sine wave เพราะถ้าคุณพล็อต the voltage เทียบกับเวลา คุณจะสังเกตเห็นว่าเส้นนั้นดูเหมือน a sine function.

มีประเภทอื่นๆของ analog waves ที่จะสร้างเสียงที่แตกต่างอย่างชัดเจนเมื่อเทียบกับคลื่นไซน์ ไลบรารีที่เราใช้ใน sketch นี้ยังช่วยให้คุณสร้างฟันเลื่อยและคลื่นสี่เหลี่ยมได้ด้วย คลื่นประเภทเหล่านี้ยังได้ชื่อของพวกมันมาจากลักษณะที่ปรากฏเมื่อแรงดันไฟฟ้าถูกพล็อตเทียบกับเวลา

ลองเปลี่ยนประเภทของคลื่นและฟังว่ามันเปลี่ยนความรู้สึกของเสียงอย่างไร

เปลี่ยนคลื่นโดยการแทนที่บรรทัด 18 ใน the sketch "wave.sine(freq);" ด้วยอย่างใดอย่างหนึ่ง



ตอนนี้คุณทราบแล้วว่าการตั้งค่าของคุณใช้งานได้ คุณสามารถทดลองเพิ่มเติมด้วยตัวอย่างต่างๆ และดูว่าคุณสามารถใช้ DAC ของ UNO R4 เพื่อสร้างเสียงและแม้แต่ท่วงทำนองได้อย่างไร

หมายเหตุ: ในการตั้งค่านี้ เราใช้เพียง a piezo buzzer, คุณอาจสังเกตเห็นว่าเสียงที่ดังขึ้นค่อนข้างแผ่วเบา หากต้องการแก้ไขปัญหานี้ คุณจะต้องมีลำโพง 4 หรือ 8 โอห์ม และเครื่องขยายเสียง คุณจะพบโมดูลเครื่องขยายสัญญาณแบบแยกส่วนจำนวนมากที่ใช้งานง่ายทางออนไลน์
#94
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 01:37:16 PM
Testing It Out

เมื่อคุณอัปโหลดโค้ดไปยังบอร์ดแล้ว มันควรเริ่มสร้าง a sine wave oscillation บน DAC ซึ่งขึ้นอยู่กับความถี่ที่สามารถถูกนำมาใช้เพื่อสร้างเสียงบน a piezo buzzer หรือลำโพงได้ หากคุณมีออสซิลโลสโคปอยู่ในมือ การเชื่อมต่อโพรบเข้ากับเอาต์พุต DAC อาจเป็นแบบฝึกหัดที่น่าสนใจ ดังนั้นลองดูว่าคลื่นจะเป็นอย่างไร

ตอนนี้ให้ลองบิดตัวต้านทานปรับค่าได้, แล้วฟังว่าเสียงเปลี่ยนแปลงไปอย่างไร
#95
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 09:31:45 AM
Code

The code สำหรับบทช่วยสอนนี้แบ่งออกเป็นสองส่วน, main sketch ส่วนหนึ่งและ a header file ที่บรรจุ a pre-generated sawtooth-waveform.

ด้วย sketch นี้, เราได้สร้าง a sine waveform ไว้ล่วงหน้า. คุณสามารถสร้างมันแบบไดนามิกได้ทั้งที่จุดเริ่มต้นของ sketch ของคุณหรือที่กลางทาง, แต่การทำเช่นนี้จะมีประสิทธิภาพน้อยลงหากไม่ได้การดำเนินการใดๆ.  ดังนั้นการไปเส้นทางนี้จึงเป็นแนวทางปฏิบัติที่ดีที่สุด.

The waveform จะถูกจัดเก็บไว้เป็น samples ใน an array, และด้วยทุกลูปของ the sketch เราจะอัฟเดต the DACs output value ไปยังค่าถัดไปใน the array.

เปิด sketch ใหม่และวางโค้ดต่อไปนี้ลงใน window ของคุณ

Code Source on Github

#96
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 31, 2023, 08:54:35 AM
Analog Output vs PWM

สำหรับกรณีการใช้งานจำนวนมากเมื่อ analog output ถูกต้องการ, การใช้ PWM (Pulse Width Modulation) แทน genuine analog output จะให้ผลลัพธ์ที่เหมือนกันโดยพื้นฐาน. A digital output pin สามารถเป็นเต็ม on (HIGH) หรือเต็ม off (LOW) อย่างใดอย่างหนึ่งเท่านั้น, แต่โดยการเปิดและปิดอย่างรวดเร็วด้วยการกำหนดเวลาที่แม่นยำ, the average voltage สามารถถูกควบคุมและ an analog output. วิธีการนี้เรียกว่า PWM.

ตัวอย่างเช่น เมื่อหรี่ไฟ LED คุณสามารถใช้ a PWM enabled digital pin เป็น an analog output pin ได้อย่างอิสระ และ LED จะหรี่แสงเหมือนกับที่คุณใช้ a DAC output.

อย่างไรก็ตาม อาจไม่เป็นเช่นนั้นเสมอไป และสำหรับการใช้งานหลายอย่าง คุณจะต้องใช้ a genuine analog output เพื่อให้ได้ผลลัพธ์ที่ต้องการ ตัวอย่างกรณีหนึ่งคือใน audio purposes, โดยที่เอาต์พุต PWM จะให้คุณภาพเสียงไม่เหมือนกับ a genuine analog output, และจำเป็นต้องอาศัยการเล่นซอเล็กน้อยจึงจะทำงานได้ตั้งแต่แรก
#97
AVR and Arduino / Re: Arduino UNO R4 WiFi Digita...
Last post by tha - October 30, 2023, 03:50:57 PM
Circuit

วงจรที่จำเป็นสำหรับบทช่วยสอนนี้อยู่ในแผนภาพด้านล่าง:

#98
AVR and Arduino / Arduino UNO R4 WiFi Digital-to...
Last post by tha - October 30, 2023, 03:44:48 PM
https://docs.arduino.cc/tutorials/uno-r4-wifi/dac

Arduino UNO R4 WiFi Digital-to-Analog Converter (DAC)

เรียนรู้วิธีสร้างรูปคลื่นและเอาต์พุตพวกมันบน a piezo, โดยใช้ the DAC บน the UNO R4 WiFi board.

AUTHOR: Jacob Hylén

The Arduino UNO R4 WiFi มี a built in DAC (Digital-to-analog Converter) ซึ่งถูกใช้เพื่อแปลง a digital signal ไปเป็น an analog. คุณสมบัตินี้สามารถใช้เพื่อสร้างโปรเจ็กต์เสียงสนุกๆ มากมาย แต่ยังใช้เป็นอุปกรณ์ห้องปฏิบัติการระดับมืออาชีพ เป็น เครื่องกำเนิดฟังก์ชันราคาถูก เป็นต้น.

Goals

ในบทความนี้ คุณจะได้เรียนรู้:

  •  เกี่ยวกับ the DAC feature บนบอร์ด the UNO R4 WiFi,
  •  ความแตกต่างระหว่าง PWM and DAC techniques,
  •  วิธีสร้าง a waveform (sine),
  •  วิธีส่งออก waveform นี้ไปยัง a piezo speaker.

Hardware & Software Needed

หากต้องการติดตามบทความนี้ คุณจะต้องมีฮาร์ดแวร์ต่อไปนี้:

  •  Arduino UNO R4 WiFi
  •  Piezo buzzer
  •  Potentiometer
  •  Jumper wires
#99
AVR and Arduino / Re: Arduino UNO R4 WiFi Real-T...
Last post by tha - October 30, 2023, 09:28:30 AM
Summary

บทช่วยสอนนี้แสดงวิธีใช้ the RTC บน the UNO R4 WiFi, อย่างเช่นการตั้ง a start time, การตั้ง an alarm, หรือการรับเวลาในรูปแบบปฏิทินหรือยูนิกซ์.

อ่านเพิ่มเติมเกี่ยวกับบอร์ดนี้ใน the Arduino UNO R4 WiFi documentation.
#100
AVR and Arduino / Re: Arduino UNO R4 WiFi Real-T...
Last post by tha - October 30, 2023, 08:50:43 AM
Network Time Protocol (NTP)

เพื่อดึงเอาและจัดเก็บ the current time, เราสามารถส่งคำขอไปยัง an NTP server, pool.ntp.org. สิ่งนี้จะดึง the UNIX time stamp และเก็บมันใน an RTC object.

Code Source on Github







โปรดทราบว่าคุณจะต้องสร้างแท็บใหม่ชื่อ arduino_secrets.h สิ่งนี้ถูกใช้ใช้เพื่อจัดเก็บข้อมูลประจำตัวของคุณ ในไฟล์นี้ คุณจะต้องเพิ่ม: