สารบัญ:

Arduino Lesser Known Features: 9 ขั้นตอน
Arduino Lesser Known Features: 9 ขั้นตอน

วีดีโอ: Arduino Lesser Known Features: 9 ขั้นตอน

วีดีโอ: Arduino Lesser Known Features: 9 ขั้นตอน
วีดีโอ: Arduino project 😎^ Arduino #arduino #2022 #2021 #2023 #dc #arduinoproject #diy #foryou 2024, กรกฎาคม
Anonim
Arduino คุณสมบัติที่รู้จักกันน้อย
Arduino คุณสมบัติที่รู้จักกันน้อย

นี่เป็นรายการคุณสมบัติที่ไม่ค่อยได้กล่าวถึงของแพลตฟอร์ม Arduino ที่มักใช้ (เช่น Uno, Nano) รายชื่อนี้ควรทำหน้าที่เป็นข้อมูลอ้างอิงเมื่อใดก็ตามที่คุณต้องการค้นหาคุณลักษณะเหล่านั้นและเพื่อกระจายคำ

ดูโค้ดเพื่อดูตัวอย่างคุณลักษณะทั้งหมดที่ฉันใช้ในโครงการของฉันหลายโครงการที่นี่ในคำแนะนำ (เช่น Arduino 1-wire Display (144 Chars)) ขั้นตอนต่อไปนี้จะอธิบายคุณลักษณะแต่ละอย่าง

ขั้นตอนที่ 1: การจ่ายแรงดัน

Arduino สามารถวัดแรงดันไฟฟ้าของตัวเองได้ทางอ้อม โดยการวัดค่าอ้างอิงภายในด้วยแรงดันไฟที่จ่ายเป็นค่าอ้างอิงขอบเขตบน คุณจะได้อัตราส่วนระหว่างค่าอ้างอิงภายในและแรงดันของแหล่งจ่าย (แรงดันไฟฟ้าที่จ่ายทำหน้าที่เป็นขอบเขตบนสำหรับการอ่านค่าแอนะล็อก/ADC) ในขณะที่คุณทราบค่าที่แน่นอนของแรงดันอ้างอิงภายใน คุณก็สามารถคำนวณแรงดันไฟฟ้าของแหล่งจ่ายได้

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดูที่:

  • Secret Arduino โวลต์มิเตอร์ – วัดแรงดันแบตเตอรี่:
  • Arduino สามารถวัด Vin ของตัวเองได้หรือไม่:

ขั้นตอนที่ 2: อุณหภูมิภายใน

Arduino บางตัวติดตั้งเซ็นเซอร์อุณหภูมิภายใน จึงสามารถวัดอุณหภูมิภายใน (เซมิโคดักเตอร์) ได้

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดูที่:

เซ็นเซอร์อุณหภูมิภายใน:

Arduino สามารถวัด Vin ของตัวเองได้หรือไม่:

ขั้นตอนที่ 3: ตัวเปรียบเทียบอนาล็อก (ขัดจังหวะ)

Arduino สามารถตั้งค่าตัวเปรียบเทียบอนาล็อกระหว่างพิน A0 และ A1 ดังนั้นหนึ่งให้ระดับแรงดันไฟฟ้าและอีกอันหนึ่งตรวจสอบการข้ามของแรงดันนี้ การขัดจังหวะจะเพิ่มขึ้นขึ้นอยู่กับว่าการข้ามเป็นขอบที่เพิ่มขึ้นหรือลดลง (หรือทั้งสองอย่าง) ซอฟต์แวร์สามารถดักจับการขัดจังหวะและดำเนินการตามนั้น

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดูที่:

ขัดจังหวะตัวเปรียบเทียบอนาล็อก:

ขั้นตอนที่ 4: เคาน์เตอร์

แน่นอน AVR มีตัวนับรวมอยู่ด้วย โดยปกติแล้วจะใช้เพื่อตั้งค่าตัวจับเวลาของความถี่ต่างๆ และเพิ่มการขัดจังหวะเมื่อต้องการ การใช้งานที่ล้าสมัยอีกอย่างหนึ่งก็คือการใช้พวกมันเหมือนกับเคาน์เตอร์โดยไม่ต้องใช้เวทย์มนตร์เพิ่มเติม เพียงแค่อ่านค่าเมื่อคุณต้องการ (โพล) การใช้งานที่น่าสนใจอาจเป็นการดีดกลับปุ่มเช่น ยกตัวอย่างโพสต์นี้: AVR Example T1 counter

ขั้นตอนที่ 5: ค่าคงที่ที่กำหนดไว้ล่วงหน้า

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

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดูที่:

Serial.println (_DATE_); // วันที่รวบรวม

Serial.println(_TIME_); // เวลารวบรวม

สตริง stringOne = สตริง (ARDUINO, DEC);

Serial.println (stringOne); // เวอร์ชั่น Arduino ide

Serial.println(_VERSION_); // เวอร์ชัน gcc

Serial.println (_FILE_); // ไฟล์ที่คอมไพล์แล้ว

ข้อมูลโค้ดเหล่านี้จะส่งออกข้อมูลเหล่านั้นไปยังคอนโซลอนุกรม

ขั้นตอนที่ 6: รักษาตัวแปรใน RAM ผ่านการรีเซ็ต

