Saya sedang bekerja pada saklar daya lunak untuk mikrokontroler di mana saklar sesaat dapat menghidupkan sirkuit (termasuk mikrokontroler), dan kemudian ketika saklar didorong untuk kedua kalinya, mikrokontroler dapat mematikan dengan sendirinya setelah melakukan pembersihan.
Saya memiliki sirkuit di atas sejauh ini, tetapi saya tidak yakin apakah itu akan dapat diandalkan. Saya menggunakan baterai lithium-ion (3.7-4.2V) dan regulator TC1015 (output 3.0V). Idenya adalah bahwa ketika sakelar ditekan, regulator menyala, maka mikrokontroler menjadi uC Power
tinggi, tetap menyala. Ketika sakelar ditekan untuk kedua kalinya, interupsi aktif uC Switch
akan memungkinkan mikrokontroler untuk mengatur uC Power
rendah, mematikannya sendiri.
Yang tidak saya yakini, adalah apakah saya perlu melindungi mikrokontroler dari tegangan baterai. Mikrokontroler yang saya gunakan memiliki tegangan maksimum absolut pada pin I / O dari Vdd + 0.4V, jadi saya tidak yakin bagaimana menangani yang terbaik.
Kedua, apakah sirkuit ini benar-benar membuat regulator tidak menyala ketika dalam keadaan "mati"? Saya telah berpikir tentang menggunakan resistor pulldown pada garis aktifkan, tetapi saya khawatir tentang penarikan saat ini saat chip dinyalakan.
Sunting: Mikrokontroler adalah beban utama yang akan diubah, jadi memasukkannya ke mode daya rendah sayangnya tidak akan berfungsi di sini.
Edit # 2 (Setelah jawaban diposting):
Saya akhirnya menggunakan rangkaian di bawah ini:
Sirkuit yang diposting sebelumnya tidak bekerja dengan baik, dan memiliki masalah dengan garis memungkinkan mengambang ketika mikrokontroler tidak menyalakannya.
Sirkuit baru menggunakan flip flop, dengan jalur data biasanya ditarik rendah. Menekan tombol menyentuh jam, menyalakan sistem. Menekan switch selanjutnya mendorong CLOCK
jalur tinggi (memungkinkan mikrokontroler merasakan pers), tetapi tidak memengaruhi output regulator. Setelah mikrokontroler siap dimatikan, ia mengatur DATA
jalur tinggi dan kemudian mengatur CLOCK
jalur tinggi, yang akan menyebabkan regulator mati.
Salah satu hal yang sangat menyenangkan tentang pengaturan ini, adalah bahwa tekan tombol pertama menyalakan regulator, dan terus menyala sampai mikrokontroler siap dimatikan. Bouncing bukan merupakan masalah, karena tidak peduli berapa kali garis clock menjadi tinggi, garis data tetap rendah karena pull down. Selain itu, undian saat ini harus sangat minimal (hanya flip flop dan TC1015 saat dimatikan), dan ada arus undian minimum melalui resistor saat aktif.
Mikrokontroler tidak perlu dilindungi dari tegangan baterai pada garis clock, tetapi seperti yang disarankan @Andy alias, itu dapat dilakukan dengan sebuah resistor aktif CLOCK
.