Arduino กำลังไฟจากแบตเตอรี่ 9V


16

เมื่อบ่ายวานนี้ฉันปล่อยให้ Arduino ทำงานด้วยแบตเตอรี่อัลคาไลน์ 9V (+ เชื่อมต่อกับ Vin - เชื่อมต่อกับ GND) เช้าวันนี้ (16 ชั่วโมงต่อมา) หน้าจอ LCD ไม่ปรากฏให้เห็นอีกต่อไปและเมื่อฉันวัดแรงดันไฟฟ้าฉันเห็นแบตเตอรี่หมดแล้วทำให้ฉันประหลาดใจ

อุปกรณ์ของฉันคือ Arduino Uno พร้อม LCD 2x16 พร้อมไฟแบ็คไลท์ LCD และเซ็นเซอร์ DS18B20 2 ตัว เป็นเรื่องปกติหรือไม่ที่อุปกรณ์ดังกล่าวจะสิ้นเปลืองแบตเตอรี่ขนาด 9 โวลต์นี้อย่างรวดเร็ว?

ฉันได้อ่านคำตอบของตัวเลือกการประหยัดพลังงานของ Arduino เพื่อยืดอายุแบตเตอรี่คืออะไร (หรือฉันจะใช้อย่างไร) คำถามและฉันคิดว่าสิ่งที่ฉันเห็นอาจเกี่ยวข้องกับสิ่งนี้ แต่ฉันไม่แน่ใจ ถ้าเป็นเช่นนั้นมีแผนงานทั่วไปบางอย่างที่จะเชื่อมต่อกับ Arduino เพื่อใช้พลังงานจากแบตเตอรี่อย่างมีประสิทธิภาพหรือไม่?


ฉันลองแนบมัลติมิเตอร์และวัดกระแสจากแบตเตอรี่กับสิ่งของทั้งหมดและจอแสดงผลและเซ็นเซอร์ถูกตัดการเชื่อมต่อ อย่าพยายามเพิ่มประสิทธิภาพของอาร์ดิโนถ้ามันเป็นอย่างอื่นที่ดึงพลังงานส่วนใหญ่
BowlOfRed

@ bowlofred "การวัดกระแสจากแบตเตอรี" - จะทำยังไงฉันก็ต้องซื้อเซลล์ 9V ใหม่ก่อน :)
Suma

1
แบตเตอรี่ 9V มีขนาดเล็กเพียงประมาณ 500mAh แสงไฟ LCD เพียงอย่างเดียวจะฆ่ามันภายในไม่กี่ชั่วโมง
ฮอบส์

วิธีการที่ให้พลังมากขึ้น: 1. ใช้บอร์ด TI MSP430 แทน Arduino 2. ใช้ตัวควบคุมที่ไม่ใช่เชิงเส้น 3. การใช้ LCD โดยไม่มีแสงไฟ (เช่นในเครื่องคิดเลข)
วิ

@ bowlofred ปัจจุบันมีสิ่งทั้งหมด 61 mA ไม่มีแสงไฟ 57 mA ไม่มี LCD และไม่มีเซ็นเซอร์ 56 mA
Suma

คำตอบ:


21

การใช้พลังงาน

บอร์ด Arduino ใช้พลังงานเล็กน้อยเมื่อเทียบกับระบบสมองกลฝังตัวอื่นที่มีฟังก์ชั่นคล้ายกัน

มีสามปัจจัยหลัก:

  • NCP1117 ( แผ่นข้อมูล ) ตัวควบคุมเชิงเส้น 5V ใน Arduino UNO R3 ( แผนผัง ) มีกระแสนิ่งประมาณ 6mA

  • ATMega328P ( แผ่นข้อมูล ) ใช้เวลาประมาณ 5mA @ 8MHz และ 5V และอาจมากกว่าสองเท่าที่ 16MHz

  • ผู้ใช้ 2973: ATMega16U2 ที่ใช้สำหรับการสื่อสาร USB ยังมีค่าประมาณ 13mA

