Пульт с радиопередатчиком...нужна помощь

Тема в разделе "Arduino & Shields", создана пользователем Nigga, 20 мар 2015.

  1. Nigga

    Nigga Нуб

    Здраствуйте, хотел сделать управление чем то с помощью джостика, написал скетч, по примеру из интернета, но выдаёт ошибку, помогите пожалуйста.
    скетч для пульта/НАНО

    /* передатчик на нано */
    #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
     
  2. Nigga

    Nigga Нуб

  3. geher

    geher Гуру

    В начале
    #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++ тоже) недопустимо.
     
    vvr и Megakoteyka нравится это.
  4. Nigga

    Nigga Нуб

    спасибо!