#include <AccelStepper.h>
#define TOUCH_PIN 3 // Digital touch sensor pin
#define RED_LED_PIN 10 // Red LED pin
int state = 1;
int analogPin = A0;
// int triggerPin = 6;
// int echoPin = 11;
// long distance;
// float smoothing = 0.05;
// float smoothed;
int DIR_PIN = 3;
int STEP_PIN = 4;
int EN_PIN = 5;
// int sta
//AccelStepper stepper(AccelStepper::DRIVER, STEP_PIN, DIR_PIN);
void setup() {
Serial.begin(9600);
pinMode(2, INPUT); //sound sensor digital input pin
// analogPin(A0); // sound sensor analog input
pinMode(9, OUTPUT); // Green LED output pin
pinMode(RED_LED_PIN, OUTPUT); // Red LED output pin
pinMode(TOUCH_PIN, INPUT); //touch sensor input
pinMode(4, OUTPUT); //stepper motor output
// pinMode(echoPin, INPUT); //distance sensor input; add smoothing code to filter that data for the sensor
// pinMode(triggerPin, OUPTUT);
}
void loop() {
// if (state == 1) {
// state1();
// } else if (state == 2) {
// state2();
// } else if (state == 3) {
// state3();
// }
digitalWrite(9, HIGH);
state1();
state2();
// state3();
}
void state1() {
if(analogRead (analogPin) > 400){
digitalWrite(9, HIGH);
} else {
digitalWrite(9, LOW);
}
}
void state2() {
if(digitalRead(TOUCH_PIN) == LOW) {
// digitalWrite(9, LOW);
digitalWrite(RED_LED_PIN, HIGH); // Turn on the Red LED if the touch sensor is touched
Serial.println("Touch detected, Red LED ON"); // Optional debug message
} else {
digitalWrite(RED_LED_PIN, LOW); // Turn off the Red LED if the touch sensor is not touched
Serial.println("Touch released, Red LED OFF");
}
}
void state3() {
if(digitalRead(TOUCH_PIN) == LOW) {
digitalWrite(RED_LED_PIN, HIGH); // Turn on the Red LED if the touch sensor is touched
Serial.println("Touch detected, Red LED ON"); // Optional debug message
} else {
digitalWrite(RED_LED_PIN, LOW); // Turn off the Red LED if the touch sensor is not touched
Serial.println("Touch released, Red LED OFF");
}
//*THE FOLLOWING IS FOR THE STEPPER MOTOR FUNCTION*
//digitalWrite(triggerPin, LOW);
// digitalWrite(triggerPin, HIGH);
// digitalWrite(triggerPin, LOW);
// long duration = pulseIn(echoPin, HIGH, 17400);
// distance = duration / 29 / 2;
// smoothed = smoothed * (1.0 - smoothing) + distance * smoothing;
// Serial.println(smoothed);
// if(smoothed < 30); { // add after testing distance
// void setup() {
// pinMode(EN_PIN, OUTPUT);
// digitalWrite(EN_PIN, LOW);
// stepper.setMaxSpeed(1000);
// stepper.setAcceleration(500);
// stepper.runToNewPosition(200);
// delay(1000);
// stepper.runToNewPosition(0);
// delay(1000);
// }} else {
// pinMode(EN_PIN, OUTPUT);
// digitalWrite(EN_PIN, LOW);
// stepper.setMaxSpeed(1000);
// stepper.setAcceleration(500);
// stepper.runToNewPosition(0);
// delay(1000);
}