ไฟ LED และอุปกรณ์ต่อพ่วงอื่น ๆ ยังวาดกระแส ในวงจรของคุณไฟหลังจอ LCD ก็น่าจะวาด 4mA เหมือนกัน

เมื่อปล่อย 9V ถึง 5V ผ่านตัวควบคุมแบบเชิงเส้นตัวควบคุมเกือบครึ่งหนึ่งจะสูญเสียไปเนื่องจากตัวควบคุมลดลง 4V ดันแคนให้ความเห็นว่าสิ่งนี้เกือบสองเท่าของพลังงานที่นิ่งจาก 9V เช่นเดียวกับพลังงานที่จำเป็นสำหรับ mA ทุก 5V, ตั้งแต่ 4/9 ของพลังงานได้สูญเสียความร้อนโดยเครื่องควบคุมแรงดันไฟฟ้า ตัวควบคุมการสลับที่มีประสิทธิภาพจะดับไฟ 5V ออกไปด้วยพลังงานที่สิ้นเปลืองเพียงเล็กน้อยซึ่งจะช่วยลดการดึงกระแสไฟจากแบตเตอรี่ที่เห็นได้ในวันที่ 4 / 9th

แบตเตอรี่duracell 9V ( แผ่นข้อมูล ) ลดลงจาก 9V เป็น 7V ในเวลาประมาณ 7.5 ชั่วโมงด้วยกระแส 50mA ดังนั้นการคาดเดาคร่าวๆคือวงจรของคุณใช้เวลาประมาณ 25mA ซึ่งฟังดูถูกต้องตามคำอธิบายของวงจรของคุณ

หมายเหตุอายุการใช้งานแบตเตอรี่อัลคาไลน์ไม่เป็นแบบเชิงเส้นเทียบกับกระแสไฟฟ้า สำหรับกระแสไฟฟ้าขนาดเล็กมาก (<1mA) ชีวิตของอัลคาไลน์ใกล้ถึงแบตเตอรี่ลิเธียม

รับกระแสลง

นี่คือเคล็ดลับบางอย่างเพื่อลดการใช้กระแสไฟฟ้าลง:

  • เครื่องปรับลม:เปลี่ยนเครื่องปรับลมด้วยเครื่องที่มีกระแสไฟฟ้าต่ำนิ่งหรือดีกว่า, เครื่องปรับแรงดันไฟฟ้าสลับ (ด้วยกระแสไฟฟ้านิ่งต่ำ) ตัวควบคุมการสลับใช้ 'พัลส์' ของกระแสและตัวเหนี่ยวนำและตัวเก็บประจุภายนอกบางตัวเพื่อให้แรงดันไฟฟ้าคงที่ที่เหมาะสม ไม่สิ้นเปลืองพลังงานเหมือนกับการปล่อยแรงดันไฟฟ้าของตัวควบคุมเชิงเส้นและประสิทธิภาพสูง 90% เป็นไปได้

    • มีตัวแปลง buck (step down) ที่ใช้แบตเตอรี่เป็นอินพุตจากนั้นเชื่อมต่อโดยตรงกับ 5V และ GND ผ่าน VIN และตัวควบคุม อันนี้จาก Pololu ทั้งขึ้นและลงและมี 0.1mA ปัจจุบันนิ่ง
    • หรือคุณสามารถใช้แบตเตอรี่อัลคาไลน์ 1.5V บางส่วนและตัวแปลงเพิ่ม (ก้าวขึ้น) เพื่อรับแรงดันไฟฟ้าสูงสุด 5V (เช่นผลิตภัณฑ์นี้จาก Sparkfun) ดูเหมือนว่าตัวแปลงบูสเตอร์นั้นมีอยู่มากมาย
    • ในที่สุดคุณสามารถซื้อแบตเตอรี่ลิเธียมที่ชาร์จไฟได้พร้อมที่ชาร์จโล่ ข้อดีของการทำเช่นนี้คือไม่ต้องซื้อแบตเตอรี่ใหม่และสำหรับแบตเตอรี่ที่มีขนาดใหญ่กว่า 9V เล็กน้อยแบตเตอรี่ลิเธียมก็มีความจุมากกว่า ผลิตภัณฑ์ที่ยอดเยี่ยมจริงๆคือชุดกันน้ำแบบกันซึมแบบ Seeeduinoซึ่งมีวงจรชาร์จแบตเตอรี่แผงโซล่าเซลล์และสินค้าอื่น ๆ
  • ATMega328P:แทนที่จะใช้delayช่วงเวลาและหมุนloopอย่างไม่สิ้นสุดรอสิ่งที่เกิดขึ้นอีกครั้งเขียนโค้ดของคุณใหม่เพื่อให้เข้าสู่โหมดสลีประหว่างการอ่านเซ็นเซอร์ ฯลฯ มีห้องสมุดพลังงานต่ำอยู่ไม่กี่แห่งที่ใช้ตัวจับเวลาสุนัขเฝ้าบ้านสำหรับ ตื่นขึ้นมาเป็นระยะจากการนอนหลับซึ่งมีประโยชน์ คุณจะได้รับปริมาณการใช้กระแสไฟฟ้าของ ATMega328P ต่ำกว่า 0.1mA ในระหว่างที่อยู่ในโหมดสลีป

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

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

  • ATMegu16U2: ความคิดเห็นของผู้ใช้2973ดูเหมือนว่าชิปนี้ค่อนข้างหิวพลังงาน ( user2973 ) มันสามารถลบออกได้เพื่อประหยัดพลังงานและใช้ UART แทน แต่ดูเหมือนว่าจะเกินกำลัง มีบอร์ด Arduino Pro ที่เป็นเพียงโครงกระดูกเปลือยโดยไม่มีอินเตอร์เฟส USB ที่สามารถใช้แทน UNO ได้

  • แบตเตอรี่:เซลล์อัลคาไลน์อื่น ๆ มีความจุสูงกว่ามาก ตัวอย่างเช่น 1.5V AA มีมากกว่า 2000mAh สำหรับกระแสต่ำ การใช้เซลล์ AA พร้อมกับตัวแปลงบูสต์สามารถเพิ่มเวลาก่อนการเปลี่ยนแบตเตอรี่ ใช้เซลล์ D (16000mAh) และมันจะทำงานสักครู่ : D

สรุป

ด้วยแหล่งจ่ายไฟและการเข้ารหัสที่เหมาะสมคุณจะได้รับแบตเตอรี่ในปริมาณที่เหมาะสม ด้วยหลักการข้างต้นฉันได้สร้างบอร์ดอนุพันธ์ Arduino ที่วัดเซ็นเซอร์ไม่กี่ตัวและจัดเก็บการอ่านไปยังการ์ด SD ทุกครึ่งวินาที มันสามารถอยู่ได้นานประมาณ 4 เดือนสำหรับแบตเตอรี่ AA 2 ก้อนดังนั้นจึงเป็นไปได้ที่จะมีพลังงานต่ำและยังคงอยู่ในระบบนิเวศ Arduino

ชิปที่ฉันใช้สำหรับบอร์ดพลังงานต่ำคือ LTC3525-3.3V ใช้แรงดันไฟฟ้าต่ำสุดที่ 0.8V และเพิ่มสูงถึง 3.3V และมีรุ่น 5V ให้เลือกด้วย ฉันออกแบบ PCB สำหรับชิปนี้เนื่องจากไม่มีการฝ่าวงล้อมสำเร็จรูปและในแผ่นข้อมูลมีการออกแบบอ้างอิง Critera หลักสำหรับการเลือกชิปนี้คือมันยังคงมีประสิทธิภาพสูงในกระแสต่ำมาก ตัวแปลงอื่น ๆ บางตัวต้องการวาดกระแสขั้นต่ำเพียงเล็กน้อย

ผู้บริโภคที่ใหญ่ที่สุดของอำนาจบนกระดานจบลงด้วยการเป็น micro SD card มันสามารถแตกต่างกันระหว่าง 0.1mA และ 1.5mA ของการไม่ได้ใช้งานในปัจจุบันขึ้นอยู่กับผู้ผลิต ฉันพบการ์ด Verbatim และ Lexar เพื่อใช้พลังงานน้อยที่สุด ฉันจะถาม EE.SE นี้ถึงวันที่ผลการทดสอบการใช้พลังงานการ์ด micro SD ของฉัน


1
คำตอบที่ดีอย่างละเอียด หมายเหตุ: การใช้พลังงานของ usb เป็น serial atmega16u2 ซึ่งจะมีความสำคัญมากหลังจากแก้ไขปัญหาอื่น ๆ
user2973

@ user2973 คุณมีความคิดว่ามันอาจจะเป็นอย่างไร ฉันสามารถเอาคุณสมบัติทั่วไปออกจากแผ่นข้อมูลได้ แต่ฉันไม่ได้ใส่เข้าไปเพราะฉันไม่รู้ว่าเฟิร์มแวร์มีอาการง่วงหรือไม่ ถ้ามันทำงานได้ตามปกติมันคือ 12mA @ 5V ซึ่งเป็นตัวดึงที่สำคัญ
geometrikal

@geometrikal คุณให้พลังงานกับ Arduino ด้วยแบตเตอรี่ขนาด AA 2 ก้อนอย่างไร นั่นเป็นเพียง 3 โวลต์ซึ่งต่ำกว่าค่าต่ำสุด แหล่งจ่ายไฟที่คุณพูดถึงเป็นเจ้าชู้ / เพิ่มอุปทาน? (คำตอบที่โดดเด่นโดยวิธี <vote>.)
Duncan C

1
@geometrikal คุณจะโพสต์ลิงก์ไปยังแหล่งจ่ายไฟเจ้าชู้ที่คุณพูดถึงอย่างเช่นจาก SparkFun หรือไม่ ฉันเพิ่งค้นหาและไม่สามารถหาได้ สำหรับอายุการใช้งานที่ยาวนานแหล่งจ่ายไฟแบบบั๊กนั้นมีความสำคัญเนื่องจากกระแสไฟฟ้าที่ไม่ได้ใช้งานจากเครื่องปรับแรงดันไฟฟ้าทั่วไปนั้นมีความสำคัญ
Duncan C

1
@geometrikal คุณพูดว่า "... นอกจากนี้เมื่อปล่อย 9V ถึง 5V ผ่านตัวควบคุมเชิงเส้นพลังงานเกือบทั้งหมดจะสูญเสียไปโดยตัวควบคุมเนื่องจากการลดลงของ 4V" นั่นไม่ได้เพิ่มพลังการวาดที่นิ่งเฉยจาก 9V เป็นสองเท่า ต้องการพลังงานสำหรับ mA ทุก 5V หรือไม่? (. ตั้งแต่วันที่ 4 / 9ths ของพลังงานที่ได้รับการสูญเสียความร้อนโดยการควบคุมแรงดันไฟฟ้า) ดูเหมือนว่าการทำงานออกเป็นแปลงเจ้าชู้เหมือนTSR 1-2450จะดีกว่า
ดันแคน C

3

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

Sparkfun มีบทความที่ดีเกี่ยวกับวิธีเพิ่มอายุการใช้งานแบตเตอรี่โดยใช้ ATmega328 ที่คุณมีใน Arduino Uno ของคุณ: https://www.sparkfun.com/tutorials/309

มองหาวิธีสร้างวงจรที่มีเฉพาะส่วนประกอบที่คุณต้องการจริงๆและให้ไมโครคอนโทรลเลอร์ของคุณนอนหลับให้มากที่สุด


1

อีกทางเลือกหนึ่งคือการมองหาฮาร์ดแวร์ (Arduino Clone) ที่ได้รับการออกแบบมาเพื่อใช้งานเช่นบอร์ดนี้: https://bitbucket.org/talk2/whisper-node-avr/overview

การรวมฮาร์ดแวร์ดังกล่าวเข้ากับเทคนิคการประหยัดพลังงานคุณควรใช้งานแบตเตอรี่เป็นเวลานาน!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.