ademosh

arduino3-20

May 3rd, 2020
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. #define NUM_LEDS 4
  2. #include<SoftwareSerial.h>
  3. SoftwareSerial s(3, 1);
  4. #include "FastLED.h"
  5. #define PIN 13
  6. CRGB leds[NUM_LEDS];
  7. int red = 255;
  8. int green = 255;
  9. int blue = 255;
  10. int del = 100;
  11. int temp = 0;
  12. int buf = 0;
  13. int count = 1000;
  14. int enable=1;
  15. //Вспомогательные функции
  16.  
  17. int asciiToInt (int ascii) {
  18. //АСКИ код нуля - 48
  19. return ascii - 48;
  20. }
  21.  
  22. void checkChange () {
  23. if (Serial.available()>0) {
  24. enable=0;
  25. }
  26. }
  27.  
  28. void setRedFromSerialPort () {
  29. int colorCode = 0;
  30. for (int i = 0; i <= 2; ++i) {
  31. colorCode = colorCode * 10 + asciiToInt(Serial.read());
  32. }
  33. red = colorCode;
  34. }
  35.  
  36. void setGreenFromSerialPort () {
  37. int colorCode = 0;
  38. for (int i = 0; i <= 2; ++i) {
  39. colorCode = colorCode * 10 + asciiToInt(Serial.read());
  40. }
  41. green = colorCode;
  42. }
  43.  
  44. void setBlueFromSerialPort () {
  45. int colorCode = 0;
  46. for (int i = 0; i <= 2; ++i) {
  47. colorCode = colorCode * 10 + asciiToInt(Serial.read());
  48. }
  49. blue = colorCode;
  50. }
  51.  
  52. CRGB ledRGB (CRGB leds, int red, int green, int blue)
  53. {
  54. leds.r = red;
  55. leds.g = green;
  56. leds.b = blue;
  57. return leds;
  58. }
  59. void setup() {
  60. FastLED.addLeds<WS2811, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  61. FastLED.setBrightness(50);
  62. pinMode(13, OUTPUT);
  63. Serial.begin(9600);
  64. }
  65. //Режим радуги
  66.  
  67.  
  68. //Режим какого-то определенного цвета
  69. void flaslight_mode_0 () {
  70. if (Serial.available() > 0) {
  71. setRedFromSerialPort();
  72. setGreenFromSerialPort();
  73. setBlueFromSerialPort();
  74. }
  75. for (int i = 0; i < NUM_LEDS; i++ ) {
  76. leds[i] = ledRGB(leds[i], red, green, blue);
  77. }
  78. FastLED.show();
  79. if (Serial.available() > 0) {
  80. Serial.println("Error");
  81. }
  82. delay (100);
  83. checkChange();
  84. }
  85.  
  86.  
  87. void flaslight_mode_1 () {
  88. if (Serial.available() > 0) {
  89. setRedFromSerialPort();
  90. setGreenFromSerialPort();
  91. setBlueFromSerialPort();
  92. }
  93. byte counter;
  94. for (int i = 0; i < NUM_LEDS; i++ ) {
  95. leds[i] = ledRGB(leds[i], red, green, blue);
  96. }
  97. FastLED.show();
  98. delay (del);
  99. for (int i = 0; i < NUM_LEDS; i++ ) {
  100. leds[i] = ledRGB(leds[i], 0, 0, 0);
  101. }
  102. FastLED.show();
  103. delay(del); // скорость движения радуги
  104. checkChange();
  105. }
  106.  
  107.  
  108.  
  109. void loop() {
  110.  
  111. if (Serial.available() > 0) {
  112. Serial.println(Serial.peek());
  113. buf = 0;
  114. for (int i = 0; i <= 2; ++i) {
  115. buf = buf * 10 + asciiToInt(Serial.read());
  116. }
  117. Serial.println(buf);
  118. Serial.println("Mode was changed");
  119. enable=1;
  120. }
  121. if (enable == 1) {
  122. switch (buf) {
  123. case 100:
  124. Serial.println("Mode 0");
  125. flaslight_mode_0();
  126. break;
  127. case 101:
  128. Serial.println("Mode 1");
  129. flaslight_mode_1();
  130. break;
  131. }
  132. }
  133. delay (100);
  134. }
Add Comment
Please, Sign In to add comment