In: Computer Science
SWITCH CASE, WHILE, DO WHILE STRUCTURES, using ARDUINO. Urgent Please for Arduino! Implement the following programs, attach a flow chart, photos of its operation and use your own values. 1. Read a number that represents the month and say what months it is. 2. Using the conditional "while" calculate the factorial of a number 3. Using the “do-while” conditional, make a program that prints all numbers from 1 up to a maximum number entered by the user.
1. Read a number that represents the month and say what months it is.
void setup() {
Serial.begin(9600);
Serial.println("Enter a number to display Month.");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int result;
void loop() {
if (Serial.available() > 0) { // is a character available?
rx_byte = Serial.read(); // get the character
if ((rx_byte >= '0') && (rx_byte <= '9')) {
rx_str += rx_byte;
}
else if (rx_byte == '\n') {
// end of string
if (not_number) {
Serial.println("Not a number");
}
else {
result=rx_str.toInt();
Serial.print(" The Month is : ");
switch (result) {
case 1: Serial.print("January"); break;
case 2: Serial.println("February"); break;
case 3: Serial.println("March"); break;
case 4: Serial.println("April"); break;
case 5: Serial.println("May"); break;
case 6: Serial.println("June"); break;
case 7: Serial.println("July"); break;
case 8: Serial.println("August"); break;
case 9: Serial.println("September"); break;
case 10: Serial.println("October"); break;
case 11: Serial.println("November"); break;
case 12: Serial.println("December"); break;
default: Message("Invalid state!");
}
Serial.println("");
Serial.println("Enter a number to display Month.");
}
not_number = false; // reset flag
rx_str = ""; // clear the string for reuse
}
else {
// non-number character received
not_number = true; // flag a non-number
}
} // end: if (Serial.available() > 0)
}
2. Using the conditional "while" calculate the factorial of a number
void setup() {
Serial.begin(9600);
Serial.println("Enter a number to display Factorial");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int number;
int fact=1;
void loop() {
if (Serial.available() > 0) { // is a character available?
rx_byte = Serial.read(); // get the character
if ((rx_byte >= '0') && (rx_byte <= '9')) {
rx_str += rx_byte;
}
else if (rx_byte == '\n') {
// end of string
if (not_number) {
Serial.println("Not a number");
}
else {
Serial.println("The Factorial is :");
number=rx_str.toInt();
while(number>0)
{
fact=fact*number;
number=number-1;
}
Serial.println(fact);
}
Serial.println("");
Serial.println("Enter a number to display Factorial");
}
not_number = false; // reset flag
rx_str = ""; // clear the string for reuse
}
else {
// non-number character received
not_number = true; // flag a non-number
}
} // end: if (Serial.available() > 0)
}
3. Using the “do-while” conditional, make a program that prints all numbers from 1 up to a maximum number entered by the user.
void setup() {
Serial.begin(9600);
Serial.println("Enter a number to display Increment");
}
char rx_byte = 0;
String rx_str = "";
boolean not_number = false;
int number;
int increment=1;
void loop() {
if (Serial.available() > 0) { // is a character available?
rx_byte = Serial.read(); // get the character
if ((rx_byte >= '0') && (rx_byte <= '9')) {
rx_str += rx_byte;
}
else if (rx_byte == '\n') {
// end of string
if (not_number) {
Serial.println("Not a number");
}
else {
number=rx_str.toInt();
do
{
Serial.println(increment);
increment=increment+1;
}while(increment<=number);
}
Serial.println("");
Serial.println("Enter a number to display Increment");
}
not_number = false; // reset flag
rx_str = ""; // clear the string for reuse
}
else {
// non-number character received
not_number = true; // flag a non-number
}
} // end: if (Serial.available() > 0)
}