Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h> //knihovna LCD
- #include <IRremote.h> //knihovna IR
- //lcd
- LiquidCrystal lcd(8, A4, 2, 3, 4, 7); //nastaveni LCD
- //IRres
- int RECV_PIN = 6;
- IRrecv irrecv(RECV_PIN);
- decode_results results;
- //morot
- int M1 = 9;
- int M2 = 10;
- int M3 = 11;
- int M4 = 12;
- //IR tlac
- long DN = 0x00FFA25D;
- long DP = 0x00FF629D;
- long NP = 0x00FF02FD;
- long NN = 0x00FF22DD;
- long TN = 0x00FFE01F;
- long TP = 0x00FFA857;
- long SNP = 0x00FFE21D;
- long SNN = 0x00FF906F;
- long QU = 0x00FF52AD;
- long PLAY = 0x00FFC23D;
- //fot
- int FOT = 13;
- //promene
- int D = 0; //vzdalenost
- int N = 1; //pocet fotek
- int T = 1; //cas fotky
- int S = 3; //mezera fotky
- int C = 1; //celkový cas
- int H = 1; //otacky na krok
- int B = 500; //ot/1%
- void setup() {
- lcd.begin(16, 2); // nastaveni velikosti lcd
- pinMode(RECV_PIN, INPUT); //pin IR
- //piny motoru
- pinMode(M1, OUTPUT);
- pinMode(M2, OUTPUT);
- pinMode(M3, OUTPUT);
- pinMode(M4, OUTPUT);
- pinMode(FOT, OUTPUT);
- digitalWrite(FOT, HIGH);
- irrecv.enableIRIn(); // Start the receiver
- }
- void loop() {
- int z = 0;
- int i = 0;
- if (irrecv.decode(&results))
- {
- delay (60);
- irrecv.resume(); // Receive the next value
- if (results.value == DP )
- {
- D=D+10;
- if(D>100)
- {
- D=D-110;
- }
- }
- else if (results.value == DN )
- {
- D=D-10;
- if(D<0)
- {
- D=110+D;
- }
- }
- else if (results.value == NP )
- {
- N=N+10;
- if(N>501)
- {
- N=N-510;
- }
- }
- else if (results.value == NN )
- {
- N=N-10;
- if(N<1)
- {
- N=510+N;
- }
- }
- else if (results.value == TP )
- {
- T=T+1;
- if(T>120)
- {
- T=T-120;
- }
- }
- else if (results.value == TN )
- {
- T=T-1;
- if(T<1)
- {
- T=120+T;
- }
- }
- else if (results.value == SNP )
- {
- S=S+1;
- if(S>120)
- {
- S=S-118;
- }
- }
- else if (results.value == SNN )
- {
- S=S-1;
- if(S<3)
- {
- S=118+S;
- }
- }
- else if (results.value == PLAY )
- {
- for(z=0;z<N;z++)
- {
- lcd.clear(); //vymazani lcd
- lcd.setCursor(0, 0);
- lcd.print("Cykl:");
- lcd.setCursor(5, 0);
- lcd.print(N-z);
- lcd.setCursor(0, 1);
- lcd.print("cas:");
- lcd.setCursor(5, 1);
- lcd.print((T+S)*(N-z));
- digitalWrite(FOT, LOW);
- delay (T*1000);
- digitalWrite(FOT, HIGH);
- delay (S*500);
- for(i=0;i<H;i++)
- {
- clockwiserotate();
- }
- ende();
- delay (S*500);
- if (results.value != irrecv.decode(&results))
- {
- if (results.value == QU)
- {
- break;
- }
- }
- }
- }
- C=(T+S)*N;
- H=(D*B)/N;
- lcd.clear(); //vymazani lcd
- lcd.setCursor(0, 0);
- lcd.print("D:");
- lcd.setCursor(2, 0);
- lcd.print(D);
- lcd.setCursor(5, 0);
- lcd.print("%");
- lcd.setCursor(7, 0);
- lcd.print("N:");
- lcd.setCursor(9, 0);
- lcd.print(N);
- lcd.setCursor(13, 0);
- lcd.print("T:");
- lcd.setCursor(0, 1);
- lcd.print(T);
- lcd.setCursor(4, 1);
- lcd.print("S:");
- lcd.setCursor(6, 1);
- lcd.print(S);
- lcd.setCursor(10, 1);
- lcd.print("C:");
- lcd.setCursor(12, 1);
- lcd.print(C);
- ende();
- }
- }
- void clockwiserotate() { //revolve clockwise
- step1();
- step2();
- step3();
- step4();
- step5();
- step6();
- step7();
- step8();
- }
- void counterclockwiserotate() { //revolve counterclockwise
- step1();
- step7();
- step6();
- step5();
- step4();
- step3();
- step2();
- step1();
- }
- void step1(){
- digitalWrite(M1, LOW);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, HIGH);
- delay(2);
- }
- void step2(){
- digitalWrite(M1, LOW);
- digitalWrite(M2, LOW);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, HIGH);
- delay(2);
- }
- void step3(){
- digitalWrite(M1, HIGH);
- digitalWrite(M2, LOW);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, HIGH);
- delay(2);
- }
- void step4(){
- digitalWrite(M1, HIGH);
- digitalWrite(M2, LOW);
- digitalWrite(M3, LOW);
- digitalWrite(M4, HIGH);
- delay(2);
- }
- void step5(){
- digitalWrite(M1, HIGH);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, LOW);
- digitalWrite(M4, HIGH);
- delay(2);
- }
- void step6(){
- digitalWrite(M1, HIGH);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, LOW);
- digitalWrite(M4, LOW);
- delay(2);
- }
- void step7(){
- digitalWrite(M1, HIGH);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, LOW);
- delay(2);
- }
- void step8(){
- digitalWrite(M1, LOW);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, LOW);
- delay(2);
- }
- void stoprotate()
- {
- digitalWrite(M1, HIGH);
- digitalWrite(M2, HIGH);
- digitalWrite(M3, HIGH);
- digitalWrite(M4, HIGH);
- }
- void ende()
- {
- digitalWrite(M1, LOW);
- digitalWrite(M2, LOW);
- digitalWrite(M3, LOW);
- digitalWrite(M4, LOW);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement