Guest User

Untitled

a guest
Nov 15th, 2018
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.24 KB | None | 0 0
  1. int frame_size = 300;
  2. long int total = 0;
  3.  
  4. const int NUMBER_OF_LEDS = 6;
  5. int leds[NUMBER_OF_LEDS] = {7, 6, 5, 4, 3, 2};
  6.  
  7. int thresholds[NUMBER_OF_LEDS] = {5, 10, 15, 20, 25, 30};
  8.  
  9. void setup() {
  10. Serial.begin(9600);
  11.  
  12. for (int i = 0; i < NUMBER_OF_LEDS; i++) {
  13. pinMode(leds[i], OUTPUT);
  14. }
  15. }
  16.  
  17.  
  18. void loop() {
  19. int volume = analogRead(A0);
  20.  
  21. long int average = total / frame_size;
  22.  
  23. int current_threshold = 0;
  24. while (current_threshold < NUMBER_OF_LEDS && average > thresholds[current_threshold]) {
  25. current_threshold++;
  26. }
  27. show_leds(current_threshold);
  28.  
  29. total = total - average / 2;
  30. total = total + volume;
  31.  
  32. Serial.println(average);
  33. }
  34.  
  35. void show_leds(int number) {
  36. for (int i = 0; i < number; i++) {
  37. digitalWrite(leds[i], HIGH);
  38. }
  39. for (int i = number; i < NUMBER_OF_LEDS; i++) {
  40. digitalWrite(leds[i], LOW);
  41. }
  42. }
  43.  
  44. void run_led(int delay_ms) {
  45. for (int i = 0; i < 6; i++) {
  46. digitalWrite(leds[i], HIGH);
  47. delay(delay_ms);
  48. digitalWrite(leds[i], LOW);
  49. }
  50. }
  51.  
  52. void top_up(int delay_ms) {
  53. disable_all();
  54. delay(delay_ms);
  55.  
  56. for (int i = 0; i < 6; i++) {
  57. digitalWrite(i, HIGH);
  58. delay(delay_ms);
  59. }
  60. }
  61.  
  62. void disable_all() {
  63. for (int i = 0; i < NUMBER_OF_LEDS; i++) {
  64. digitalWrite(leds[i], LOW);
  65. }
  66. }
Add Comment
Please, Sign In to add comment