Advertisement
Guest User

Arduino Kitchen Timer

a guest
Jun 5th, 2013
1,220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.57 KB | None | 0 0
  1. /*
  2. Kitchen_Timer
  3.  
  4. Counts up LED's on a bar graph to indicate 5 minute icrements being added to
  5. a timer circuit. A button is held to count up the LED's, and when the timer
  6. finishes the Bar Graph shows a graphic, and a piezo-electric buzzer sounds.
  7.  
  8. The circuit:
  9. * LED bar graph attached from pins (13-3 excluding 9) to ground
  10. * pushbutton attached to pin 2 from +5V
  11. * 10K resistor attached to pin 2 from ground
  12. * piezo buzzer attached to pin 9 from ground
  13.  
  14. * Note: I recommend doing this on an arduino shield, as this requires a good
  15. amount of wire jumpers.
  16.  
  17. Created in 2011 ©
  18. by Ari Cooper Davis [anonymouse197@gmail.com]
  19. http://www.instructables.com/member/anonymouse197/
  20.  
  21. */
  22.  
  23. // constants (const) won't change. They're used here to set pin numbers:
  24.  
  25. const int buttonPin = 2; // the number of the pushbutton pin
  26. const int ledPin = 13; // the number of the 1st LED pin
  27. const int led2Pin = 12; // the number of the 2nd LED pin
  28. const int led3Pin = 11; // the number of the 3rd LED pin
  29. const int led4Pin = 10; // the number of the 4th LED pin
  30. const int led5Pin = 8; // the number of the 5th LED pin
  31. const int led6Pin = 7; // the number of the 6th LED pin
  32. const int led7Pin = 6; // the number of the 7th LED pin
  33. const int led8Pin = 5; // the number of the 8th LED pin
  34. const int led9Pin = 4; // the number of the 9th LED pin
  35. const int led10Pin = 3; // the number of the 10th LED pin
  36. const int speakerOut = 9;
  37.  
  38. // variables will change. They're used mostly for functions:
  39.  
  40. int buttonState = 0; // variable for reading the pushbutton status
  41. int tastyTimeVariable = 0; // variable for defining time to wait
  42. int iVariable = 0; // variable for repeating display alarm
  43. int tVariable = 0; // variable for repeating piezo alarm
  44.  
  45. void setup() {
  46. // initialize the LED pins as output pins:
  47. pinMode(ledPin, OUTPUT);
  48. pinMode(led2Pin, OUTPUT);
  49. pinMode(led3Pin, OUTPUT);
  50. pinMode(led4Pin, OUTPUT);
  51. pinMode(led5Pin, OUTPUT);
  52. pinMode(led6Pin, OUTPUT);
  53. pinMode(led7Pin, OUTPUT);
  54. pinMode(led8Pin, OUTPUT);
  55. pinMode(led9Pin, OUTPUT);
  56. pinMode(led10Pin, OUTPUT);
  57. // initialize the pushbutton pin as an input:
  58. pinMode(buttonPin, INPUT);
  59. // initialize the piezo pin as an output
  60. pinMode(speakerOut, OUTPUT);
  61. delay(1000);
  62. }
  63.  
  64. void loop(){
  65. // read the state of the pushbutton value:
  66. buttonState = digitalRead(buttonPin);
  67.  
  68. // check if the pushbutton is pressed. if it is, the buttonState is HIGH:
  69. if (buttonState == HIGH) {
  70. // add to timer
  71. ++tastyTimeVariable;
  72. digitalWrite(ledPin, HIGH);
  73. }
  74. else {
  75. }
  76.  
  77. delay(1000); // a second delay for adding time increments
  78.  
  79. buttonState = digitalRead(buttonPin);
  80. if (buttonState == HIGH) {
  81. // add to timer
  82. ++tastyTimeVariable;
  83. digitalWrite(led2Pin, HIGH);
  84. }
  85. else {
  86. }
  87.  
  88. delay(1000);
  89.  
  90. buttonState = digitalRead(buttonPin);
  91. if (buttonState == HIGH) {
  92. // add to timer
  93. ++tastyTimeVariable;
  94. digitalWrite(led3Pin, HIGH);
  95. }
  96. else {
  97. }
  98.  
  99. delay(1000);
  100.  
  101. buttonState = digitalRead(buttonPin);
  102. if (buttonState == HIGH) {
  103. // add to timer
  104. ++tastyTimeVariable;
  105. digitalWrite(led4Pin, HIGH);
  106. }
  107. else {
  108. }
  109.  
  110. delay(1000);
  111.  
  112. buttonState = digitalRead(buttonPin);
  113. if (buttonState == HIGH) {
  114. // add to timer
  115. ++tastyTimeVariable;
  116. digitalWrite(led5Pin, HIGH);
  117. }
  118. else {
  119. }
  120.  
  121. delay(1000);
  122.  
  123. buttonState = digitalRead(buttonPin);
  124. if (buttonState == HIGH) {
  125. // add to timer
  126. ++tastyTimeVariable;
  127. digitalWrite(led6Pin, HIGH);
  128. }
  129. else {
  130. }
  131.  
  132. delay(1000);
  133.  
  134. buttonState = digitalRead(buttonPin);
  135. if (buttonState == HIGH) {
  136. // add to timer
  137. ++tastyTimeVariable;
  138. digitalWrite(led7Pin, HIGH);
  139. }
  140. else {
  141. }
  142.  
  143. delay(1000);
  144.  
  145. buttonState = digitalRead(buttonPin);
  146. if (buttonState == HIGH) {
  147. // add to timer
  148. ++tastyTimeVariable;
  149. digitalWrite(led8Pin, HIGH);
  150. }
  151. else {
  152. }
  153.  
  154. delay(1000);
  155.  
  156. buttonState = digitalRead(buttonPin);
  157. if (buttonState == HIGH) {
  158. // add to timer
  159. ++tastyTimeVariable;
  160. digitalWrite(led9Pin, HIGH);
  161. }
  162. else {
  163. }
  164.  
  165. delay(1000);
  166.  
  167. buttonState = digitalRead(buttonPin);
  168. if (buttonState == HIGH) {
  169. // add to timer
  170. ++tastyTimeVariable;
  171. digitalWrite(led10Pin, HIGH);
  172. }
  173. else {
  174. }
  175.  
  176. // The above code runs to add 1 to the tastyTimeVariable if the button is
  177. // pressed, so that the arduino knows how long it should time for.
  178.  
  179. delay(1000);
  180.  
  181. digitalWrite(led10Pin, LOW);
  182. digitalWrite(led9Pin, LOW);
  183. digitalWrite(led8Pin, LOW);
  184. digitalWrite(led7Pin, LOW);
  185. digitalWrite(led6Pin, LOW);
  186. digitalWrite(led5Pin, LOW);
  187. digitalWrite(led4Pin, LOW);
  188. digitalWrite(led3Pin, LOW);
  189. digitalWrite(led2Pin, LOW);
  190. digitalWrite(ledPin, LOW);
  191.  
  192. delay(1000);
  193.  
  194. // The above code turns all LED's off, so as to make sure they do not
  195. // interfere later on in the coding.
  196.  
  197. if (tastyTimeVariable == 0) {
  198. }
  199.  
  200. else if (tastyTimeVariable == 1) {
  201. digitalWrite (ledPin, HIGH);
  202. delay(300L * 1000L); // 5 minutes. This can be changed to change increments
  203. }
  204.  
  205. else if (tastyTimeVariable == 2) {
  206. digitalWrite (led2Pin, HIGH);
  207. digitalWrite (ledPin, HIGH);
  208. delay(300L * 1000L);
  209. digitalWrite (led2Pin, LOW);
  210. delay(300L * 1000L);
  211. }
  212.  
  213. else if (tastyTimeVariable == 3) {
  214. digitalWrite (led3Pin, HIGH);
  215. digitalWrite (led2Pin, HIGH);
  216. digitalWrite (ledPin, HIGH);
  217. delay(300L * 1000L);
  218. digitalWrite (led3Pin, LOW);
  219. delay(300L * 1000L);
  220. digitalWrite (led2Pin, LOW);
  221. delay(300L * 1000L);
  222. }
  223.  
  224. else if (tastyTimeVariable == 4) {
  225. digitalWrite (led4Pin, HIGH);
  226. digitalWrite (led3Pin, HIGH);
  227. digitalWrite (led2Pin, HIGH);
  228. digitalWrite (ledPin, HIGH);
  229. delay(300L * 1000L);
  230. digitalWrite (led4Pin, LOW);
  231. delay(300L * 1000L);
  232. digitalWrite (led3Pin, LOW);
  233. delay(300L * 1000L);
  234. digitalWrite (led2Pin, LOW);
  235. delay(300L * 1000L);
  236. }
  237.  
  238. else if (tastyTimeVariable == 5) {
  239. digitalWrite (led5Pin, HIGH);
  240. digitalWrite (led4Pin, HIGH);
  241. digitalWrite (led3Pin, HIGH);
  242. digitalWrite (led2Pin, HIGH);
  243. digitalWrite (ledPin, HIGH);
  244. delay(300L * 1000L);
  245. digitalWrite (led5Pin, LOW);
  246. delay(300L * 1000L);
  247. digitalWrite (led4Pin, LOW);
  248. delay(300L * 1000L);
  249. digitalWrite (led3Pin, LOW);
  250. delay(300L * 1000L);
  251. digitalWrite (led2Pin, LOW);
  252. delay(300L * 1000L);
  253. }
  254.  
  255. else if (tastyTimeVariable == 6) {
  256. digitalWrite (led6Pin, HIGH);
  257. digitalWrite (led5Pin, HIGH);
  258. digitalWrite (led4Pin, HIGH);
  259. digitalWrite (led3Pin, HIGH);
  260. digitalWrite (led2Pin, HIGH);
  261. digitalWrite (ledPin, HIGH);
  262. delay(300L * 1000L);
  263. digitalWrite (led6Pin, LOW);
  264. delay(300L * 1000L);
  265. digitalWrite (led5Pin, LOW);
  266. delay(300L * 1000L);
  267. digitalWrite (led4Pin, LOW);
  268. delay(300L * 1000L);
  269. digitalWrite (led3Pin, LOW);
  270. delay(300L * 1000L);
  271. digitalWrite (led2Pin, LOW);
  272. delay(300L * 1000L);
  273. }
  274.  
  275. else if (tastyTimeVariable == 7) {
  276. digitalWrite (led7Pin, HIGH);
  277. digitalWrite (led6Pin, HIGH);
  278. digitalWrite (led5Pin, HIGH);
  279. digitalWrite (led4Pin, HIGH);
  280. digitalWrite (led3Pin, HIGH);
  281. digitalWrite (led2Pin, HIGH);
  282. digitalWrite (ledPin, HIGH);
  283. delay(300L * 1000L);
  284. digitalWrite (led7Pin, LOW);
  285. delay(300L * 1000L);
  286. digitalWrite (led6Pin, LOW);
  287. delay(300L * 1000L);
  288. digitalWrite (led5Pin, LOW);
  289. delay(300L * 1000L);
  290. digitalWrite (led4Pin, LOW);
  291. delay(300L * 1000L);
  292. digitalWrite (led3Pin, LOW);
  293. delay(300L * 1000L);
  294. digitalWrite (led2Pin, LOW);
  295. delay(300L * 1000L);
  296. }
  297.  
  298. else if (tastyTimeVariable == 8) {
  299. digitalWrite (led8Pin, HIGH);
  300. digitalWrite (led7Pin, HIGH);
  301. digitalWrite (led6Pin, HIGH);
  302. digitalWrite (led5Pin, HIGH);
  303. digitalWrite (led4Pin, HIGH);
  304. digitalWrite (led3Pin, HIGH);
  305. digitalWrite (led2Pin, HIGH);
  306. digitalWrite (ledPin, HIGH);
  307. delay(300L * 1000L);
  308. digitalWrite (led8Pin, LOW);
  309. delay(300L * 1000L);
  310. digitalWrite (led7Pin, LOW);
  311. delay(300L * 1000L);
  312. digitalWrite (led6Pin, LOW);
  313. delay(300L * 1000L);
  314. digitalWrite (led5Pin, LOW);
  315. delay(300L * 1000L);
  316. digitalWrite (led4Pin, LOW);
  317. delay(300L * 1000L);
  318. digitalWrite (led3Pin, LOW);
  319. delay(300L * 1000L);
  320. digitalWrite (led2Pin, LOW);
  321. delay(300L * 1000L);
  322. }
  323.  
  324. else if (tastyTimeVariable == 9) {
  325. digitalWrite (led9Pin, HIGH);
  326. digitalWrite (led8Pin, HIGH);
  327. digitalWrite (led7Pin, HIGH);
  328. digitalWrite (led6Pin, HIGH);
  329. digitalWrite (led5Pin, HIGH);
  330. digitalWrite (led4Pin, HIGH);
  331. digitalWrite (led3Pin, HIGH);
  332. digitalWrite (led2Pin, HIGH);
  333. digitalWrite (ledPin, HIGH);
  334. delay(300L * 1000L);
  335. digitalWrite (led9Pin, LOW);
  336. delay(300L * 1000L);
  337. digitalWrite (led8Pin, LOW);
  338. delay(300L * 1000L);
  339. digitalWrite (led7Pin, LOW);
  340. delay(300L * 1000L);
  341. digitalWrite (led6Pin, LOW);
  342. delay(300L * 1000L);
  343. digitalWrite (led5Pin, LOW);
  344. delay(300L * 1000L);
  345. digitalWrite (led4Pin, LOW);
  346. delay(300L * 1000L);
  347. digitalWrite (led3Pin, LOW);
  348. delay(300L * 1000L);
  349. digitalWrite (led2Pin, LOW);
  350. delay(300L * 1000L);
  351. }
  352.  
  353. else if (tastyTimeVariable == 10) {
  354. digitalWrite (led10Pin, HIGH);
  355. digitalWrite (led9Pin, HIGH);
  356. digitalWrite (led8Pin, HIGH);
  357. digitalWrite (led7Pin, HIGH);
  358. digitalWrite (led6Pin, HIGH);
  359. digitalWrite (led5Pin, HIGH);
  360. digitalWrite (led4Pin, HIGH);
  361. digitalWrite (led3Pin, HIGH);
  362. digitalWrite (led2Pin, HIGH);
  363. digitalWrite (ledPin, HIGH);
  364. delay(300L * 1000L);
  365. digitalWrite (led10Pin, LOW);
  366. delay(300L * 1000L);
  367. digitalWrite (led9Pin, LOW);
  368. delay(300L * 1000L);
  369. digitalWrite (led8Pin, LOW);
  370. delay(300L * 1000L);
  371. digitalWrite (led7Pin, LOW);
  372. delay(300L * 1000L);
  373. digitalWrite (led6Pin, LOW);
  374. delay(300L * 1000L);
  375. digitalWrite (led5Pin, LOW);
  376. delay(300L * 1000L);
  377. digitalWrite (led4Pin, LOW);
  378. delay(300L * 1000L);
  379. digitalWrite (led3Pin, LOW);
  380. delay(300L * 1000L);
  381. digitalWrite (led2Pin, LOW);
  382. delay(300L * 1000L);
  383. }
  384.  
  385. else if (tastyTimeVariable > 10) {
  386. }
  387.  
  388. if (tastyTimeVariable == 0) {
  389. }
  390.  
  391. else {
  392.  
  393. for(int iVariable = 0; iVariable < 1000; iVariable++) { // alarm length
  394.  
  395. digitalWrite(ledPin, HIGH);
  396. delay(100);
  397. digitalWrite(led2Pin, HIGH);
  398. delay(100);
  399. digitalWrite(led3Pin, HIGH);
  400. digitalWrite(ledPin, LOW);
  401. delay(100);
  402. digitalWrite(led4Pin, HIGH);
  403. digitalWrite(led2Pin, LOW);
  404. delay(100);
  405. digitalWrite(led5Pin, HIGH);
  406. digitalWrite(led3Pin, LOW);
  407. delay(100);
  408. digitalWrite(led6Pin, HIGH);
  409. digitalWrite(led4Pin, LOW);
  410. delay(100);
  411. digitalWrite(led7Pin, HIGH);
  412. digitalWrite(led5Pin, LOW);
  413. delay(100);
  414. digitalWrite(led8Pin, HIGH);
  415. digitalWrite(led6Pin, LOW);
  416. delay(100);
  417. digitalWrite(led9Pin, HIGH);
  418. digitalWrite(led7Pin, LOW);
  419. delay(100);
  420. digitalWrite(led10Pin, HIGH);
  421. digitalWrite(led8Pin, LOW);
  422. delay(100);
  423. digitalWrite(led9Pin, LOW);
  424. delay(100);
  425. digitalWrite(led10Pin, LOW);
  426. delay(400);
  427.  
  428. // The above code creates a loading bar effect with the LED's
  429.  
  430. for(int tVariable = 0; tVariable < 5; tVariable++) { // another loop function
  431. analogWrite(speakerOut, 150);
  432. delay(50);
  433. analogWrite(speakerOut, 0);
  434. delay(50);
  435. analogWrite(speakerOut, 5);
  436. delay(50);
  437. analogWrite(speakerOut, 0);
  438. delay(50);
  439. }
  440.  
  441. // The above code creates a buzzer noise alarm
  442.  
  443. }
  444. }
  445.  
  446. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement