Go Down

Topic: 3x4 keypad for android phones using Bluetooth shield (Read 856 times) previous topic - next topic

kelvinsm

I'm trying to modify this tutorial http://sunraysme.wordpress.com/2012/04/10/a-keypad-for-thearduino/
Instead of using LCD Display, I am using Blutooth shield and arduino atmega 328 and an  Android 2.3 phone with Bluetooth SPP application.
I tried to modify the code in the tutorial to this
Code: [Select]
#include <SoftwareSerial.h>
#include <Keypad.h>
SoftwareSerial mySerial(2, 3);

/**********************************************************************/
// start of creating the keypad//
const byte ROWS = 4; //Four rows//
const byte COLS = 3; //Three columns//
char keys[ROWS][COLS] = { {'1?,'2?,'3?}, {'4?,'5?,'6?}, {'7?,'8?,'9?}, {'#','0?,'*?} };


byte rowPins[ROWS] = { 5, 10, 9, 7 };// Connect keypad ROW1, ROW2, ROW3 and ROW4 to these Arduino pins//
byte colPins[COLS] = { 4, 6, 8 }; // Connect keypad COL1, COL2 and COL3 to these Arduino pins//
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );//end of creating the Keypad//
/**********************************************************************/

void setup()
{

pinMode (4, INPUT);//Column 1
pinMode (6, INPUT);//Column 2
pinMode (8, INPUT);//Column 3
digitalWrite(4, HIGH);//Pull up resistor of Arduino
digitalWrite(6, HIGH);// Pull up resistor of Arduino
digitalWrite(8, HIGH);// Pull up resistor of Arduino
Serial.print("The Keypad Test");
delay(1000);

}

void loop()
{
char key = keypad.getKey();
if (key != NO_KEY)
{
Serial.print(key);
delay(100);
}
}
/**********************************************************************/



but when i try to compile it these errors always show up
"_3x4_keypad_trial:8: error: expected `}' before 'u2032'
_3x4_keypad_trial:8: error: expected `}' before 'u2032'
_3x4_keypad_trial:8: error: expected ',' or ';' before 'u2032'
_3x4_keypad_trial:8: error: expected declaration before '}' token"

what do they mean? i tried to use all the given characters and it still appears.

PaulS

You copied and pasted that code from a web site, right? The quotes on the key definition line are wrong. Some are forward quotes; some are backwards quotes.

Some of the double quotes are wrong, too.

Replace all the ' and ", and the code compiles, at least on 1.0.1.

kelvinsm

I have changed it to this
Code: [Select]

#include <SoftwareSerial.h>
#include <Keypad.h>
SoftwareSerial mySerial(2, 3);

/**********************************************************************/
// start of creating the keypad//
const byte ROWS = 4; //Four rows//
const byte COLS = 3; //Three columns//
char keys[ROWS][COLS] =
{
{"1","2","3"},
{"4","5","6"},
{"7","8","9"},
{"#","0","*"}
};

byte rowPins[ROWS] = { 5, 10, 9, 7 };// Connect keypad ROW1, ROW2, ROW3 and ROW4 to these Arduino pins//
byte colPins[COLS] = { 4, 6, 8 }; // Connect keypad COL1, COL2 and COL3 to these Arduino pins//
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );//end of creating the Keypad//
/**********************************************************************/

void setup()
{

pinMode (4, INPUT);//Column 1
pinMode (6, INPUT);//Column 2
pinMode (8, INPUT);//Column 3
digitalWrite(4, HIGH);//Pull up resistor of Arduino
digitalWrite(6, HIGH);// Pull up resistor of Arduino
digitalWrite(8, HIGH);// Pull up resistor of Arduino
Serial.begin(9600);
Serial.println("The Keypad Test");
delay(1000);

}

void loop()
{
char key = keypad.getKey();
if (key != NO_KEY)
{
Serial.begin(9600);
Serial.println(key);
delay(100);
}
}
/**********************************************************************/


I can still got errors, but this time it says


"_3x4_keypad_trial:14: error: too many initializers for 'char [3]'
_3x4_keypad_trial:14: error: too many initializers for 'char [3]'
_3x4_keypad_trial:14: error: too many initializers for 'char [3]'
_3x4_keypad_trial:14: error: too many initializers for 'char [3]'
_3x4_keypad_trial:18: error: 'Keypad' does not name a type
_3x4_keypad_trial.cpp: In function 'void loop()':
_3x4_keypad_trial:38: error: 'keypad' was not declared in this scope
_3x4_keypad_trial:39: error: 'NO_KEY' was not declared in this scope
"

PaulS

Code: [Select]
char keys[ROWS][COLS] =
{
{"1","2","3"},
{"4","5","6"},
{"7","8","9"},
{"#","0","*"}
};

Why did you change the single quotes to double quotes? Change them back.

kelvinsm

I have change them back the errors are now the same as the first one

PaulS

This code:
Code: [Select]
#include <SoftwareSerial.h>
#include <Keypad.h>
SoftwareSerial mySerial(2, 3);

/**********************************************************************/
// start of creating the keypad//
const byte ROWS = 4; //Four rows//
const byte COLS = 3; //Three columns//
char keys[ROWS][COLS] =
{
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'#','0','*'}
};

byte rowPins[ROWS] = { 5, 10, 9, 7 };// Connect keypad ROW1, ROW2, ROW3 and ROW4 to these Arduino pins//
byte colPins[COLS] = { 4, 6, 8 }; // Connect keypad COL1, COL2 and COL3 to these Arduino pins//
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );//end of creating the Keypad//
/**********************************************************************/

void setup()
{

pinMode (4, INPUT);//Column 1
pinMode (6, INPUT);//Column 2
pinMode (8, INPUT);//Column 3
digitalWrite(4, HIGH);//Pull up resistor of Arduino
digitalWrite(6, HIGH);// Pull up resistor of Arduino
digitalWrite(8, HIGH);// Pull up resistor of Arduino
Serial.begin(9600);
Serial.println("The Keypad Test");
delay(1000);

}

void loop()
{
char key = keypad.getKey();
if (key != NO_KEY)
{
Serial.begin(9600);
Serial.println(key);
delay(100);
}
}
/**********************************************************************/


produces this "error":

Quote
Binary sketch size: 8,528 bytes (of a 28,672 byte maximum)

kelvinsm

I've got all the codes correct and I will try to apply its concept in my prevoius post which is http://arduino.cc/forum/index.php/topic,138647.0.html

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy