// C++ code
#include <Servo.h>
Servo servo_11;
int ON = 0;
int START = 0;
int TIME = 0;
float SEC = 0;
float SEC_LEFT = 0;
int TONE = 0;
int BEEP = 0;
int STOP = 0;
#define bz1 3
#define bt1 4 // cancels the timer loop
#define bt2 5 // changes the number of seconds the timer loops
#define bt3 10 // begins the loop
#define lEDG1 6
#define lEDG2 9
#define lEDG3 8
#define lEDP1 7
//-----------------------------------------------------------------------
void setup() {
servo_11.attach(11, 500, 2500);
servo_11.write(0);
pinMode(lEDG1, OUTPUT);
pinMode(bz1, OUTPUT);
pinMode(lEDP1, OUTPUT);
pinMode(bt2, INPUT);
Serial.begin(9600);
pinMode(lEDG3, OUTPUT);
pinMode(lEDG3, OUTPUT);
pinMode(bt3, INPUT);
pinMode(bt1, INPUT);
pinMode(lEDG2, OUTPUT);
ON = 0;
TIME = 1;
}
//-----------------------------------------------------------------------
void loop() {
if (digitalRead(bt2) == HIGH) { // START OF CYCLE THROUGH TIME
Serial.println("activate bt2" );
if (TIME == 4) {
Serial.println(TIME);
TIME = 1;
SEC = 15; // Goes back to the first loop of 15 seconds.
digitalWrite(lEDG1, HIGH);
digitalWrite(lEDP1, LOW);
digitalWrite(lEDG3, LOW);
}
if (TIME == 1) {
SEC = 15; // timer should last 15 seconds
digitalWrite(lEDG1, HIGH);
digitalWrite(lEDP1, LOW);
digitalWrite(lEDG3, LOW);
}
if (TIME == 2) {
SEC = 30; // timer should last 30 seconds
digitalWrite(lEDP1, HIGH);
digitalWrite(lEDG1, LOW);
digitalWrite(lEDG3, LOW);
}
if (TIME == 3) {
SEC = 45; // timer should last 45 seconds
digitalWrite(lEDG3, HIGH);
digitalWrite(lEDP1, LOW);
digitalWrite(lEDG1, LOW);
}
// END OF CYCLE THROUGH TIME
delay(500); // Wait for 500 millisecond(s)
TIME += 1;
}
if (digitalRead(bt3) == HIGH) { // START OF START BUTTON
Serial.println("activate bt3");
startTimer(); // starts the function listed below
// END OF START BUTTON
delay(500); // Wait for 500 millisecond(s)
}
TONE = 1;
}
void startTimer() {
analogWrite(bz1, TONE);
delay(300); // Wait for 300 millisecond(s)
analogWrite(bz1, 0);
delay(300); // Wait for 500 millisecond(s)
// 2 quick beeps to notify that the function is starting
Serial.println("activate function");
STOP = 0;
SEC_LEFT = SEC;
// sec is the total amount of time and sec_left is the time left before the timer should reach 0
BEEP = 100 + 900 * (SEC_LEFT / SEC);
// beep is the interval in miliseconds
Serial.println(BEEP);
Serial.println(SEC);
Serial.println(SEC_LEFT);
while (SEC_LEFT > 0) {
// function should stop at 15 seconds
analogWrite(bz1, TONE);
digitalWrite(lEDG2, HIGH);
Serial.println("on");
// prints that the buzzer is on for debugging
delay(BEEP); // Wait for 1000 millisecond(s)
analogWrite(bz1, 0);
digitalWrite(lEDG2, LOW);
Serial.println("off");
// prints that the buzzer is on for debugging
delay(BEEP);
BEEP = 100 + 500 * (SEC_LEFT / SEC);
SEC_LEFT -= 1;
Serial.println(SEC);
Serial.println(SEC_LEFT);
Serial.println(BEEP);
if (digitalRead(bt1) == HIGH) { // START OF STOP BUTTON
Serial.println("activate bt1");
Serial.println("sequence stopped");
STOP += 1;
break;
digitalWrite(lEDG2, LOW);
// END OF STOP BUTTON
delay(500); // Wait for 500 millisecond(s)
}
}
if (STOP == 0) {
Serial.println("end of function");
Serial.println("Servo Turn");
servo_11.write(90);
}
delay(1500); // Wait for 500 millisecond(s)
}
/*
int ON = 0;
int START = 0;
int STOP = 0;
int TIME = 0;
int SEC = 0;
int SEC_LEFT = 0;
int TONE = 0;
int BEEP = 0;
void setup(){
pinMode(6, OUTPUT);
pinMode(3, OUTPUT);
pinMode(9, OUTPUT);
pinMode(5, INPUT);
Serial.begin(9600);
pinMode(7, OUTPUT);
pinMode(8, OUTPUT);
pinMode(3, INPUT);
pinMode(4, INPUT);
ON = 0;
TIME = 1;
SEC = 15;
digitalWrite(6, HIGH);
}
void loop(){
TONE = 1;
SEC_LEFT = SEC;
while (ON == 1) {
analogWrite(3, TONE);
delay(300); // Wait for 300 millisecond(s)
analogWrite(3, TONE);
delay(500); // Wait for 500 millisecond(s)
while (BEEP > 0.15) {
SEC_LEFT += -1;
BEEP = (0.1 * (0.9 * (SEC_LEFT / SEC)));
analogWrite(3, TONE);
digitalWrite(9, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
analogWrite(3, 0);
digitalWrite(9, LOW);
}
}
// START OF CYCLE THROUGH TIME
if (digitalRead(5) == HIGH) {
Serial.println("activate");
TIME += 1;
if (TIME == 4) {
TIME = 1;
SEC = 15;
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
if (TIME == 1) {
SEC = 15;
digitalWrite(6, HIGH);
digitalWrite(7, LOW);
digitalWrite(8, LOW);
}
if (TIME == 2) {
SEC = 15;
digitalWrite(7, HIGH);
digitalWrite(6, LOW);
digitalWrite(8, LOW);
}
if (TIME == 3) {
SEC = 15;
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
digitalWrite(6, LOW);
}
// END OF CYCLE THROUGH TIME
delay(500); // Wait for 500 millisecond(s)
}
// START OF START BUTTON
if (digitalRead(3) == HIGH) {
Serial.println("activate");
ON = 1;
// END OF START BUTTON
delay(500); // Wait for 500 millisecond(s)
}
// START OF STOP BUTTON
if (digitalRead(4) == HIGH) {
Serial.println("activate");
ON = 0;
digitalWrite(9, LOW);
// END OF STOP BUTTON
delay(500); // Wait for 500 millisecond(s)
}
}
*/