Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define NUM_LEDS 4
- #include<SoftwareSerial.h>
- SoftwareSerial s(3, 1);
- #include "FastLED.h"
- #define PIN 13
- CRGB leds[NUM_LEDS];
- int red = 255;
- int green = 255;
- int blue = 255;
- int del = 100;
- int temp = 0;
- int buf = 0;
- int count = 1000;
- int enable=1;
- //Вспомогательные функции
- int asciiToInt (int ascii) {
- //АСКИ код нуля - 48
- return ascii - 48;
- }
- void checkChange () {
- if (Serial.available()>0) {
- enable=0;
- }
- }
- void setRedFromSerialPort () {
- int colorCode = 0;
- for (int i = 0; i <= 2; ++i) {
- colorCode = colorCode * 10 + asciiToInt(Serial.read());
- }
- red = colorCode;
- }
- void setGreenFromSerialPort () {
- int colorCode = 0;
- for (int i = 0; i <= 2; ++i) {
- colorCode = colorCode * 10 + asciiToInt(Serial.read());
- }
- green = colorCode;
- }
- void setBlueFromSerialPort () {
- int colorCode = 0;
- for (int i = 0; i <= 2; ++i) {
- colorCode = colorCode * 10 + asciiToInt(Serial.read());
- }
- blue = colorCode;
- }
- CRGB ledRGB (CRGB leds, int red, int green, int blue)
- {
- leds.r = red;
- leds.g = green;
- leds.b = blue;
- return leds;
- }
- void setup() {
- FastLED.addLeds<WS2811, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
- FastLED.setBrightness(50);
- pinMode(13, OUTPUT);
- Serial.begin(9600);
- }
- //Режим радуги
- //Режим какого-то определенного цвета
- void flaslight_mode_0 () {
- if (Serial.available() > 0) {
- setRedFromSerialPort();
- setGreenFromSerialPort();
- setBlueFromSerialPort();
- }
- for (int i = 0; i < NUM_LEDS; i++ ) {
- leds[i] = ledRGB(leds[i], red, green, blue);
- }
- FastLED.show();
- if (Serial.available() > 0) {
- Serial.println("Error");
- }
- delay (100);
- checkChange();
- }
- void flaslight_mode_1 () {
- if (Serial.available() > 0) {
- setRedFromSerialPort();
- setGreenFromSerialPort();
- setBlueFromSerialPort();
- }
- byte counter;
- for (int i = 0; i < NUM_LEDS; i++ ) {
- leds[i] = ledRGB(leds[i], red, green, blue);
- }
- FastLED.show();
- delay (del);
- for (int i = 0; i < NUM_LEDS; i++ ) {
- leds[i] = ledRGB(leds[i], 0, 0, 0);
- }
- FastLED.show();
- delay(del); // скорость движения радуги
- checkChange();
- }
- void loop() {
- if (Serial.available() > 0) {
- Serial.println(Serial.peek());
- buf = 0;
- for (int i = 0; i <= 2; ++i) {
- buf = buf * 10 + asciiToInt(Serial.read());
- }
- Serial.println(buf);
- Serial.println("Mode was changed");
- enable=1;
- }
- if (enable == 1) {
- switch (buf) {
- case 100:
- Serial.println("Mode 0");
- flaslight_mode_0();
- break;
- case 101:
- Serial.println("Mode 1");
- flaslight_mode_1();
- break;
- }
- }
- delay (100);
- }
Add Comment
Please, Sign In to add comment