Saya memiliki perangkat mikrokontroler dengan daya baterai. Saat ini saya beralih daya dengan sederhana on / off switch. Saya ingin beralih daya dengan satu tombol dengan sedikit modifikasi skema (dan mungkin program mikrokontroler) dan tanpa konsumsi ketika perangkat mati. Bagaimana saya bisa melakukannya?
TAMBAH . Saya tahu trik berikut:
Di sini, di awal, mikrokontroler mengatur PB3 ke tinggi dan dengan demikian menahan daya untuk perangkat. Tapi ini bukan solusi untuk masalah saya, karena saya juga perlu mematikan perangkat dengan menekan S1.
TAMBAH . Dapatkah saya mengecualikan VT2 dari sirkuit (mis. Basis drive mikrokontroler VT1 secara langsung)?
Jawaban:
Berdasarkan rangkaian yang Anda berikan, Anda bisa menambahkan dioda secara seri setelah sakelar (S1) (katoda terhubung ke sakelar) dan mereka dapat menggunakan input untuk mendeteksi jika sakelar ditekan lagi, jika demikian, matikan PB3.
Dioda zener melindungi input PIC dari tegangan yang berasal dari catu daya.
sumber
Bagaimana Anda benar-benar perlu? Banyak mikrokontroler modern memiliki arus tidur jauh di bawah arus self-discharge bahkan dari baterai kecil. Anda dapat memiliki tombol hanya mendorong pin I / O dari mikro, yang kemudian beralih antara mode tidur dan aktif setiap tombol tekan. Beberapa debouncing akan dibutuhkan, tetapi itu semua bisa dilakukan di firmware juga.
Metode on / off semacam ini menjadi sangat umum saat ini. Ketika hanya membutuhkan µA, mikrokontroler tidak perlu benar-benar mati, cukup tidur, yang dapat dilakukan di bawah kendali sendiri. Garis tombol harus ditransfer ke sesuatu yang dapat menyebabkan mikro untuk bangun dari tidur, tetapi hampir setiap mikro memiliki setidaknya satu dari mereka, biasanya beberapa.
sumber
EDIT - pada refleksi, rangkaian di bawah ini (yang saya akan tinggalkan untuk referensi) mungkin paling cocok untuk digunakan di sirkuit tanpa mikro. Seperti yang disebutkan dalam jawaban lain, kecuali jika Anda benar-benar tidak mampu membeli sedikit uA, itu tidak masuk akal untuk tidak menggunakan mikro untuk mengontrol daya beralih, karena menggunakan lebih sedikit komponen dan dapat dikontrol dengan akurat.
Versi paling sederhana dapat berupa input IOC (interrupt on change) dengan pull up, dengan tombol ke ground. Mikro memiliki daya yang diterapkan sepanjang waktu, dan mengontrol MOSFET P-channel (dengan pullup dari gerbang ke sumber) untuk sisa rangkaian. Ketika tidur itu memungkinkan gerbang melayang untuk mematikan sirkuit.
Rangkaian referensi:
Pada awalnya P-MOSFET mati, sehingga tidak ada arus basis pada Q2, yang juga mati. Q1 mati, jadi Q1c pada 5V. Rangkaiannya statis.
Ketika S1 (mengabaikan + dan - node, mereka ada untuk tujuan memicu SPICE) menekan 5V pada Q1c yang terhubung ke basis Q2, menyalakannya. Ini menarik gerbang P-MOSFET ke ground, menyalakannya juga.
R4 sekarang melihat 5V dan ketika S1 dirilis, ia memberikan basis Q2s dengan arus yang diperlukan untuk tetap terbuka (dan karena itu MOSFET juga) Q1 juga dihidupkan ketika arus melalui biaya R2 C1 ke ~ 600mV, di mana titik Q1c adalah <200mV (yaitu Q1 dihidupkan)
Rangkaian sekarang statis lagi.
Ketika S1 ditekan lagi, Q1 menenggelamkan arus dari R4 (yang membuat Q2 hidup) mematikan Q2. R1 menarik basis MOSFET hingga 5V dan mematikannya lagi.
Berikut adalah simulasi (V (push) yang tinggi mewakili ketika tombol ditekan):
Kita juga dapat melihat setelah matikan kepala saat ini ke nol (saat C1 dilepaskan dan Q1 mati) sehingga sirkuit tidak mengkonsumsi daya dalam keadaan mati (kursor untuk I (V1) berada pada 19.86s dan mengukur 329nA):
Ide sirkuit asli bukan milik saya, itu berasal dari Dave Jones di EEVblog .
sumber
Seperti yang disarankan Bruno Ferreira, cara termudah untuk memungkinkan tombol untuk bertindak sebagai sakelar "mati" adalah mengubah sirkuit Anda adalah dengan memungkinkan prosesor mengetahui kapan tombol ditekan. Saya pikir kita dapat menggunakan resistor untuk melindungi input prosesor terhadap voltase yang melebihi VDD tanpa perlu Zener untuk itu.
Berikut ini sketsa kasar desain sirkuit yang mungkin Anda gunakan. Setengah bagian kanan mewakili perilaku prosesor, dan saya menggunakan kombinasi transistor, Zener, dan resistor untuk menggantikan regulator. Output prosesor diwakili dengan menggunakan analog switch VDD-nya, bukan gerbang, karena gerbang dalam simulator ini selalu menghasilkan output + 5V.
Aspek kunci dari rangkaian, yang dapat menyebabkan masalah jika diabaikan, adalah bahwa ia dirancang sedemikian rupa sehingga prosesor tidak dapat menghidupkan rangkaian kecuali VDD-nya setidaknya ~ 3,6 volt; Saya juga telah memasang simulator sehingga prosesor akan selalu mencoba untuk menghidupkan outputnya setiap kali VDD-nya di bawah 3,5 volt. Saya telah melihat banyak desain yang mengasumsikan bahwa prosesor tidak akan mencoba untuk menghasilkan logika yang tinggi karena kekuatannya hilang. Asumsi itu mungkin berhasil dengan sejumlah batch chip yang digunakan dalam pengujian, tetapi kemudian gagal dengan batch chip lain yang digunakan dalam produksi skala penuh. Perilaku sebagian besar prosesor tidak ditentukan selama kondisi undervoltage; desain yang baik harus direkayasa sehingga perilaku prosesor selama kondisi seperti itu tidak masalah (sedikit catatan: mungkin aman untuk mengasumsikan bahwa prosesor yang tidak t secara eksplisit dirancang untuk menghasilkan voltase yang lebih tinggi dari voltase apa pun yang diterapkan tidak akan secara ajaib mulai melakukannya; Saya tidak berpikir ada spesifikasi eksplisit untuk itu, tapi saya pikir dalam banyak kasus itu dapat disimpulkan dengan aman).
sumber