Guest User

Untitled

a guest
Dec 18th, 2018
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.11 KB | None | 0 0
  1. #define LEN(x) (sizeof(x)/sizeof(x[0]))
  2. /* connected leds (map temperature between 0°C and 64 °C) */
  3. static int leds[] = {13, 12, 11, 10, 9, 8};
  4.  
  5. void setup(void)
  6. {
  7. int i;
  8. Serial.begin(9600);
  9. for (i = 0; i < LEN(leds); i++) {
  10. pinMode(leds[i], OUTPUT);
  11. digitalWrite(leds[i], 0);
  12. }
  13. }
  14.  
  15. void update_leds(int temp) {
  16. int i;
  17. static int old = 255;
  18.  
  19. if (temp != old) {
  20. //Serial.println("UPDATE LEDS");
  21. old = temp;
  22. for (i = 0; i < LEN(leds); i++) {
  23. if (temp & (1 << i))
  24. digitalWrite(leds[i], 255);
  25. else
  26. digitalWrite(leds[i], 0);
  27. }
  28. }
  29. }
  30.  
  31. int get_temp(void) {
  32. static int temp = 0;
  33. static unsigned long last_update = 0;
  34. unsigned long now;
  35.  
  36. now = millis();
  37.  
  38. if (!last_update || now - last_update > 10000) { /* every 10 s */
  39. //Serial.println("READ TEMP");
  40. temp = 5.0 * analogRead(0) * 100.0 / 1024.0;
  41. last_update = now;
  42. }
  43.  
  44. return temp;
  45. }
  46.  
  47. void loop(void) {
  48. static char cmd = '\0';
  49. char rbyte;
  50.  
  51. update_leds(get_temp());
  52.  
  53. if (Serial.available() > 0) {
  54. if ((rbyte = Serial.read()) == '\r') {
  55. if (cmd == 't') {
  56. Serial.println(get_temp());
  57. }
  58. cmd = '\0';
  59. } else {
  60. cmd = rbyte;
  61. }
  62. }
  63. }
Add Comment
Please, Sign In to add comment