Untitled
unknown
plain_text
a year ago
9.1 kB
10
Indexable
#include <Arduino.h>
const int ledpin = 25;
const int POT = 26;
const int FAN = 27;
const int buzz = 17;
int menu = 0;
int counter = 0;
float speed;
float x;
float display;
float vlt;
float cur;
float pwr;
float rpm;
const int but1 = 33;
const int but2 = 35;
const int but3 = 32;
int butstate1;
int lastbut1 = LOW;
unsigned long lastbut1Time = 0;
int butstate2;
int lastbut2 = LOW;
unsigned long lastbut2Time = 0;
int butstate3;
int lastbut3 = LOW;
unsigned long lastbut3Time = 0;
unsigned long debounceDelay = 50;
void setup() {
Serial.begin(115200);
pinMode(POT, INPUT);
pinMode(but1, INPUT_PULLUP);
pinMode(but2, INPUT_PULLUP);
pinMode(but3, INPUT_PULLUP);
pinMode(FAN, OUTPUT);
pinMode(ledpin, OUTPUT);
pinMode(buzz, OUTPUT);
delay(800);
digitalWrite(ledpin, HIGH);
tone(buzz,1535,300);
delay(400);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println();
Serial.print("Initializing");
delay(200);
Serial.print(".");
delay(300);
Serial.print(".");
delay(300);
Serial.print(".");
delay(300);
Serial.print(".");
delay(300);
Serial.print(".");
delay(300);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
digitalWrite(ledpin, LOW);
Serial.println("Press '0' to stop");
Serial.println("Press '1' to potentiometer mode");
Serial.println("Press '2' to computer mode");
Serial.println("Press stop button to stop ");
Serial.println("Press left button to subtract %5 speed");
Serial.println("Press right button to add %5 speed");
}
void loop() {
int push1 = digitalRead(but1);
if (push1 != lastbut1) {
lastbut1Time = millis();
}
if ((millis() - lastbut1Time) > debounceDelay) {
if (push1 != butstate1) {
butstate1 = push1;
if (butstate1 == HIGH) {
digitalWrite(ledpin, HIGH);
tone(buzz,500,1400);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println("----------");
Serial.println("Stopped!");
Serial.println("----------");
counter = 0;
analogWrite(FAN, 0);
}
}
}
lastbut1 = push1;
int push2 = digitalRead(but2);
if (push2 != lastbut2) {
lastbut2Time = millis();
}
if ((millis() - lastbut2Time) > debounceDelay) {
if (push2 != butstate2) {
butstate2 = push2;
if (butstate2 == HIGH) {
tone(buzz,1100,100);
delay(50);
tone(buzz,1300,100);
counter += 5;
Serial.print("Current speed : ");
Serial.println(counter);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println("%5 increase");
digitalWrite(ledpin, LOW);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println("Press left button to subtract %5 speed");
Serial.println("Press right button to add %5 speed");
display = counter;
display = constrain(display, 0, 100);
speed = map(display, 0, 100, 0, 255);
analogWrite(FAN, speed);
vlt = map(display, 0, 100, 0, 12);
cur = map(display, 0, 100, 0, 22);
pwr = map(display, 0, 100, 0, 150);
rpm = map(display, 0, 100, 0, 13000);
Serial.print("Fan speed set to: ");
Serial.print(speed);
Serial.println();
Serial.print("Percentage of fan speed (%) :");
Serial.print(display);
Serial.println();
Serial.print("Voltage (V):");
Serial.print(vlt);
Serial.println();
Serial.print("Current (mA) :");
Serial.print(cur);
Serial.println();
Serial.print("Power (mW) :");
Serial.print(pwr);
Serial.println();
Serial.print("Speed (rpm) :");
Serial.print(rpm);
Serial.println();
Serial.println("----------");
Serial.println("Press left button to subtract %5 speed");
Serial.println("Press right button to add %5 speed");
if (counter > 100) {
counter = 100;
}
}
}
}
lastbut2 = push2;
int push3 = digitalRead(but3);
if (push3 != lastbut3) {
lastbut3Time = millis();
}
if ((millis() - lastbut3Time) > debounceDelay) {
if (push3 != butstate3) {
butstate3 = push3;
if (butstate3 == HIGH) {
tone(buzz,1100,100);
delay(50);
tone(buzz,900,100);
counter -= 5;
digitalWrite(ledpin, LOW);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
display = counter;
display = constrain(display, 0, 100);
speed = map(display, 0, 100, 0, 255);
analogWrite(FAN, speed);
vlt = map(display, 0, 100, 0, 12);
cur = map(display, 0, 100, 0, 22);
pwr = map(display, 0, 100, 0, 150);
rpm = map(display, 0, 100, 0, 13000);
Serial.print("Fan speed set to: ");
Serial.print(speed);
Serial.println();
Serial.print("Percentage of fan speed (%) :");
Serial.print(display);
Serial.println();
Serial.print("Voltage (V):");
Serial.print(vlt);
Serial.println();
Serial.print("Current (mA) :");
Serial.print(cur);
Serial.println();
Serial.print("Power (mW) :");
Serial.print(pwr);
Serial.println();
Serial.print("Speed (rpm) :");
Serial.print(rpm);
Serial.println();
Serial.println("----------");
Serial.println("Press left button to subtract %5 speed");
Serial.println("Press right button to add %5 speed");
if (counter < 0) {
counter = 0;
}
}
}
}
lastbut3 = push3;
if (Serial.available() > 0) {
menu = Serial.read();
push1 = digitalRead(but1);
if (menu == '1') {
tone(buzz,1000,100);
delay(50);
tone(buzz,850,100);
delay(50);
tone(buzz,1150,100);
for(int i = 0; i <= 1; i++) {
digitalWrite(ledpin, LOW);
x = analogRead(POT);
speed = map(x, 0, 4096, 0, 255);
analogWrite(FAN, speed);
display = (speed * 100) / 255;
counter = display;
vlt = map(display, 0, 100, 0, 12);
cur = map(display, 0, 100, 0, 22);
pwr = map(display, 0, 100, 0, 150);
rpm = map(display, 0, 100, 0, 13000);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.print("Percentage of fan speed (%) :");
Serial.print(display);
Serial.println();
Serial.print("Voltage (V):");
Serial.print(vlt);
Serial.println();
Serial.print("Current (mA) :");
Serial.print(cur);
Serial.println();
Serial.print("Power (mW) :");
Serial.print(pwr);
Serial.println();
Serial.print("Speed (rpm) :");
Serial.print(rpm);
Serial.println();
Serial.println("----------");
Serial.println("Press '1' again to read new values");
Serial.println("----------");
#
}
}
else if (menu == '0') {
digitalWrite(ledpin, HIGH);
tone(buzz,500,1400);
counter = 0;
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println("----------");
Serial.println("Stopped!");
Serial.println("----------");
analogWrite(FAN, 0);
}
else if (menu == '2') {
tone(buzz,1000,100);
delay(130);
tone(buzz,850,100);
delay(130);
tone(buzz,1150,180);
digitalWrite(ledpin, LOW);
Serial.println("\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n");
Serial.println("Enter percentage of fan speed % (0 to 100):");
while (Serial.available() == 0) {}
tone(buzz,1100,100);
delay(350);
tone(buzz,1100,100);
display = Serial.parseInt();
display = constrain(display, 0, 100);
counter = display;
speed = map(display, 0, 100, 0, 255);
analogWrite(FAN, speed);
vlt = map(display, 0, 100, 0, 12);
cur = map(display, 0, 100, 0, 22);
pwr = map(display, 0, 100, 0, 150);
rpm = map(display, 0, 100, 0, 13000);
Serial.print("Fan speed set to: ");
Serial.print(speed);
Serial.println();
Serial.print("Percentage of fan speed (%) :");
Serial.print(display);
Serial.println();
Serial.print("Voltage (V):");
Serial.print(vlt);
Serial.println();
Serial.print("Current (mA) :");
Serial.print(cur);
Serial.println();
Serial.print("Power (mW) :");
Serial.print(pwr);
Serial.println();
Serial.print("Speed (rpm) :");
Serial.print(rpm);
Serial.println();
Serial.println("----------");
Serial.println("Press '2' again to set a new speed");
Serial.println("----------");
}
}
}
Editor is loading...
Leave a Comment