Advertisement
7r3nky

Hyper trans

May 22nd, 2015
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.28 KB | None | 0 0
  1. #include <LiquidCrystal.h> //knihovna LCD
  2. #include <IRremote.h> //knihovna IR
  3. //lcd
  4. LiquidCrystal lcd(8, A4, 2, 3, 4, 7); //nastaveni LCD
  5. //IRres
  6. int RECV_PIN = 6;
  7. IRrecv irrecv(RECV_PIN);
  8. decode_results results;
  9. //morot
  10. int M1 = 9;
  11. int M2 = 10;
  12. int M3 = 11;
  13. int M4 = 12;
  14. //IR tlac
  15. long DN = 0x00FFA25D;
  16. long DP = 0x00FF629D;
  17. long NP = 0x00FF02FD;
  18. long NN = 0x00FF22DD;
  19. long TN = 0x00FFE01F;
  20. long TP = 0x00FFA857;
  21. long SNP = 0x00FFE21D;
  22. long SNN = 0x00FF906F;
  23. long QU = 0x00FF52AD;
  24. long PLAY = 0x00FFC23D;
  25. //fot
  26. int FOT = 13;
  27. //promene
  28. int D = 0; //vzdalenost
  29. int N = 1; //pocet fotek
  30. int T = 1; //cas fotky
  31. int S = 3; //mezera fotky
  32. int C = 1; //celkový cas
  33. int H = 1; //otacky na krok
  34. int B = 500; //ot/1%
  35.  
  36. void setup() {
  37. lcd.begin(16, 2); // nastaveni velikosti lcd
  38. pinMode(RECV_PIN, INPUT); //pin IR
  39. //piny motoru
  40. pinMode(M1, OUTPUT);
  41. pinMode(M2, OUTPUT);
  42. pinMode(M3, OUTPUT);
  43. pinMode(M4, OUTPUT);
  44. pinMode(FOT, OUTPUT);
  45. digitalWrite(FOT, HIGH);
  46. irrecv.enableIRIn(); // Start the receiver
  47.  
  48. }
  49.  
  50. void loop() {
  51. int z = 0;
  52. int i = 0;
  53. if (irrecv.decode(&results))
  54. {
  55. delay (60);
  56. irrecv.resume(); // Receive the next value
  57. if (results.value == DP )
  58. {
  59. D=D+10;
  60. if(D>100)
  61. {
  62. D=D-110;
  63. }
  64. }
  65. else if (results.value == DN )
  66. {
  67. D=D-10;
  68. if(D<0)
  69. {
  70. D=110+D;
  71. }
  72. }
  73. else if (results.value == NP )
  74. {
  75. N=N+10;
  76. if(N>501)
  77. {
  78. N=N-510;
  79. }
  80. }
  81. else if (results.value == NN )
  82. {
  83. N=N-10;
  84. if(N<1)
  85. {
  86. N=510+N;
  87. }
  88. }
  89. else if (results.value == TP )
  90. {
  91. T=T+1;
  92. if(T>120)
  93. {
  94. T=T-120;
  95. }
  96. }
  97. else if (results.value == TN )
  98. {
  99. T=T-1;
  100. if(T<1)
  101. {
  102. T=120+T;
  103. }
  104. }
  105. else if (results.value == SNP )
  106. {
  107. S=S+1;
  108. if(S>120)
  109. {
  110. S=S-118;
  111. }
  112. }
  113. else if (results.value == SNN )
  114. {
  115. S=S-1;
  116. if(S<3)
  117. {
  118. S=118+S;
  119. }
  120. }
  121. else if (results.value == PLAY )
  122. {
  123. for(z=0;z<N;z++)
  124. {
  125. lcd.clear(); //vymazani lcd
  126. lcd.setCursor(0, 0);
  127. lcd.print("Cykl:");
  128. lcd.setCursor(5, 0);
  129. lcd.print(N-z);
  130. lcd.setCursor(0, 1);
  131. lcd.print("cas:");
  132. lcd.setCursor(5, 1);
  133. lcd.print((T+S)*(N-z));
  134. digitalWrite(FOT, LOW);
  135. delay (T*1000);
  136. digitalWrite(FOT, HIGH);
  137. delay (S*500);
  138. for(i=0;i<H;i++)
  139. {
  140. clockwiserotate();
  141. }
  142. ende();
  143. delay (S*500);
  144. if (results.value != irrecv.decode(&results))
  145. {
  146. if (results.value == QU)
  147. {
  148. break;
  149. }
  150. }
  151. }
  152. }
  153. C=(T+S)*N;
  154. H=(D*B)/N;
  155. lcd.clear(); //vymazani lcd
  156. lcd.setCursor(0, 0);
  157. lcd.print("D:");
  158. lcd.setCursor(2, 0);
  159. lcd.print(D);
  160. lcd.setCursor(5, 0);
  161. lcd.print("%");
  162. lcd.setCursor(7, 0);
  163. lcd.print("N:");
  164. lcd.setCursor(9, 0);
  165. lcd.print(N);
  166. lcd.setCursor(13, 0);
  167. lcd.print("T:");
  168. lcd.setCursor(0, 1);
  169. lcd.print(T);
  170. lcd.setCursor(4, 1);
  171. lcd.print("S:");
  172. lcd.setCursor(6, 1);
  173. lcd.print(S);
  174. lcd.setCursor(10, 1);
  175. lcd.print("C:");
  176. lcd.setCursor(12, 1);
  177. lcd.print(C);
  178.  
  179. ende();
  180. }
  181. }
  182. void clockwiserotate() { //revolve clockwise
  183. step1();
  184. step2();
  185. step3();
  186. step4();
  187. step5();
  188. step6();
  189. step7();
  190. step8();
  191. }
  192. void counterclockwiserotate() { //revolve counterclockwise
  193. step1();
  194. step7();
  195. step6();
  196. step5();
  197. step4();
  198. step3();
  199. step2();
  200. step1();
  201. }
  202. void step1(){
  203. digitalWrite(M1, LOW);
  204. digitalWrite(M2, HIGH);
  205. digitalWrite(M3, HIGH);
  206. digitalWrite(M4, HIGH);
  207. delay(2);
  208. }
  209. void step2(){
  210. digitalWrite(M1, LOW);
  211. digitalWrite(M2, LOW);
  212. digitalWrite(M3, HIGH);
  213. digitalWrite(M4, HIGH);
  214. delay(2);
  215. }
  216. void step3(){
  217. digitalWrite(M1, HIGH);
  218. digitalWrite(M2, LOW);
  219. digitalWrite(M3, HIGH);
  220. digitalWrite(M4, HIGH);
  221. delay(2);
  222. }
  223. void step4(){
  224. digitalWrite(M1, HIGH);
  225. digitalWrite(M2, LOW);
  226. digitalWrite(M3, LOW);
  227. digitalWrite(M4, HIGH);
  228. delay(2);
  229. }
  230. void step5(){
  231. digitalWrite(M1, HIGH);
  232. digitalWrite(M2, HIGH);
  233. digitalWrite(M3, LOW);
  234. digitalWrite(M4, HIGH);
  235. delay(2);
  236. }
  237. void step6(){
  238. digitalWrite(M1, HIGH);
  239. digitalWrite(M2, HIGH);
  240. digitalWrite(M3, LOW);
  241. digitalWrite(M4, LOW);
  242. delay(2);
  243. }
  244. void step7(){
  245. digitalWrite(M1, HIGH);
  246. digitalWrite(M2, HIGH);
  247. digitalWrite(M3, HIGH);
  248. digitalWrite(M4, LOW);
  249. delay(2);
  250. }
  251. void step8(){
  252. digitalWrite(M1, LOW);
  253. digitalWrite(M2, HIGH);
  254. digitalWrite(M3, HIGH);
  255. digitalWrite(M4, LOW);
  256. delay(2);
  257. }
  258. void stoprotate()
  259. {
  260. digitalWrite(M1, HIGH);
  261. digitalWrite(M2, HIGH);
  262. digitalWrite(M3, HIGH);
  263. digitalWrite(M4, HIGH);
  264. }
  265. void ende()
  266. {
  267. digitalWrite(M1, LOW);
  268. digitalWrite(M2, LOW);
  269. digitalWrite(M3, LOW);
  270. digitalWrite(M4, LOW);
  271. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement