Guest User

Untitled

a guest
Mar 22nd, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.59 KB | None | 0 0
  1. const int sensorPin = 0;
  2. const int temperaturePin = 1;
  3.  
  4. int lightLevel, high = 0, low = 1023;
  5.  
  6. int mark = 255;
  7.  
  8. int count = 1;
  9.  
  10. int buttonState;
  11. int lastButtonState = LOW;
  12. unsigned long lastDebounceTime = 0;
  13. unsigned long debounceDelay = 50;
  14.  
  15. void setup()
  16. {
  17. Serial.begin(9600);
  18. //LEDs
  19. pinMode(13, OUTPUT);
  20. pinMode(12, OUTPUT);
  21. pinMode(11, OUTPUT);
  22. pinMode(10, OUTPUT);
  23. pinMode(9, OUTPUT);
  24. pinMode(8, OUTPUT);
  25. pinMode(7, OUTPUT);
  26. pinMode(6, OUTPUT);
  27. pinMode(5, OUTPUT);
  28. pinMode(4, OUTPUT);
  29.  
  30. //button
  31. pinMode(2, INPUT);
  32.  
  33. }
  34.  
  35. void loop()
  36. {
  37. int reading = digitalRead(2);
  38.  
  39. if (reading != lastButtonState)
  40. {
  41. lastDebounceTime = millis();
  42. }
  43.  
  44. if ((millis() - lastDebounceTime) > debounceDelay)
  45. {
  46. if (reading != buttonState)
  47. {
  48. buttonState = reading;
  49. if (buttonState == HIGH)
  50. {
  51. count++;
  52. }
  53. }
  54. }
  55. lastButtonState = reading;
  56.  
  57. //set mode based on toggle status. True on, false off
  58. if(count % 2)
  59. {
  60. mode1();
  61. }
  62. else
  63. {
  64. mode2();
  65. }
  66.  
  67. }
  68. void mode1()
  69. {
  70.  
  71. digitalWrite(4, LOW);
  72. digitalWrite(5, LOW);
  73. digitalWrite(6, LOW);
  74. digitalWrite(7, LOW);
  75. digitalWrite(8, LOW);
  76. digitalWrite(9, LOW);
  77. digitalWrite(10, LOW);
  78. digitalWrite(11, LOW);
  79. digitalWrite(12, LOW);
  80. digitalWrite(13, LOW);
  81.  
  82. lightLevel = analogRead(sensorPin);
  83.  
  84. // prepare light levels
  85. if (lightLevel < low)
  86. {
  87. low = lightLevel;
  88. }
  89. if (lightLevel > high)
  90. {
  91. high = lightLevel;
  92. }
  93. lightLevel = map(lightLevel, low+30, high-30, 0, 250);
  94. lightLevel = constrain(lightLevel, 0, 250);
  95.  
  96.  
  97. //turn on LEDS accordingly
  98.  
  99. if (lightLevel > mark)
  100. {
  101. digitalWrite(4, HIGH);
  102. digitalWrite(5, HIGH);
  103. digitalWrite(6, HIGH);
  104. digitalWrite(7, HIGH);
  105. digitalWrite(8, HIGH);
  106. digitalWrite(9, HIGH);
  107. digitalWrite(10, HIGH);
  108. digitalWrite(11, HIGH);
  109. digitalWrite(12, HIGH);
  110. digitalWrite(13, HIGH);
  111.  
  112. }
  113. if (lightLevel > (mark * 0.9) && lightLevel < mark)
  114. {
  115. digitalWrite(4, HIGH);
  116. digitalWrite(5, HIGH);
  117. digitalWrite(6, HIGH);
  118. digitalWrite(7, HIGH);
  119. digitalWrite(8, HIGH);
  120. digitalWrite(9, HIGH);
  121. digitalWrite(10, HIGH);
  122. digitalWrite(11, HIGH);
  123. digitalWrite(12, HIGH);
  124.  
  125. }
  126. if (lightLevel > (mark * 0.8) && lightLevel < (mark * 0.9))
  127. {
  128. digitalWrite(4, HIGH);
  129. digitalWrite(5, HIGH);
  130. digitalWrite(6, HIGH);
  131. digitalWrite(7, HIGH);
  132. digitalWrite(8, HIGH);
  133. digitalWrite(9, HIGH);
  134. digitalWrite(10, HIGH);
  135. digitalWrite(11, HIGH);
  136.  
  137. }
  138. if (lightLevel > (mark * 0.7) && lightLevel < (mark * 0.8))
  139. {
  140. digitalWrite(4, HIGH);
  141. digitalWrite(5, HIGH);
  142. digitalWrite(6, HIGH);
  143. digitalWrite(7, HIGH);
  144. digitalWrite(8, HIGH);
  145. digitalWrite(9, HIGH);
  146. digitalWrite(10, HIGH);
  147.  
  148. }
  149. if (lightLevel > (mark * 0.6) && lightLevel < (mark * 0.7))
  150. {
  151. digitalWrite(4, HIGH);
  152. digitalWrite(5, HIGH);
  153. digitalWrite(6, HIGH);
  154. digitalWrite(7, HIGH);
  155. digitalWrite(8, HIGH);
  156. digitalWrite(9, HIGH);
  157. }
  158. if (lightLevel > (mark * 0.5) && lightLevel < (mark * 0.6))
  159. {
  160. digitalWrite(4, HIGH);
  161. digitalWrite(5, HIGH);
  162. digitalWrite(6, HIGH);
  163. digitalWrite(7, HIGH);
  164. digitalWrite(8, HIGH);
  165. }
  166. if (lightLevel > (mark * 0.4) && lightLevel < (mark * 0.5))
  167. {
  168. digitalWrite(4, HIGH);
  169. digitalWrite(5, HIGH);
  170. digitalWrite(6, HIGH);
  171. digitalWrite(7, HIGH);
  172. }
  173. if (lightLevel > (mark * 0.3) && lightLevel < (mark * 0.4))
  174. {
  175. digitalWrite(4, HIGH);
  176. digitalWrite(5, HIGH);
  177. digitalWrite(6, HIGH);
  178. }
  179. if (lightLevel > (mark * 0.2) && lightLevel < (mark * 0.3))
  180. {
  181. digitalWrite(4, HIGH);
  182. digitalWrite(5, HIGH);
  183. }
  184. if (lightLevel < (mark * 0.2))
  185. {
  186. digitalWrite(4, HIGH);
  187. }
  188. Serial.println(lightLevel);
  189. delay(500);
  190. }
  191. void mode2()
  192. {
  193. digitalWrite(4, LOW);
  194. digitalWrite(5, LOW);
  195. digitalWrite(6, LOW);
  196. digitalWrite(7, LOW);
  197. digitalWrite(8, LOW);
  198. digitalWrite(9, LOW);
  199. digitalWrite(10, LOW);
  200. digitalWrite(11, LOW);
  201. digitalWrite(12, LOW);
  202. digitalWrite(13, LOW);
  203.  
  204. float voltage, degreesC;
  205.  
  206. voltage = getVoltage(temperaturePin);
  207.  
  208. degreesC = (voltage - 0.5) * 100.0;
  209.  
  210. if( (degreesC > 0.0) && (degreesC < 4.0) )
  211. {
  212. digitalWrite(4, HIGH);
  213. }
  214. if( (degreesC > 3.0) && (degreesC < 7.0) )
  215. {
  216. digitalWrite(4, HIGH);
  217. digitalWrite(5, HIGH);
  218. }
  219. if( (degreesC > 6.0) && (degreesC < 10.0) )
  220. {
  221. digitalWrite(4, HIGH);
  222. digitalWrite(5, HIGH);
  223. digitalWrite(6, HIGH);
  224. }
  225. if( (degreesC > 9.0) && (degreesC < 13.0) )
  226. {
  227. digitalWrite(4, HIGH);
  228. digitalWrite(5, HIGH);
  229. digitalWrite(6, HIGH);
  230. digitalWrite(7, HIGH);
  231. }
  232. if( (degreesC > 12.0) && (degreesC < 16.0) )
  233. {
  234. digitalWrite(4, HIGH);
  235. digitalWrite(5, HIGH);
  236. digitalWrite(6, HIGH);
  237. digitalWrite(7, HIGH);
  238. digitalWrite(8, HIGH);
  239. }
  240. if( (degreesC > 15.0) && (degreesC < 19.0) )
  241. {
  242. digitalWrite(4, HIGH);
  243. digitalWrite(5, HIGH);
  244. digitalWrite(6, HIGH);
  245. digitalWrite(7, HIGH);
  246. digitalWrite(8, HIGH);
  247. digitalWrite(9, HIGH);
  248. }
  249. if( (degreesC > 18.0) && (degreesC < 22.0) )
  250. {
  251. digitalWrite(4, HIGH);
  252. digitalWrite(5, HIGH);
  253. digitalWrite(6, HIGH);
  254. digitalWrite(7, HIGH);
  255. digitalWrite(8, HIGH);
  256. digitalWrite(9, HIGH);
  257. digitalWrite(10, HIGH);
  258. }
  259. if( (degreesC > 21.0) && (degreesC < 25.0) )
  260. {
  261. digitalWrite(4, HIGH);
  262. digitalWrite(5, HIGH);
  263. digitalWrite(6, HIGH);
  264. digitalWrite(7, HIGH);
  265. digitalWrite(8, HIGH);
  266. digitalWrite(9, HIGH);
  267. digitalWrite(10, HIGH);
  268. digitalWrite(11, HIGH);
  269. }
  270. if( (degreesC > 24.0) && (degreesC < 28.0) )
  271. {
  272. digitalWrite(4, HIGH);
  273. digitalWrite(5, HIGH);
  274. digitalWrite(6, HIGH);
  275. digitalWrite(7, HIGH);
  276. digitalWrite(8, HIGH);
  277. digitalWrite(9, HIGH);
  278. digitalWrite(10, HIGH);
  279. digitalWrite(11, HIGH);
  280. digitalWrite(12, HIGH);
  281. }
  282. if( degreesC > 27.0 )
  283. {
  284. digitalWrite(4, HIGH);
  285. digitalWrite(5, HIGH);
  286. digitalWrite(6, HIGH);
  287. digitalWrite(7, HIGH);
  288. digitalWrite(8, HIGH);
  289. digitalWrite(9, HIGH);
  290. digitalWrite(10, HIGH);
  291. digitalWrite(11, HIGH);
  292. digitalWrite(12, HIGH);
  293. digitalWrite(13, HIGH);
  294. }
  295. Serial.println(degreesC);
  296. delay(500);
  297. }
  298. float getVoltage(int pin)
  299. {
  300. return (analogRead(pin) * 0.004882814);
  301.  
  302. // This equation converts the 0 to 1023 value that analogRead()
  303. // returns, into a 0.0 to 5.0 value that is the true voltage
  304. // being read at that pin.
  305. }
Advertisement
Add Comment
Please, Sign In to add comment