Здраствуйте, хотел сделать управление чем то с помощью джостика, написал скетч, по примеру из интернета, но выдаёт ошибку, помогите пожалуйста. скетч для пульта/НАНО /* передатчик на нано */ #include <VirtualWire.h> int switchPin = 8; boolean lastButton = LOW; boolean currentButton = LOW; int check = 0; void setup() { pinMode(switchPin, INPUT); // Initialize the IO and ISR vw_setup(2000); // Bits per sec } boolean debounce(boolean last) { boolean current = digitalRead(switchPin); if (last != current) { delay(5); current = digitalRead(switchPin); } return current; } void loop() { int axis_X = analogRead(1); int axis_Y = analogRead(2); if (axis_X < 450) { send ("L"); delay (100); } if (axis_X > 550) { send ("R"); delay(100); } if (axis_Y < 450){ send ("N"); delay(100); } if (axis_Y > 550){ send ("V"); delay(100); } if (axis_X > 450 && axis_X < 550){ send ("Z"); delay(100);} if (axis_Y >450 && axis_Y < 550) { send ("X"); delay(100);} } void send (char *message) { vw_send((uint8_t *)message, strlen(message)); vw_wait_tx(); // Wait until the whole message is gone } приемник на УНО // приёмник на уно #include <VirtualWire.h> #define L 7 #define R 8 #define N 9 #define V 10 byte message[VW_MAX_MESSAGE_LEN]; // a buffer to store the incoming messages byte messageLength = VW_MAX_MESSAGE_LEN; // the size of the message int relayPin = 13; void setup() { pinMode (L, OUTPUT); pinMode (R, OUTPUT); pinMode (N, OUTPUT); pinMode (V, OUTPUT); Serial.begin(9600); Serial.println("Device is ready"); // Initialize the IO and ISR vw_setup(2000); // Bits per sec vw_rx_start(); // Start the receiver } void loop() { if (vw_get_message(message, &messageLength)) // Non-blocking { Serial.print("Received: "); for (int i = 0; i < messageLength; i++) { char c = message; Serial.print(c); char L = 'L'; if(c == L) { digitalWrite(L, HIGH); } char R = 'R'; if(c == R) { digitalWrite(R, HIGH); } char N = 'N'; if(c == N){ digitalWrite(N, HIGH);} char V = 'V'; if (c == V) { digitalWrite(V,HIGH);} char Z = 'Z'; if (c == Z) { digitalWrite(L,LOW); digitalWrite(R,LOW);} char X = 'X'; if (c == X) { digitalWrite(N,LOW); digitalWrite(V,LOW);} } Serial.println(); } } Ошибка в коде для уно, пишет вот это: This report would have more information with "Show verbose output during compilation" enabled in File > Preferences. Arduino: 1.0.6 (Windows 7), Board: "Arduino Nano w/ ATmega328" receiver.pde: In function 'void loop()': receiver:38: error: expected unqualified-id before numeric constant receiver:43: error: expected unqualified-id before numeric constant receiver:48: error: expected unqualified-id before numeric constant receiver:51: error: expected unqualified-id before numeric constant
может нужно будет, пример взял отсюда http://smart-home.te.ua/podklyuchen...yemnyka-besprovodnoe-upravlenye-rele/?lang=ru
В начале #define L 7 #define R 8 #define N 9 #define V 10 Ошибочные строки: char L = 'L'; char R = 'R'; char N = 'N'; char V = 'V'; Абсолютно логичным образом препроцессор перед компиляцией, обрабатывая макроподстановки, превращает это дело в char 7 = 'L'; char 8 = 'R'; char 9 = 'N'; char 10 = 'V'; Что столь же совершенно логичным образом неверно и соответствует тексту на чистом англицком, поясняющем суть ошибки "expected unqualified-id before numeric constant", т.е. ожидается идентификатор перед числовой константой, ибо, как мы видим в данном конкретном случае объявляемая переменная представляет из себя числовую константу, что с точки зрения языка С (да и C++ тоже) недопустимо.