Advertisement
JWGortney

Useless Box

Jan 19th, 2020
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.46 KB | None | 0 0
  1. #include <Servo.h>
  2.  
  3. Servo doorServo;
  4. Servo fingerServo;
  5.  
  6. int swPin = 2; //switch on pin 2
  7.  
  8. int pos = 0;
  9. int selectedMove = 0; //move selector
  10.  
  11. void setup()
  12. {
  13. pinMode(swPin, INPUT);
  14. doorServo.attach(9); //set door servo on Pin 9 pwm
  15. fingerServo.attach(10); //set finger servo on Pin 10 pwm
  16. doorServo.write(80); //set door to hiding position
  17. fingerServo.write(0); //set finger to hiding position
  18. }
  19.  
  20.  
  21. void loop(){
  22.  
  23. //if the switch is on, move door and finger to switch it off
  24. if(digitalRead(swPin) == HIGH)
  25. {
  26.  
  27. if (selectedMove > 9) {
  28. selectedMove = 0;
  29. } //when all moves are played, repeat the moves from beginning
  30.  
  31. if (selectedMove == 0) {
  32. simpleClose();
  33. }
  34. else if (selectedMove == 1) {
  35. simpleClose();
  36. }
  37. else if (selectedMove == 2) {
  38. simpleClose2();
  39. }
  40. else if (selectedMove == 3) {
  41. crazydoor();
  42. }
  43. else if (selectedMove == 4) {
  44. slow();
  45. }
  46. else if (selectedMove == 5) {
  47. serious();
  48. }
  49. else if (selectedMove == 6) {
  50. trollClose();
  51. }
  52. else if (selectedMove == 7) {
  53. simpleClose();
  54. }
  55. else if (selectedMove == 8) {
  56. matrix();
  57. }
  58. else if (selectedMove == 9) {
  59. sneak();
  60. }
  61.  
  62. selectedMove += 1; //swith to next move
  63.  
  64. }
  65. }
  66.  
  67.  
  68.  
  69. // Moves
  70.  
  71. // basic move
  72. void simpleClose()
  73. {
  74. //Moving door
  75. for(pos = 80; pos < 155; pos += 3)
  76. {
  77. doorServo.write(pos);
  78. delay(15);
  79. }
  80.  
  81. //Moving hand
  82. for(pos = 0; pos < 129; pos += 4)
  83. {
  84. fingerServo.write(pos);
  85. delay(15);
  86. }
  87.  
  88. //hiding hand
  89. for(pos = 129; pos>=0; pos-=4)
  90. {
  91. fingerServo.write(pos);
  92. delay(15);
  93. }
  94.  
  95. //hiding door
  96. for(pos = 155; pos>=80; pos-=3)
  97. {
  98. doorServo.write(pos);
  99. delay(15);
  100. }
  101. }
  102.  
  103. // open and wait, then move finger and wait, then switch of and hide
  104. void simpleClose2()
  105. {
  106. //Moving door
  107. for(pos = 80; pos < 155; pos += 3)
  108. {
  109. doorServo.write(pos);
  110. delay(15);
  111. }
  112. delay(800);
  113. //Moving hand
  114. for(pos = 0; pos < 100; pos += 4)
  115. {
  116. fingerServo.write(pos);
  117. delay(15);
  118. }
  119. delay(1000);
  120. for(pos = 100; pos < 129; pos += 4)
  121. {
  122. fingerServo.write(pos);
  123. delay(15);
  124. }
  125.  
  126. //hiding hand
  127. for(pos = 129; pos>=0; pos-=5)
  128. {
  129. fingerServo.write(pos);
  130. delay(15);
  131. }
  132.  
  133. //hiding door
  134. for(pos = 155; pos>=80; pos-=3)
  135. {
  136. doorServo.write(pos);
  137. delay(15);
  138.  
  139.  
  140. }
  141.  
  142. }
  143.  
  144. //open door then close it many times, wait, then quickly reopen, switch off and hide.
  145.  
  146. void crazydoor()
  147. {
  148.  
  149. //Moving door
  150. for(pos = 80; pos < 125; pos += 3)
  151. {
  152. doorServo.write(pos);
  153. delay(15);
  154. }
  155.  
  156. //hiding door
  157. for(pos = 125; pos>=80; pos-=5)
  158. {
  159. doorServo.write(pos);
  160. delay(15);
  161. }
  162. //Moving door
  163. for(pos = 80; pos < 110; pos += 3)
  164. {
  165. doorServo.write(pos);
  166. delay(15);
  167. }
  168.  
  169. //hiding door
  170. for(pos = 110; pos>=80; pos-=15)
  171. {
  172. doorServo.write(pos);
  173. delay(15);
  174. }
  175. delay(700);
  176. //Moving door
  177. for(pos = 80; pos < 125; pos += 3)
  178. {
  179. doorServo.write(pos);
  180. delay(15);
  181. }
  182. delay(700);
  183. //hiding door
  184. for(pos = 125; pos>=80; pos-=5)
  185. {
  186. doorServo.write(pos);
  187. delay(15);
  188. }
  189.  
  190. //Moving door
  191. for(pos = 80; pos < 155; pos += 8)
  192. {
  193. doorServo.write(pos);
  194. delay(15);
  195. }
  196.  
  197. //Moving hand
  198. for(pos = 0; pos < 129; pos += 3)
  199. {
  200. fingerServo.write(pos);
  201. delay(15);
  202. }
  203.  
  204. //hiding hand
  205. for(pos = 129; pos>=0; pos-=3)
  206. {
  207. fingerServo.write(pos);
  208. delay(15);
  209. }
  210.  
  211. //hiding door
  212. for(pos = 155; pos>=80; pos-=15)
  213. {
  214. doorServo.write(pos);
  215. delay(15);
  216. }
  217.  
  218. }
  219.  
  220.  
  221. //open door,move finger very slowly forward and back to hiding very slowly, then quickly close door
  222. void slow()
  223. {
  224.  
  225. //Moving door
  226. for(pos = 80; pos < 155; pos += 1)
  227. {
  228. doorServo.write(pos);
  229. delay(30);
  230. }
  231.  
  232. //Moving hand
  233. for(pos = 0; pos < 129; pos += 1)
  234. {
  235. fingerServo.write(pos);
  236. delay(30);
  237. }
  238.  
  239. //hiding hand
  240. for(pos = 129; pos>=0; pos-=1)
  241. {
  242. fingerServo.write(pos);
  243. delay(30);
  244. }
  245.  
  246. //hiding door
  247. for(pos = 155; pos>=125; pos-=1)
  248. {
  249. doorServo.write(pos);
  250. delay(30);
  251. }
  252. delay(100);
  253. for(pos = 125; pos>=80; pos-=4)
  254. {
  255. doorServo.write(pos);
  256. delay(15);
  257. }
  258.  
  259.  
  260. }
  261.  
  262. //serious
  263.  
  264. void serious() {
  265.  
  266. //Moving door
  267. for(pos = 80; pos < 155; pos += 3)
  268. {
  269. doorServo.write(pos);
  270. delay(15);
  271. }
  272.  
  273. //Moving hand
  274. for(pos = 0; pos < 70; pos += 1)
  275. {
  276. fingerServo.write(pos);
  277. delay(15);
  278. }
  279. delay(800);
  280.  
  281.  
  282. //hiding door
  283. for(pos = 155; pos>=130; pos-=3)
  284. {
  285. doorServo.write(pos);
  286. delay(15);
  287. }
  288.  
  289. //hiding door
  290. for(pos = 130; pos < 155; pos+=3)
  291. {
  292. doorServo.write(pos);
  293. delay(15);
  294. }
  295. //hiding door
  296. for(pos = 155; pos>=130; pos-=3)
  297. {
  298. doorServo.write(pos);
  299. delay(15);
  300. }
  301. //hiding door
  302. for(pos = 130; pos < 155; pos+=3)
  303. {
  304. doorServo.write(pos);
  305. delay(15);
  306. }
  307.  
  308. fingerServo.write(40);
  309. delay(1000);
  310.  
  311. //Moving hand
  312. for(pos = 40; pos < 129; pos += 4)
  313. {
  314. fingerServo.write(pos);
  315. delay(15);
  316. }
  317.  
  318. //hiding hand
  319. for(pos = 129; pos>=0; pos-=4)
  320. {
  321. fingerServo.write(pos);
  322. delay(15);
  323. }
  324.  
  325.  
  326. for(pos = 120; pos>=80; pos -= 1)
  327. {
  328. doorServo.write(pos);
  329. delay(15);
  330. }
  331.  
  332.  
  333.  
  334. }
  335.  
  336. void trollClose(){
  337. //Moving door
  338. for(pos = 80; pos < 155; pos += 3)
  339. {
  340. doorServo.write(pos);
  341. delay(15);
  342. }
  343.  
  344. //Moving hand
  345. for(pos = 0; pos < 127; pos += 4)
  346. {
  347. fingerServo.write(pos);
  348. delay(15);
  349. }
  350. //hiding door
  351. for(pos = 155; pos>=130; pos-=3)
  352. {
  353. doorServo.write(pos);
  354. delay(15);
  355. }
  356. delay(2000);
  357.  
  358. for(pos = 130; pos < 155; pos += 3)
  359. {
  360. doorServo.write(pos);
  361. delay(15);
  362. }
  363.  
  364. for(pos = 155; pos>=140; pos-=3)
  365. {
  366. doorServo.write(pos);
  367. delay(15);
  368. }
  369. for(pos = 140; pos < 155; pos += 3)
  370. {
  371. doorServo.write(pos);
  372. delay(15);
  373. }
  374. delay(500);
  375. //hiding hand
  376. for(pos = 127; pos>=0; pos-=4)
  377. {
  378. fingerServo.write(pos);
  379. delay(15);
  380. }
  381.  
  382. //hiding door
  383. for(pos = 155; pos>=80; pos-=3)
  384. {
  385. doorServo.write(pos);
  386. delay(15);
  387. }
  388.  
  389. }
  390.  
  391. void matrix()
  392. {
  393.  
  394. //Moving door
  395. for(pos = 80; pos < 155; pos += 3)
  396. {
  397. doorServo.write(pos);
  398. delay(15);
  399. }
  400.  
  401. //Moving hand
  402. for(pos = 0; pos < 80; pos += 4)
  403. {
  404. fingerServo.write(pos);
  405. delay(15);
  406. }
  407.  
  408. for(pos = 80; pos < 129; pos += 1)
  409. {
  410. fingerServo.write(pos);
  411. delay(30);
  412. }
  413. delay(300);
  414.  
  415. for(pos = 129; pos>=0; pos-=4)
  416. {
  417. fingerServo.write(pos);
  418. delay(10);
  419. }
  420.  
  421. //hiding door
  422. for(pos = 155; pos>=80; pos-=3)
  423. {
  424. doorServo.write(pos);
  425. delay(15);
  426. }
  427.  
  428. }
  429.  
  430. void sneak()
  431. {
  432. //Moving door
  433. for(pos = 80; pos < 130; pos += 1)
  434. {
  435. doorServo.write(pos);
  436. delay(30);
  437. }
  438. delay(2000);
  439.  
  440. //Moving hand
  441. for(pos = 0; pos < 40; pos += 1)
  442. {
  443. fingerServo.write(pos);
  444. delay(30);
  445. }
  446.  
  447. delay(500);
  448.  
  449. for(pos = 130; pos < 155; pos += 4)
  450. {
  451. doorServo.write(pos);
  452. delay(15);
  453. }
  454. delay(100);
  455.  
  456. for(pos = 40; pos < 90; pos += 4)
  457. {
  458. fingerServo.write(pos);
  459. delay(15);
  460. }
  461. delay(500);
  462. //hiding hand
  463. for(pos = 90; pos>=70; pos-=4)
  464. {
  465. fingerServo.write(pos);
  466. delay(15);
  467. }
  468. delay(100);
  469. for(pos = 70; pos < 90; pos += 4)
  470. {
  471.  
  472. fingerServo.write(pos);
  473. delay(15);
  474. }
  475. delay(100);
  476. for(pos = 90; pos>=70; pos-=4)
  477. {
  478. fingerServo.write(pos);
  479. delay(15);
  480. }
  481. delay(100);
  482.  
  483. for(pos = 70; pos < 129; pos += 4)
  484. {
  485.  
  486. fingerServo.write(pos);
  487. delay(15);
  488. }
  489.  
  490. for(pos = 129; pos>=0; pos-=4)
  491. {
  492. fingerServo.write(pos);
  493. delay(15);
  494. }
  495. //hiding door
  496. for(pos = 155; pos>=80; pos-=3)
  497. {
  498. doorServo.write(pos);
  499. delay(15);
  500. }
  501. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement