Рис. 5.146.
Кнопка с символом «*» по-прежнему будет использоваться для включения напряжения питания точно также как и в исходном эксперименте, а кнопка «#», как и ранее, будет осуществлять сброс реле в конце для перевода схемы в исходное состояние.
Ток протекает через последовательную цепочку резисторов, начиная с первого резистора, который имеет сопротивление 500 Ом. Поскольку это нестандартное значение сопротивления, вы либо должны набрать его с помощью комбинации последовательно установленных резисторов, либо получить с помощью подстроечного потенциометра. После этого резистора каждая кнопка цифровой клавиатуры будет отделена от следующей кнопки резистором с сопротивлением 100 Ом. Наконец в конце цепи установлен резистор с сопротивлением 600 Ом, который подключен к минусовому выводу источника питания. Хочу снова обратить ваше внимание, что это так же нестандартное значение и вам, может быть, придется использовать подстроечный потенциометр.
Просуммируйте все сопротивления и вы получите 2 кОм, что соответствует значению, которое требуется для использования микроконтроллера PICAXE. Когда вы нажмете какую-либо кнопку, вы выполните определенный отвод от последовательной цепочки резисторов. Так, между выводом АЦП контроллера PICAXE и «землей» при нажатой кнопке «9» будет сопротивление 600 Ом. При нажатой кнопке «6» сопротивление будет 700 Ом, кнопке «3» — 800 Ом и т. д. (Вы, конечно, можете предпочесть подключить кнопки таким образом, чтобы сопротивление увеличивалось в более логичной последовательности. Это на ваше усмотрение. Я выбрал такую схему соединения только с учетом того, чтобы их было легче подключать.)
Теперь посмотрим на значения АЦП, которые я привел в табл. 5.4. Здесь показаны значения АЦП, которые я получил, когда нажимал на различные кнопки цифровой клавиатуры — но вы не можете рассчитать их абсолютно точно, поскольку они могут слегка разниться, если значения резисторов не слишком точны, или если напряжение питания несколько отличается от 5 В. Не слишком хорошо, например, утверждать, что микроконтроллер PICAXE будет выполнять АЦП преобразование с результатом 77, когда сопротивление между его входом и «землей» будет равно 600 Ом.
Точнее утверждать, что это значение будет в диапазоне между 71 и 83. Если же мы зададим такой диапазон значений, как это показано в табл. 5.4, то мы получим значительно лучший шанс правильного интерпретирования каждой кнопки.
Предположим, что выход цифровой клавиатуры мы подключим к логическому выводу
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
Что означает команда
В переменной b0 сохраняется значение аналого-цифрового преобразователя, когда он получает сигналы от клавиатуры. После сохранения некоторого числового значения в переменной b0 программа должна рассчитать, какой же кнопке клавиатуры соответствует это значение. Определенный номер кнопки (от 0 до 9) будет сохранен в другой переменной b1.