เป็นที่ทราบกันดีว่า Arduino Uno (ATmega328) มี EEPROM ภายในที่ช่วยให้คุณคงค่าและการตั้งค่าไว้ในระหว่างการปิดเครื่องและกู้คืนได้เมื่อเปิดเครื่องครั้งถัดไป ข้อเท็จจริงที่ไม่ค่อยทราบกันดีนักอาจเป็นได้ว่า เป็นไปได้จริง ๆ ที่จะรักษาค่าไว้ในระหว่างการรีเซ็ตแม้ใน RAM อย่างไรก็ตาม ค่าต่างๆ จะหายไประหว่างรอบพลังงาน ด้วยไวยากรณ์:

ตัวแปรแบบยาวที่ไม่ได้ลงนาม_that_is_preserved _attribute_ ((ส่วน (".noinit")));

ตัวอย่างเช่น ให้คุณนับจำนวน RESET และโดยการใช้ EEPROM รวมถึงจำนวนการเพิ่มพลัง

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดู:

  • รักษาตัวแปรใน Ram ผ่านการรีเซ็ต:
  • ห้องสมุด EEPROM:

ขั้นตอนที่ 7: เข้าถึงสัญญาณนาฬิกา

Arduinos และ AVR อื่นๆ (เช่น ATtiny) มีนาฬิกาภายในที่ช่วยให้คุณเรียกใช้ได้โดยไม่ต้องใช้คริสตัลออสซิลเลเตอร์ภายนอก นอกจากนี้ ยังสามารถเชื่อมต่อสัญญาณนี้กับภายนอกได้ด้วยการเสียบหมุด (เช่น PB4) ส่วนที่ยุ่งยากคือคุณต้องเปลี่ยนบิตฟิวส์ของชิปเพื่อเปิดใช้งานคุณสมบัตินั้นและการเปลี่ยนบิตฟิวส์มีความเสี่ยงที่ชิปจะก่ออิฐ

คุณต้องเปิดใช้งานฟิวส์ CKOUT และวิธีที่ง่ายที่สุดในการทำเช่นนี้คือทำตามคำแนะนำเกี่ยวกับวิธีการเปลี่ยนฟิวส์บิตของ AVR Atmega328p - ไมโครคอนโทรลเลอร์ 8 บิตโดยใช้ Arduino

สำหรับรายละเอียดที่แน่นอนเกี่ยวกับวิธีการทำสิ่งนี้รวมถึงโค้ดตัวอย่าง โปรดดู:

  • การปรับ ATtiny internal oscillator:
  • วิธีเปลี่ยนฟิวส์บิตของ AVR Atmega328p - ไมโครคอนโทรลเลอร์ 8 บิตโดยใช้ Arduino:

ขั้นตอนที่ 8: โครงสร้างภายในพอร์ตของ ATmega328P

การรู้โครงสร้างภายในพอร์ตของ ATmega328P ทำให้เราก้าวข้ามขีดจำกัดการใช้งานมาตรฐานได้ ให้รายละเอียดเพิ่มเติมเกี่ยวกับ Capacitance Meter สำหรับช่วง 20 pF ถึง 1000 nF สำหรับรายละเอียดเพิ่มเติมและแผนผังของวงจรภายใน

ตัวอย่างง่ายๆ คือ การใช้ปุ่มที่มีพอร์ตดิจิตอลที่ไม่ต้องการตัวต้านทานใดๆ เนื่องจากการใช้ตัวต้านทานแบบดึงขึ้นภายในดังที่แสดงโดย Input Pullup Serial Example หรือปุ่ม Arduino ที่สอนได้โดยไม่มีตัวต้านทาน

ขั้นสูงกว่านั้นคือการใช้ความรู้นี้ตามที่กล่าวไว้สำหรับการวัดตัวเก็บประจุที่มีขนาดเล็กถึง 20 pF และยิ่งไปกว่านั้นโดยไม่ต้องเดินสายเพิ่มเติม! เพื่อให้ได้ประสิทธิภาพดังกล่าว ตัวอย่างจะใช้อิมพีแดนซ์ภายใน/อินพุต ตัวต้านทานแบบดึงขึ้นภายใน และตัวเก็บประจุแบบจรจัด เปรียบเทียบกับ Arduino CapacitanceMeter Tutorial ซึ่งไม่สามารถต่ำกว่าสองสาม nF ได้

ขั้นตอนที่ 9: LED บนบอร์ด (ในตัว) เป็น Photodetector

บอร์ด Arduino จำนวนมากมีไฟ LED ในตัวหรือในตัวที่สามารถควบคุมได้จากโค้ด เช่น บอร์ด Uno หรือ Nano บนพิน 13 โดยการเพิ่มสายเดี่ยวจากพินนี้ไปยังพินอินพุตแบบอะนาล็อก (เช่น A0) เราสามารถใช้ LED นี้เป็นเครื่องตรวจจับแสงได้ สามารถใช้งานได้หลากหลายวิธี เช่น ใช้วัดความสว่างของสิ่งแวดล้อม ใช้ LED เป็นปุ่ม ใช้ LED สำหรับการสื่อสารแบบสองทาง (PJON AnalogSampling) เป็นต้น

แนะนำ: