Проблемы с клавиатурой
- Войдите на сайт для отправки комментариев
Вс, 12/08/2018 - 16:27
Господа, прошу помочь вылетает ошибка('keypad' was not declared in this scope):
const int pinPhoto = A0;
#include <SoftwareSerial.h> // библиотека для для обмена данными
#include <DFPlayer_Mini_Mp3.h> // подключаем библиотеку для DFPlayer Mini
#include <Keypad.h>
const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {11, 10, 9, 8}; //connect to the column pinouts of the keypad
//initialize an instance of class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);
int raw = 0;
void setup() {
Serial.begin(9600);
pinMode(A1, INPUT); // объявляем пин A1 как вход
pinMode(A2, INPUT); // объявляем пин A2 как вход
pinMode( pinPhoto, INPUT );
mp3_set_serial(Serial); // включаем передачу данных с DFPlayer mini mp3
delay(1); // задержка в 1ms для установки громкости
mp3_set_volume(30); // устанавливаем громкость от 0 до 30
mp3_set_EQ(0); // устанавливаем эквалайзер от 0 до 5
}
void loop() {
if (analogRead(A1) > 300) // когда аналоговая кнопка нажата
{
raw = analogRead( pinPhoto );
// Serial.println( raw );
// delay(100);
if( raw >= 11 && raw < 150){ mp3_play(31);
delay(10000);}
else
if( raw >= 151 && raw < 650){ mp3_play(32);
delay(10000);}
else
if( raw >= 651 && raw < 800){ mp3_play(33);
delay(10000);}
else
if( raw >= 801 && raw < 1000){ mp3_play(34);
delay(10000);}
}
if (analogRead(A2) > 300) // когда аналоговая кнопка нажата
{
char key = keypad.getKey();
{
if (Key == '1'){
mp3_play(01);
delay(10000);
}
//if (analogRead(A2) < 300) // когда аналоговая кнопка отпущена
//{
//digitalWrite(13, LOW); // выключаем светодиод
//}
}
}
}
На будущее - кроме текста ошибки указывайте и номер строки в которой ошибка.
Где объявлен "keypad", который Вы пытаетесь использовать в 59 строке?
Э-э-э .. зачем, дарагой! Что такое "абьявлен"? ;)
#include <Keypad.h>
Вот тут, наверное, если честно, можно подробне, что нужно сделать?
const int pinPhoto = A0; #include <SoftwareSerial.h> // библиотека для для обмена данными #include <DFPlayer_Mini_Mp3.h> // подключаем библиотеку для DFPlayer Mini #include <Keypad.h> const byte ROWS = 4; //four rows const byte COLS = 4; //four columns //define the cymbols on the buttons of the keypads char hexaKeys[ROWS][COLS] = { {'1','2','3','A'}, {'4','5','6','B'}, {'7','8','9','C'}, {'*','0','#','D'} }; byte rowPins[ROWS] = {7, 6, 5, 4}; //connect to the row pinouts of the keypad byte colPins[COLS] = {11, 10, 9, 8}; //connect to the column pinouts of the keypad //initialize an instance of class NewKeypad Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS); int raw = 0; void setup() { Serial.begin(9600); pinMode(A1, INPUT); // объявляем пин A1 как вход pinMode(A2, INPUT); // объявляем пин A2 как вход pinMode( pinPhoto, INPUT ); mp3_set_serial(Serial); // включаем передачу данных с DFPlayer mini mp3 delay(1); // задержка в 1ms для установки громкости mp3_set_volume(30); // устанавливаем громкость от 0 до 30 mp3_set_EQ(0); // устанавливаем эквалайзер от 0 до 5 } void loop() { if (analogRead(A1) > 300) // когда аналоговая кнопка нажата { raw = analogRead( pinPhoto ); // Serial.println( raw ); // delay(100); if( raw >= 11 && raw < 150){ mp3_play(31); delay(10000);} else if( raw >= 151 && raw < 650){ mp3_play(32); delay(10000);} else if( raw >= 651 && raw < 800){ mp3_play(33); delay(10000);} else if( raw >= 801 && raw < 1000){ mp3_play(34); delay(10000);} } if (analogRead(A2) > 300) // когда аналоговая кнопка нажата { char customKey = customKeypad.getKey(); { if (customKey == '1'){ mp3_play(01); delay(10000); } //if (analogRead(A2) < 300) // когда аналоговая кнопка отпущена //{ //digitalWrite(13, LOW); // выключаем светодиод //} } } }Кажется так?
Кажется так?
Ошибка-то пропала? Значит так! :)