Помогите с кодом
- Войдите на сайт для отправки комментариев
Пнд, 01/08/2016 - 21:25
Здравствуйте уважаемые форумчане, делаю интересный проект, и возникли проблемы и вопросы
вот сделал такой код
#define REMOTEXY_MODE__HC05_HARDSERIAL #include <RemoteXY.h> /* настройки соединения */ #define REMOTEXY_SERIAL Serial #define REMOTEXY_SERIAL_SPEED 9600 /* конфигурация интерфейса */ unsigned char RemoteXY_CONF[] = { 4,0,31,0,5,5,0,4,0,2 ,1,12,59,1,4,0,16,1,12,59 ,4,4,0,30,1,12,59,6,3,5 ,52,8,11,50,2 }; /* структура определяет все переменные вашего интерфейса управления */ struct { /* input variable */ signed char slider_1; /* =0..100 положение слайдера */ signed char slider_2; /* =0..100 положение слайдера */ signed char slider_3; /* =0..100 положение слайдера */ unsigned char select_1; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */ /* other variable */ unsigned char connect_flag; /* =1 if wire connected, else =0 */ } RemoteXY; ///////////////////////////////////////////// // END RemoteXY include // ///////////////////////////////////////////// #include "FastLED.h" #define DATA_PIN 3 #define NUM_LEDS 45 CRGB leds[NUM_LEDS]; #define pot1 A0 #define pot2 A1 #define pot3 A2 void setup() { RemoteXY_Init (); delay(2000); FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // пин с потенциометром - вход pinMode(pot1, INPUT); pinMode(pot2, INPUT); pinMode(pot3, INPUT); RemoteXY.slider_1 = 0; RemoteXY.slider_2 = 0; RemoteXY.slider_3 = 0; // TODO you setup code } void loop() { RemoteXY_Handler (); int X; int Y; int Z; if (RemoteXY.select_1==0) { /* текущее состояние A */ } else if (RemoteXY.select_1==1) { X= RemoteXY.slider_1*2.55; Y= RemoteXY.slider_2*2.55; Z= RemoteXY.slider_3*2.55; // TODO you loop code for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(X,Y,Z); FastLED.show(); // используйте структуру RemoteXY для передачи данных delay(1); /* текущее состояние B */ } else if (RemoteXY.select_1==2) { X = (analogRead(pot1) / 4) ; Y = (analogRead(pot2) / 4); Z = (analogRead(pot3) / 4) ; // выдаём результат на светодиод for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(X,Y,Z); FastLED.show(); /* текущее состояние C */ } else if (RemoteXY.select_1==3) { /* текущее состояние D */ for (int i = 0; i < NUM_LEDS; i++) leds[i] = CRGB(0,0,255); FastLED.show(); // используйте структуру RemoteXY для передачи данных delay(1); } // TODO you loop code // используйте структуру RemoteXY для передачи данных }
и возник такой вопрос: возможно ли менять положение переключателя при помощи кнопки (т.е. RemoteXY.select_1== число - положение переключателя)
и возникла проблема, при объединении с таким вот кодом (пример из библиотеки FASTled
получил вот такой код, подскажите, что я неправильно сделал при объединении
получил вот такой код, подскажите, что я неправильно сделал при объединении
Начнем:
1. Разберитесь с {}. LOOP должен заканчиваться на 140 строке. Что за "хвост" с 216?
получил вот такой код, подскажите, что я неправильно сделал при объединении
я два года тому единоличным указом запретил объединять скетчи.
там нужно, чтобы при различных положения переключателя выполняли различные функции, и я вас немного не понял, просто в примере loop открывается и закрывается
а затем идут другие void и вот мне нужно чтобы при определённом положении переключателя работали вот эти juggle bmp и другие, я пробовал менять скобки и так и не понял, как сделать, чтобы работал код
получил вот такой код, подскажите, что я неправильно сделал при объединении
я два года тому единоличным указом запретил объединять скетчи.
а как их тогда объединить?
а как их тогда объединить?
переспросишь после своей казни за нарушение моего указа.
а как их тогда объединить?
переспросишь после своей казни за нарушение моего указа.
тогда как добавить эти же функции в первоначальный код?
Вам же написали- лишняя фигурная скобка.
большое спасибо, а теперь второй вопрос возможно ли менять положение переключателя (допустим с пятью положениями) при помощи внешней кнопки, подключённой к аналоговому пину? ( переключатель имеется ввиду такойhttp://remotexy.com/ru/help/controls/select/)
удалено