Непонятки с keypad.h и spi.h

olmich74
Offline
Зарегистрирован: 17.11.2014

Пробую собрать на 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);
  }
}
olmich74
Offline
Зарегистрирован: 17.11.2014

ПРоблема решина... как говорится читай матчасть прежде чем что то делать.

 для подключения клавы нельзя использовать: 10,11,12,13

На контроллерах Arduino Duemilanove и других на базе ATmega168 /328, шина SPI использует выходы 10 (SS), 11 (MOSI), 12 (MISO), и 13 (SCK).