Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Stepper.h>
- #define A 2 //SEGMENT A
- #define B 3 //SEGMENT B
- #define C 4 //SEGMENT C
- #define D 5 //SEGMENT D
- #define E 6 //SEGMENT E
- #define F 7 //SEGMENT F
- #define G 8 //SEGMENT G
- #define H 9 //SEGMENT H
- //POTENCJOMETR DO REGULACJI PRĘDKOSCI SILNIKA
- #define potencjometr A0
- //Przycisk do sterowania trybami
- #define przycisk 1
- //Przekaznik do sterowania
- #define przekaznik 0
- //ZMIENNE DO STEROWANIA
- const int kroki = 200; //ILOSC KROKÓW SILNIKA
- int predkosc_silnika = 0; //PRĘDKOŚĆ SILNIKA
- int odczyt_potencjometr = 0; //ODCZYT Z POTENCJOMETRU
- int menu = 0;
- unsigned long czas = 0;
- unsigned long zapamietany_czas = 0;
- unsigned long opoznienie = 500;
- unsigned long czas_wtrysku = 0;
- unsigned long czas_wtrysku_zap = 0;
- Stepper Silnik(kroki, 10, 11, 12, 13); //definicja pinow silnika
- void setup()
- {
- //USTAWIENIE POTENCJOMETRU
- pinMode(potencjometr, INPUT);
- //UZWJENIA SILNIKA
- pinMode(10, OUTPUT);
- pinMode(11, OUTPUT);
- pinMode(12, OUTPUT);
- pinMode(13, OUTPUT);
- //wyswietlacz
- pinMode(A, OUTPUT);
- pinMode(B, OUTPUT);
- pinMode(C, OUTPUT);
- pinMode(D, OUTPUT);
- pinMode(E, OUTPUT);
- pinMode(F, OUTPUT);
- pinMode(G, OUTPUT);
- pinMode(H, OUTPUT); //kropka
- //przycisk
- pinMode(przycisk, INPUT_PULLUP);
- //przekaznik
- pinMode(przekaznik, OUTPUT);
- }
- void loop()
- {
- //sterowanie_silnikiem(speed_control());
- sterowanie_silnikiem(speed_control());
- }
- //ODCZYT I KONTORLA PREDKOSCI
- int speed_control()
- {
- menu = sterowanie_przycisk();
- switch (menu)
- {
- case 1:
- digitalWrite(przekaznik, LOW);
- //ODCZYT WARTOŚCI Z POTENCJOMETRU
- odczyt_potencjometr = analogRead(potencjometr);
- //ZAMIANA WARTOŚCI POTENCJOMETRA NA PRĘDKOŚĆ
- predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
- return predkosc_silnika;
- break;
- case 2:
- czas_wtrysku = millis();
- odczyt_potencjometr = analogRead(potencjometr);
- //ZAMIANA WARTOŚCI POTENCJOMETRA NA PRĘDKOŚĆ
- predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
- if (czas_wtrysku - czas_wtrysku_zap >= 1200UL)
- {
- digitalWrite(przekaznik, HIGH);
- }
- if (czas_wtrysku - czas_wtrysku_zap >= 4200UL)
- {
- czas_wtrysku_zap = czas_wtrysku;
- digitalWrite(przekaznik, LOW);
- }
- return predkosc_silnika;
- break;
- case 3:
- menu = 1;
- odczyt_potencjometr = analogRead(potencjometr);
- predkosc_silnika = map(odczyt_potencjometr, 0, 1023, 30, 330);
- return predkosc_silnika;
- break;
- }
- //ZWROT RZECZYWISTEJ PREDKOŚC
- }
- //URUCHOMIENIE SILNIKA
- void sterowanie_silnikiem(int engine_speed)
- {
- //DEFINICJA PREDKOŚCI
- engine_speed = engine_speed;
- //USTAWIENIE PRĘDKOŚCI SILNIKA PRĘDKOŚĆ BRANA Z VOID SPEED_CONTROL()
- Silnik.setSpeed(engine_speed);
- //ÞŁYNNY OBRÓT
- Silnik.step(kroki / 100);
- //WYŚWIETLANIE PRĘDKOŚCI
- if (engine_speed >= 30 && engine_speed <= 45)
- {
- wyswietlacz(2);
- }
- else if (engine_speed >= 46 && engine_speed <= 60)
- {
- wyswietlacz(3);
- }
- else if (engine_speed >= 61 && engine_speed <= 75)
- {
- wyswietlacz(4);
- }
- else if (engine_speed >= 76 && engine_speed <= 90)
- {
- wyswietlacz(5);
- }
- else if (engine_speed >= 91 && engine_speed <= 105)
- {
- wyswietlacz(6);
- }
- else if (engine_speed >= 106 && engine_speed <= 120)
- {
- wyswietlacz(7);
- }
- else if (engine_speed >= 121 && engine_speed <= 135)
- {
- wyswietlacz(8);
- }
- else if (engine_speed >= 136 && engine_speed <= 150)
- {
- wyswietlacz(9);
- }
- else if (engine_speed >= 151 && engine_speed <= 165)
- {
- wyswietlacz(10);
- }
- else if (engine_speed >= 166 && engine_speed <= 180)
- {
- wyswietlacz(11);
- }
- else if (engine_speed >= 181 && engine_speed <= 195)
- {
- wyswietlacz(12);
- }
- else if (engine_speed >= 196 && engine_speed <= 210)
- {
- wyswietlacz(13);
- }
- else if (engine_speed >= 211 && engine_speed <= 225)
- {
- wyswietlacz(14);
- }
- else if (engine_speed >= 226 && engine_speed <= 240)
- {
- wyswietlacz(15);
- }
- else if (engine_speed >= 241 && engine_speed <= 255)
- {
- wyswietlacz(16);
- }
- else if (engine_speed >= 256 && engine_speed <= 270)
- {
- wyswietlacz(17);
- }
- else if (engine_speed >= 271 && engine_speed <= 285)
- {
- wyswietlacz(18);
- }
- else if (engine_speed >= 286 && engine_speed <= 300)
- {
- wyswietlacz(19);
- }
- else if (engine_speed >= 301 && engine_speed <= 315)
- {
- wyswietlacz(20);
- }
- else if (engine_speed >= 316 && engine_speed <= 330)
- {
- wyswietlacz(21);
- }
- else
- {
- wyswietlacz(404);
- }
- }
- void wyswietlacz(int cyfra)
- {
- switch (cyfra)
- {
- case 1:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, HIGH);
- digitalWrite(H, HIGH);
- break;
- case 2:
- digitalWrite(A, HIGH);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, HIGH);
- digitalWrite(H, HIGH);
- break;
- case 3:
- digitalWrite(A, HIGH);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, HIGH);
- digitalWrite(H, LOW);
- break;
- case 4:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, HIGH);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, HIGH);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 5:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, HIGH);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, HIGH);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 6:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 7:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 8:
- digitalWrite(A, HIGH);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 9:
- digitalWrite(A, HIGH);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 10:
- digitalWrite(A, LOW);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 11:
- digitalWrite(A, LOW);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 12:
- digitalWrite(A, LOW);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 13:
- digitalWrite(A, LOW);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 14:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, HIGH);
- digitalWrite(H, HIGH);
- break;
- case 15:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, HIGH);
- digitalWrite(E, HIGH);
- digitalWrite(F, HIGH);
- digitalWrite(G, HIGH);
- digitalWrite(H, LOW);
- break;
- case 16:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 17:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 18:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 19:
- digitalWrite(A, LOW);
- digitalWrite(B, LOW);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, HIGH);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 20:
- digitalWrite(A, HIGH);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- break;
- case 21:
- digitalWrite(A, HIGH);
- digitalWrite(B, HIGH);
- digitalWrite(C, LOW);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, LOW);
- break;
- case 404:
- digitalWrite(A, LOW);
- digitalWrite(B, HIGH);
- digitalWrite(C, HIGH);
- digitalWrite(D, LOW);
- digitalWrite(E, LOW);
- digitalWrite(F, LOW);
- digitalWrite(G, LOW);
- digitalWrite(H, HIGH);
- }
- }
- int sterowanie_przycisk()
- {
- if (digitalRead(przycisk) == LOW)
- {
- czas = millis();
- if (czas - zapamietany_czas >= opoznienie)
- {
- zapamietany_czas = czas;
- menu += 1;
- }
- }
- return menu;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement