I am having problems reading in from the usb/serial rs232 to the arduino. The function Serial.read() is being ignored for some reason. I have tried many different ways, but nothing is helping.
In the following sketch, the function set_time() is only printing the strings but is not waiting for the user inputs, am I doing something wrong?
#include <Wire.h>
void intro()
{
Serial.println("What would you like to do:");
Serial.println("\t1) Set the time and date");
Serial.println("\t2) Display the time in a loop until a key is hit (update every sec).");
Serial.println("Yor selection: ");
}
void setup()
{
//Wire.begin();
Serial.begin(9600);
Serial.println("Hello Welcome to the clock, designed to test how I2C works with the DS1307\n");
intro();
}
void set_time()
{
int yr[2], mn[2], dt[2], dy, hr[2], mi[2], sec[2], day[2];
Serial.println("Set time.");
Serial.flush();
// if (Serial.available() > 0) {
Serial.print("Enter the year (00-99): ");
yr[0] = Serial.read();
yr[1] = Serial.read();
Serial.print("Enter the month (01-12): ");
mn[0] = Serial.read();
mn[1] = Serial.read();
Serial.print("Enter the date (01-31): ");
dt[0] = Serial.read();
dt[1] = Serial.read();
Serial.print("Enter the day (1-7): ");
dy = Serial.read();
Serial.print("Enter the hour (01-23): ");
hr[0] = Serial.read();
hr[1] = Serial.read();
// hr = hr & 0x3f; /* force clock to 24 hour mode */
Serial.print("Enter the minute (00-59): ");
mi[0] = Serial.read();
mi[1] = Serial.read();
Serial.print("Enter the second (00-59): ");
sec[0] = Serial.read();
sec[1] = Serial.read();
// }
}
void display_time()
{
Serial.println("Display time.");
}
void loop()
{
int m=0;
if (Serial.available() > 0) {
m = Serial.read();
if (m==49)
set_time();
else if (m==50)
display_time();
else
{
Serial.print("Wrong selection: ");
Serial.println(m,BYTE);
}
intro();
}
}
Thanks for your help.