Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- LiquidCrystal lcd(2, 3, 4, 5, 6, 7); //wyświetlacz
- int i=0; //wartosc predkosci
- int s=0; //0-w prawo, 1-w lewo
- void setup()
- {
- pinMode(11,INPUT_PULLUP); //rozruch
- pinMode(12,INPUT_PULLUP); //zatrz
- pinMode(13,INPUT_PULLUP); //awaryjny stop
- pinMode(9,OUTPUT);
- pinMode(8,OUTPUT);
- pinMode(10,OUTPUT);
- pinMode(14,INPUT_PULLUP); //strona krecenia L
- pinMode(15,INPUT_PULLUP); //strona krecenia R
- digitalWrite(8,LOW);
- digitalWrite(10,HIGH);
- lcd.begin(16,2);
- lcd.setCursor(0,0); //ekran startowy
- lcd.print("Silnik MT64");
- lcd.setCursor(0,1);
- lcd.print("by Cezar P.");
- delay(2000);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("W= ");
- lcd.setCursor(3,0);
- lcd.print(i);
- lcd.setCursor(7,0);
- lcd.print("jedn.");
- lcd.setCursor(1,1);
- lcd.print("Kier.- R");
- }
- void start() //rozruch
- {
- if(i<255) //blokada na 255
- {
- i=i+1;
- }
- else
- i=255; //max
- analogWrite(9,i);
- if(i==9 || i==99) //czyszczenie ekranu z pozost. zer
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("W= ");
- lcd.setCursor(3,0);
- lcd.print(i);
- lcd.setCursor(7,0);
- lcd.print("jedn.");
- if(s==0) //zmiana kierunku na zmiennych kierunku
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- R");
- }
- if (s==1)
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- L");
- }
- delay(50);
- }
- void stops()
- {
- if(i>0)
- {
- i=i-1;
- }
- else
- i=0;
- analogWrite(9,i);
- if(i==9 || i==99) //czyszczenie ekranu z pozost. zer
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("W= ");
- lcd.setCursor(3,0);
- lcd.print(i);
- lcd.setCursor(7,0);
- lcd.print("jedn.");
- if(s==0)
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- R");
- }
- if (s==1)
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- L");
- }
- delay(50);
- }
- void awaryj1()
- {
- analogWrite(9,0);
- i=0;
- }
- void awaryj2()
- {
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("STOP AWARYJNY");
- lcd.setCursor(0,1);
- lcd.print("W= ");
- lcd.setCursor(3,1);
- lcd.print(i);
- lcd.setCursor(5,1);
- lcd.print("jedn.");
- lcd.setCursor(15,0);
- lcd.print("3");
- delay(1000);
- lcd.setCursor(15,0);
- lcd.print("2");
- delay(1000);
- lcd.setCursor(15,0);
- lcd.print("1");
- delay(1000);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print("W= ");
- lcd.setCursor(3,0);
- lcd.print(i);
- lcd.setCursor(7,0);
- lcd.print("jedn.");
- if(s==0)
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- R");
- }
- if (s==1)
- {
- lcd.setCursor(1,1);
- lcd.print("Kier.- L");
- }
- }
- void loop()
- {
- skok:
- if(i<75) //blokada na zmiane kierunku w pracy silnika
- {
- if(digitalRead(14)==LOW)
- {
- s=1;
- digitalWrite(8,HIGH);
- digitalWrite(10,LOW);
- lcd.setCursor(1,1);
- lcd.print("Kier.- L");
- }
- if(digitalRead(15)==LOW)
- {
- s=0;
- digitalWrite(8,LOW);
- digitalWrite(10,HIGH);
- lcd.setCursor(1,1);
- lcd.print("Kier.- R");
- }
- }
- if(digitalRead(11)==LOW) //start
- {
- start();
- }
- if(digitalRead(12)==LOW) //stop
- {
- stops();
- }
- if(digitalRead(13)==LOW) //stop
- {
- awaryj1();
- awaryj2();
- goto skok; //skocz na poczatek
- }
- }
Add Comment
Please, Sign In to add comment