Непонятки с keypad.h и spi.h
- Войдите на сайт для отправки комментариев
Втр, 25/11/2014 - 21:06
Пробую собрать на Nano матричную клавиатуру с 4х разрядным 7-сигментным индикатором.
по отдельности все работает но как только прописываю spi, так клавиатура отказывается работать на половиную. Т.е. два первых столбца отказываются работать (1,4,7,8,*, 2,5,8,0). Стоит закоментировать строки, все работает.
Пример работы клавиатуры взят из примера. Подскажите как быть куда копать.
#include <Keypad.h>
#include <SPI.h> // подключаем библиотеку SPI -- как только включаю эту строчку
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {6, 5, 4, 3}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {12, 10, 9, 7}; //connect to the column pinouts of the keypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
void setup(){
SPI.begin(); // инициализируем SPI ---- и вот эту строчку
Serial.begin(9600);
}
void loop(){
char customKey = customKeypad.getKey();
if (customKey){
Serial.println(customKey);
}
}
ПРоблема решина... как говорится читай матчасть прежде чем что то делать.
для подключения клавы нельзя использовать: 10,11,12,13
На контроллерах Arduino Duemilanove и других на базе ATmega168 /328, шина SPI использует выходы 10 (SS), 11 (MOSI), 12 (MISO), и 13 (SCK).