Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define led1R 2
- #define led1B 3
- #define led1G 4
- #define led2R 5
- #define led2B 6
- #define led2G 7
- #define led3R 8
- #define led3B 9
- #define led3G 10
- #define led4R 14
- #define led4B 15
- #define led4G 16
- #define led5R 17
- #define led5B 18
- #define led5G 19
- #define RPMInput 12
- int RPM = 0;
- bool debug = false;
- void startUpAnimation() {
- digitalWrite(led1B, HIGH);
- delay(100);
- digitalWrite(led2B, HIGH);
- delay(100);
- digitalWrite(led3B, HIGH);
- delay(100);
- digitalWrite(led4B, HIGH);
- delay(100);
- digitalWrite(led5B, HIGH);
- delay(500);
- digitalWrite(led5B, LOW);
- delay(100);
- digitalWrite(led4B, LOW);
- delay(100);
- digitalWrite(led3B, LOW);
- delay(100);
- digitalWrite(led2B, LOW);
- delay(100);
- digitalWrite(led1B, LOW);
- delay(500);
- digitalWrite(led1R, HIGH);
- digitalWrite(led2R, HIGH);
- digitalWrite(led3R, HIGH);
- digitalWrite(led4R, HIGH);
- digitalWrite(led5R, HIGH);
- delay(200);
- resetPins();
- delay(100);
- digitalWrite(led1B, HIGH);
- digitalWrite(led2B, HIGH);
- digitalWrite(led3B, HIGH);
- digitalWrite(led4B, HIGH);
- digitalWrite(led5B, HIGH);
- delay(200);
- resetPins();
- delay(1000);
- }
- void noSignal() {
- resetPins();
- Serial.println("No signal");
- digitalWrite(led1R, HIGH);
- digitalWrite(led2G, HIGH);
- digitalWrite(led3B, HIGH);
- digitalWrite(led4R, HIGH);
- digitalWrite(led5G, HIGH);
- delay(500);
- resetPins();
- digitalWrite(led1B, HIGH);
- digitalWrite(led2R, HIGH);
- digitalWrite(led3G, HIGH);
- digitalWrite(led4B, HIGH);
- digitalWrite(led5R, HIGH);
- delay(500);
- resetPins();
- digitalWrite(led1G, HIGH);
- digitalWrite(led2B, HIGH);
- digitalWrite(led3R, HIGH);
- digitalWrite(led4G, HIGH);
- digitalWrite(led5B, HIGH);
- delay(500);
- }
- void RPM1k() {
- resetPins();
- digitalWrite(led1B, HIGH);
- }
- void RPM2k() {
- resetPins();
- digitalWrite(led1B, HIGH);
- digitalWrite(led2B, HIGH);
- }
- void RPM3k() {
- resetPins();
- digitalWrite(led1B, HIGH);
- digitalWrite(led2B, HIGH);
- digitalWrite(led3B, HIGH);
- }
- void RPM4k() {
- resetPins();
- digitalWrite(led1B, HIGH);
- digitalWrite(led2B, HIGH);
- digitalWrite(led3B, HIGH);
- digitalWrite(led4R, HIGH);
- }
- void RPM5k() {
- resetPins();
- digitalWrite(led1R, HIGH);
- digitalWrite(led2R, HIGH);
- digitalWrite(led3R, HIGH);
- digitalWrite(led4R, HIGH);
- digitalWrite(led5R, HIGH);
- }
- void RPM6k() {
- resetPins();
- digitalWrite(led1R, HIGH);
- digitalWrite(led2R, HIGH);
- digitalWrite(led3R, HIGH);
- digitalWrite(led4R, HIGH);
- digitalWrite(led5R, HIGH);
- delay(200);
- digitalWrite(led1R, LOW);
- digitalWrite(led2R, LOW);
- digitalWrite(led3R, LOW);
- digitalWrite(led4R, LOW);
- digitalWrite(led5R, LOW);
- delay(200);
- }
- void RPM65k() {
- resetPins();
- digitalWrite(led1R, HIGH);
- digitalWrite(led2R, HIGH);
- digitalWrite(led3R, HIGH);
- digitalWrite(led4R, HIGH);
- digitalWrite(led5R, HIGH);
- delay(50);
- digitalWrite(led1R, LOW);
- digitalWrite(led2R, LOW);
- digitalWrite(led3R, LOW);
- digitalWrite(led4R, LOW);
- digitalWrite(led5R, LOW);
- delay(50);
- }
- void resetPins() {
- for (int i = 2; i < 11; i++) {
- digitalWrite(i, LOW);
- }
- for (int i = 14; i < 20; i++) {
- digitalWrite(i, LOW);
- }
- }
- int currentRPM() {
- if (!debug) {
- long pulseDuration = pulseIn(RPMInput, HIGH);
- return 60000000 / pulseDuration / 6 * 1.75 -1500;
- }
- RPM += 1000;
- return RPM;
- }
- void setup() {
- //define pin output
- for (int i = 2; i < 11; i++) {
- pinMode(i, OUTPUT);
- }
- for (int i = 14; i < 20; i++) {
- pinMode(i, OUTPUT);
- }
- Serial.begin(9600);
- startUpAnimation();
- }
- void loop() {
- RPM = currentRPM();
- Serial.println(RPM);
- if (RPM < 2000 && RPM >= 1000) {
- RPM1k();
- }
- if (RPM < 3000 && RPM >= 2000) {
- RPM2k();
- }
- if (RPM < 4000 && RPM >= 3000) {
- RPM3k();
- }
- if (RPM < 5000 && RPM >= 4000) {
- RPM4k();
- }
- if (RPM < 6000 && RPM >= 5000) {
- RPM5k();
- }
- if (RPM > 6400 && RPM >= 6000) {
- RPM6k();
- }
- if (RPM >= 6400) {
- RPM65k();
- }
- if (RPM == -1) {
- noSignal();
- }
- if (debug) {
- delay(1000);
- if (RPM > 7000) {
- RPM = 1000;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement