สารบัญ:
- ขั้นตอนที่ 1: การลดแรงดันไฟฟ้าโดยใช้แบตเตอรี่ LiPo
- ขั้นตอนที่ 2: ลดนาฬิกา CPU
- ขั้นตอนที่ 3: ถอด LED Power LED และ Power Regulator บนบอร์ด
- ขั้นตอนที่ 4: ถอด USB D- Pullup Resistor (ทำเครื่องหมาย 152) จาก 5 โวลต์ (VCC) และเชื่อมต่อกับ USB V+
- ขั้นตอนที่ 5: ใช้โหมดสลีปแทนการหน่วงเวลา ()
- ขั้นตอนที่ 6: แก้ไขฟิวส์
- ขั้นตอนที่ 7: ข้อมูลเพิ่มเติม
วีดีโอ: ลดการใช้พลังงานแบตเตอรี่สำหรับ Digispark ATtiny85: 7 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
หรือ: ใช้งาน Arduino ด้วยเซลล์แบบเหรียญ 2032 เป็นเวลา 2 ปี
การใช้บอร์ด Digispark Arduino ของคุณกับโปรแกรม Arduino จะดึงกระแส 20 mA ที่ 5 โวลต์
ด้วยพาวเวอร์แบงค์ขนาด 5 โวลต์ 2,000 mAh จะทำงานเพียง 4 วันเท่านั้น
ขั้นตอนที่ 1: การลดแรงดันไฟฟ้าโดยใช้แบตเตอรี่ LiPo
การใช้แบตเตอรี่ LiPo 3.7 โวลต์เมื่อจ่ายไฟให้บอร์ด Digispark ดึงกระแสไฟเพียง 13 mA
ด้วยแบตเตอรี่ขนาด 2,000 mAh ใช้งานได้นาน 6 วัน
ขั้นตอนที่ 2: ลดนาฬิกา CPU
หากคุณไม่ได้ใช้การเชื่อมต่อ USB คณิตศาสตร์หนัก ๆ หรือการสำรวจความคิดเห็นอย่างรวดเร็วในโปรแกรมของคุณ ให้ลดความเร็วสัญญาณนาฬิกา เช่น. IRMP ห้องสมุดรับอินฟราเรดโพลอย่างหนักทำงานได้ดีที่ 8 MHz
ที่ 1 MHz Digispark ของคุณดึง 6 mA ด้วยแบตเตอรี่ขนาด 2,000 mAh ใช้งานได้ 14 วัน
ขั้นตอนที่ 3: ถอด LED Power LED และ Power Regulator บนบอร์ด
ปิดใช้งาน LED เพาเวอร์โดยการทำลายลวดทองแดงที่เชื่อมต่อ LED เพาเวอร์กับไดโอดด้วยมีดหรือถอด / ปิดการใช้งานตัวต้านทาน 102
เนื่องจากตอนนี้คุณใช้แบตเตอรี่ LiPo คุณจึงสามารถถอด IC ตัวควบคุมพลังงานบนบอร์ดได้ ขั้นแรกให้ยกหมุดด้านนอกโดยใช้หัวแร้งและหมุด จากนั้นประสานขั้วต่อขนาดใหญ่แล้วถอดตัวควบคุม สำหรับเรกูเลเตอร์ขนาดเล็ก ให้ใช้บัดกรีมากและทำให้พินทั้ง 3 พินร้อนพร้อมกัน แล้วถอดออก
ที่ 1 MHz และ 3.8 โวลต์ Digispark ของคุณดึง 4.3 mA แล้ว ด้วยแบตเตอรี่ขนาด 2,000 mAh ใช้งานได้นาน 19 วัน
ขั้นตอนที่ 4: ถอด USB D- Pullup Resistor (ทำเครื่องหมาย 152) จาก 5 โวลต์ (VCC) และเชื่อมต่อกับ USB V+
การปรับเปลี่ยนนี้เข้ากันได้กับ micronucleus bootloader เวอร์ชัน all1.x หากคุณมี 2.x bootloader ใหม่บนบอร์ดของคุณแล้ว คุณต้องอัปเกรดเป็นเวอร์ชัน 2.5 โดยมี "activePullup" อยู่ในชื่อ วิธีที่ง่ายที่สุดในการทำเช่นนี้คือการติดตั้งแพ็คเกจบอร์ด digispark ใหม่และเบิร์น bootloader ด้วยเวอร์ชันที่แนะนำ (!!!ไม่ใช่ค่าเริ่มต้นหรือก้าวร้าว!!!)
ทำลายลวดทองแดงที่ด้านข้างของตัวต้านทานที่ชี้ไปที่ ATtiny ซึ่งจะเป็นการปิดใช้งานอินเทอร์เฟซ USB และในทางกลับกันสามารถตั้งโปรแกรมบอร์ด Digispark ผ่าน USB ได้ หากต้องการเปิดใช้งานอีกครั้ง แต่ยังคงประหยัดพลังงาน ให้เชื่อมต่อตัวต้านทาน (เครื่องหมาย 152) กับ USB V+ โดยตรง ซึ่งหาได้ง่ายที่ด้านนอกของไดโอด shottky ไดโอดและด้านที่ถูกต้องสามารถพบได้โดยใช้เครื่องทดสอบความต่อเนื่อง ด้านหนึ่งของไดโอดนี้เชื่อมต่อกับพิน 8 ของ ATtiny (VCC) และ Digispark 5V อีกด้านหนึ่งเชื่อมต่อกับ USB V+ ตอนนี้ตัวต้านทาน USB pullup จะเปิดใช้งานก็ต่อเมื่อบอร์ด Digispark เชื่อมต่อกับ USB เช่น ระหว่างการเขียนโปรแกรม
มีการบันทึก 2 ขั้นตอนหลังไว้ที่นี่ด้วย
ที่ 1 MHz และ 3.8 โวลต์ Digispark ของคุณดึง 3 mA แล้ว ด้วยแบตเตอรี่ขนาด 2,000 mAh ใช้งานได้ 28 วัน
ขั้นตอนที่ 5: ใช้โหมดสลีปแทนการหน่วงเวลา ()
แทนที่จะใช้การหน่วงเวลานาน คุณสามารถใช้ CPU sleep แบบประหยัดพลังงานได้ การนอนหลับสามารถอยู่ได้นานตั้งแต่ 15 มิลลิวินาทีถึง 8 วินาที โดยปรับขั้นได้ 15, 30, 60, 120, 250, 500 มิลลิวินาที และ 1, 2, 4, 8 วินาที
เนื่องจากเวลาเริ่มต้นจากโหมดสลีปคือ 65 มิลลิวินาทีด้วยการตั้งค่าฟิวส์ digispark จากโรงงาน เฉพาะการหน่วงเวลาที่มากกว่า 80 ms เท่านั้นที่สามารถแทนที่ด้วยโหมดสลีป
ระหว่างการนอนหลับ Digispark ของคุณดึง 27 µA ด้วยเซลล์ปุ่ม 200 mAh 2032 จะนอนหลับเป็นเวลา 10 เดือน
เพื่อความถูกต้อง Digispark อย่างน้อยต้องปลุกทุกๆ 8 วินาที ทำงานอย่างน้อย 65 มิลลิวินาทีและดึงกระแสไฟประมาณ 2 mA สิ่งนี้นำไปสู่กระแสเฉลี่ย 42 µA และ 6 เดือน ในสถานการณ์สมมตินี้ แทบไม่มีความแตกต่างเลยหากโปรแกรมของคุณทำงานเป็นเวลา 10 มิลลิวินาที (ทุกๆ 8 วินาที)
รหัสสำหรับการใช้โหมดสลีปคือ:
#include #include uint16_t ที่ระเหยได้ sNumberOfSleeps = 0; millis_timer_millis ระยะยาวที่ไม่ได้ลงนาม การตั้งค่าเป็นโมฆะ () { sleep_enable (); set_sleep_mode(SLEEP_MODE_PWR_DOWN); // โหมดสลีปที่ลึกที่สุด … } void loop(){ … sleepWithWatchdog(WDTO_250MS, true); // สลีปเป็นเวลา 250 ms … sleepWithWatchdog(WDTO_2S, true); // sleep for 2 s … } /* * aWatchdogPrescaler can be 0 (15 ms) to 3 (120 ms), 4 (250 ms) up to 9 (8000 ms) */ uint16_t computeSleepMillis(uint8_t aWatchdogPrescaler) { uint16_t tResultMillis = 8000; สำหรับ (uint8_t i = 0; ฉันบันทึก 200 uA // ใช้ wdt_enable() เนื่องจากมันจัดการว่าบิต WDP3 อยู่ในบิต 5 ของการลงทะเบียน WDTCR wdt_enable(aWatchdogPrescaler); WDTCR |= _BV(WDIE) | _BV(WDIF); // เปิดใช้งานการขัดจังหวะการเฝ้าระวัง + รีเซ็ตการตั้งค่าสถานะขัดจังหวะ -> ต้องการ ISR (WDT_vect) sei (); // เปิดใช้งานการขัดจังหวะ sleep_cpu (); // การขัดจังหวะการเฝ้าระวังจะปลุกเราให้ตื่นจากโหมดสลีป wdt_disable (); // เพราะการขัดจังหวะครั้งต่อไปจะไม่เป็นเช่นนั้น นำไปสู่การรีเซ็ต เนื่องจาก wdt_enable() ตั้งค่า WDE / Watchdog System Reset เปิดใช้งาน ADCSRA |= ADEN; /* * เนื่องจากนาฬิกาจับเวลาอาจถูกปิดใช้งาน ให้ปรับมิลลิวินาทีเฉพาะในกรณีที่ไม่ได้พักในโหมด IDLE (SM2…0 บิตคือ 000) */ ถ้า (aAdjustMillis && (MCUCR & ((_BV(SM1) | _BV(SM0)))) != 0) { millis_timer_millis += computeSleepMillis(aWatchdogPrescaler); } } /* * การขัดจังหวะนี้จะทำให้ cpu ตื่นจากโหมดสลีป */ ISR(WDT_vect) { sNumberOfSleeps++; }
ขั้นตอนที่ 6: แก้ไขฟิวส์
22 mA ของ 27 mA ถูกวาดโดย BOD (การตรวจจับ BrownOutDetection/undervoltage) สามารถปิดใช้งาน BOD ได้โดยการตั้งโปรแกรมฟิวส์ใหม่เท่านั้น ซึ่งสามารถทำได้ด้วยโปรแกรมเมอร์ ISP เท่านั้น การใช้สคริปต์นี้คุณสามารถลดกระแสไฟลงเหลือ 5.5 µA และลดเวลาเริ่มต้นจากโหมดสลีปเหลือ 4 มิลลิวินาที
5 จาก 5.5 µA ที่เหลือจะถูกวาดโดยตัวนับสุนัขเฝ้าบ้านที่ใช้งานอยู่ หากคุณสามารถใช้การรีเซ็ตภายนอกเพื่อปลุก การบริโภคในปัจจุบันอาจลดลงเหลือ 0.3 µA ตามที่ระบุไว้ในแผ่นข้อมูล
ถ้าคุณไม่สามารถเข้าถึงค่านี้ได้ สาเหตุอาจเป็นได้ว่ากระแสย้อนกลับของ schottky diode ระหว่าง VCC และ pullup สูงเกินไป โปรดทราบว่าตัวต้านทาน 12 MOhm ยังดึง 0.3 µA ที่ 3.7 โวลต์
ส่งผลให้มีการใช้กระแสไฟเฉลี่ย 9 µA (2.5 ปีกับเซลล์ปุ่ม 200 mAh 2032) หากคุณเช่น ประมวลผลข้อมูลทุกๆ 8 วินาทีเป็นเวลา 3 มิลลิวินาทีเช่นนี้
ขั้นตอนที่ 7: ข้อมูลเพิ่มเติม
ภาพวาดปัจจุบันของกระดาน Digispark
โครงการโดยใช้คำแนะนำนี้
แนะนำ:
Duckies ยางง่าย ๆ กับ Digispark & DuckyTrainer: 4 ขั้นตอน
Ducky ยางง่าย ๆ ด้วย Digispark & DuckyTrainer: ในบทช่วยสอนนี้ คุณจะได้เรียนรู้วิธีตั้งค่า USB Rubber Ducky (USB Keystroke Injector) โดยไม่ต้องเข้ารหัส! USB Rubber Ducky คืออะไร● อุปกรณ์ USB ที่เลียนแบบผู้ใช้ที่เป็นมนุษย์โดยอัตโนมัติเมื่อเชื่อมต่อ ● เร็วกว่ามนุษย์มาก ไม่มีการพิมพ์ผิด
ATtiny85 การติดตามกิจกรรมการสั่นที่สวมใส่ได้นาฬิกาและการเขียนโปรแกรม ATtiny85 พร้อม Arduino Uno: 4 ขั้นตอน (พร้อมรูปภาพ)
ATtiny85 Wearable Vibrating Activity Tracking Watch & Programming ATtiny85 With Arduino Uno: จะสร้างนาฬิกาติดตามกิจกรรมที่สวมใส่ได้อย่างไร? นี่คืออุปกรณ์สวมใส่ที่ออกแบบมาเพื่อให้สั่นเมื่อตรวจพบการหยุดนิ่ง คุณใช้เวลาส่วนใหญ่กับคอมพิวเตอร์เหมือนฉันหรือเปล่า คุณนั่งเป็นชั่วโมงโดยไม่รู้ตัวหรือไม่? จากนั้นอุปกรณ์นี้จะเ
ปุ่มปรับระดับเสียง USB โดยใช้ DigiSpark และตัวเข้ารหัสแบบหมุน: 3 ขั้นตอน
ปุ่มปรับระดับเสียง USB โดยใช้ DigiSpark และตัวเข้ารหัสแบบหมุน: นี่คือปุ่มควบคุมระดับเสียง USB ราคาถูกสุด ๆ บางครั้งปุ่มแบบเดิมจะสะดวกกว่าในการควบคุมสิ่งต่างๆ มากกว่าการคลิกเมาส์ทุกที่ โปรเจ็กต์นี้ใช้ DigiSpark, Rotary Encoder และ Adafruit Trinket USB Library (https://github.c
เริ่มต้นใช้งาน Digispark Attiny85 โดยใช้ Arduino IDE: 4 ขั้นตอน
เริ่มต้นใช้งาน Digispark Attiny85 โดยใช้ Arduino IDE: Digispark เป็นบอร์ดพัฒนาไมโครคอนโทรลเลอร์ที่ใช้ Attiny85 คล้ายกับสาย Arduino โดยมีราคาถูกกว่า เล็กกว่า และทรงพลังน้อยกว่าเล็กน้อย ด้วยโฮสต์โล่ทั้งหมดเพื่อขยายการทำงานและความสามารถในการใช้ Arduino ID ที่คุ้นเคย
Digispark Lantern (โครงการ ATtiny85): 7 ขั้นตอน
Digispark Lantern (โครงการ ATtiny85): ว่าไงพวก คำสั่งใหม่อีกครั้งตามปกติ ฉันจะแสดงให้คุณเห็นถึงวิธีการสร้างโปรเจ็กต์สุดเจ๋งจากอุปกรณ์อิเล็กทรอนิกส์ และคราวนี้มันเป็นเรื่องง่ายสำหรับพวกคุณทุกคนที่จะทำสิ่งนี้ โครงการที่เป็นโคมไฟอิเล็คทรอนิคส์ เพราะเราเป็น