Рис. 5.146. Это быстрый и простой способ подключения цифровой клавиатуры для того, чтобы обеспечить цифровой ввод информации в микроконтроллер PICAXE, использующий последовательное соединение резисторов с суммарным сопротивлением, равным 2000 Ом. Когда нажата какая-либо цифровая кнопка клавиатуры, это приводит к подключению входного вывода АЦП микроконтроллера к определенному напряжению, заданному цепочкой резисторов. Определив с помощью АЦП это напряжение, можно в конечном итоге определить, какая же кнопка была нажата

Кнопка с символом «*» по-прежнему будет использоваться для включения напряжения питания точно также как и в исходном эксперименте, а кнопка «#», как и ранее, будет осуществлять сброс реле в конце для перевода схемы в исходное состояние.

Ток протекает через последовательную цепочку резисторов, начиная с первого резистора, который имеет сопротивление 500 Ом. Поскольку это нестандартное значение сопротивления, вы либо должны набрать его с помощью комбинации последовательно установленных резисторов, либо получить с помощью подстроечного потенциометра. После этого резистора каждая кнопка цифровой клавиатуры будет отделена от следующей кнопки резистором с сопротивлением 100 Ом. Наконец в конце цепи установлен резистор с сопротивлением 600 Ом, который подключен к минусовому выводу источника питания. Хочу снова обратить ваше внимание, что это так же нестандартное значение и вам, может быть, придется использовать подстроечный потенциометр.

Просуммируйте все сопротивления и вы получите 2 кОм, что соответствует значению, которое требуется для использования микроконтроллера PICAXE. Когда вы нажмете какую-либо кнопку, вы выполните определенный отвод от последовательной цепочки резисторов. Так, между выводом АЦП контроллера PICAXE и «землей» при нажатой кнопке «9» будет сопротивление 600 Ом. При нажатой кнопке «6» сопротивление будет 700 Ом, кнопке «3» — 800 Ом и т. д. (Вы, конечно, можете предпочесть подключить кнопки таким образом, чтобы сопротивление увеличивалось в более логичной последовательности. Это на ваше усмотрение. Я выбрал такую схему соединения только с учетом того, чтобы их было легче подключать.)

Теперь посмотрим на значения АЦП, которые я привел в табл. 5.4. Здесь показаны значения АЦП, которые я получил, когда нажимал на различные кнопки цифровой клавиатуры — но вы не можете рассчитать их абсолютно точно, поскольку они могут слегка разниться, если значения резисторов не слишком точны, или если напряжение питания несколько отличается от 5 В. Не слишком хорошо, например, утверждать, что микроконтроллер PICAXE будет выполнять АЦП преобразование с результатом 77, когда сопротивление между его входом и «землей» будет равно 600 Ом.

Точнее утверждать, что это значение будет в диапазоне между 71 и 83. Если же мы зададим такой диапазон значений, как это показано в табл. 5.4, то мы получим значительно лучший шанс правильного интерпретирования каждой кнопки.

Предположим, что выход цифровой клавиатуры мы подключим к логическому выводу 2 АЦП микроконтроллера PICAXE (выводу 5 микросхемы). Вы можете теперь использовать программу редактирования Programming Editor для того, чтобы записать программу, которая должна выглядеть следующим образом:

getkey:

        readadc 2,b0

        let b1 = 9

        if b0 < 84 then fnish

        let b1 = 6

        if b0 < 97 then fnish

        let b1 = 3

        if b0 < 109 then fnish

        let b1 = 0

        if b0 < 122 then fnish

        let b1 = 8

        if b0 < 135 then fnish

        let b1 = 5

        if b0 < 148 then fnish

        let b1 = 2

        if b0 < 161 then fnish

        let b1 = 7

        if b0 < 173 then fnish

        let b1 = 4

        if b0 < 186 then fnish

        let b1 = 2

fnish:

        return

Что означает команда return в конце программы? Я расскажу об этом чуть позже. А пока хочу объяснить основной текст программы.

В переменной b0 сохраняется значение аналого-цифрового преобразователя, когда он получает сигналы от клавиатуры. После сохранения некоторого числового значения в переменной b0 программа должна рассчитать, какой же кнопке клавиатуры соответствует это значение. Определенный номер кнопки (от 0 до 9) будет сохранен в другой переменной b1.

Перейти на страницу:

Поиск

Все книги серии Электроника

Похожие книги