Калькулятор программиста

Это очень простой настольный калькулятор, который производит операции в различных система счисления.

Представляется как штука с многострочным дисплеем, литиевым аккумулятором и небольшой клавиатурой

Клавиатура

Я планирую использовать клавиатуру от Rue Mohr's, работающую без опроса http://ruemohr.org/~ircjunk/tutorials/elex/scanlessKeyboard/scanlessKeyboard.html .

Набросок схемы:

Схема клавиатуры калькулятора
Схема клавиатуры калькулятора

Я использую выделенный кусок для определения номиналов резисторов.

Фрагмент схемы клавиатуры
Фрагмент схемы клавиатуры

Порассуждаю: ток коллектор-эмиттер транзистора Q1 определяется сопротивлением 45к pull-down резистора на пине (не показано на схеме):

I_{Q_1CE} = \frac{3.3}{45e^3}\approx 0.1mA

Основываясь на документации я определяю, что для входа в режим насыщения достаточно обеспечить 0.6 Вольт на базе. То же относится к транзистору Q2.

Отсюда падение напряжения на R1:

V_{R_1} = 3.3 - 0.6 - 0.6 = 2.1V

Как видно из тех же графиков к базы в десять раз меньше тока I_{Q_1CE}:

I_{Q_2BE} \approx \frac{I_{Q_1CE}}{10} = 0.01mA

Я выбрал резистор R2 произвольно потому что всё равно падение напряжения на нём равно: V_{Q_2BE} = 0.6V .

I_{R_1} = I_{R_2} + I_{Q_2BE} = \frac{0.6}{10e^3} + 0.01e^{-3} \approx 0.07mA
R_1 = \frac{V_{R_1}}{I_{R_1}} = \frac{2.1}{0.07e^{-3}} = 30k

Я не могу брать больший резистор потому что ток слишком уменьшиться, с другой стороны никаких проблем нет взять меньшее сопротивление потому что больший ток не окажет никакого влияния. Так что я выбрал 20к.

Ток резистора R1 фактически совпал с расчётным: I_{R_1} = \frac{2.1}{20e3}=0.1mA

0.09mA ток :math:`R_1`
Ток R_1

Цепь обнаружения нажатия клавиши

Rue Mohr's предложил следующую модификацию схемы:

Схема клавиатуры с добавленными тремя диодами
Схема клавиатуры с добавленными тремя диодами

Эти три диода дают возможность использовать пин 19 как сигнал "нажата какая-то клавиша".