Пожалуйсто помогите разобратся с ошибкой
- Войдите на сайт для отправки комментариев
Ср, 25/04/2018 - 00:20
Ребят хотел создать програму для радиоуправляемой машинки
но програма при проверке кода выдает следущую ошибку
Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:12:11: error: redefinition of 'RF24 radio'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:12:6: note: 'RF24 radio' previously declared here
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:15:17: error: redefinition of 'byte address [][6]'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:14:6: note: 'byte address [6][6]' previously defined here
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:21:21: error: conflicting declaration 'byte transmit_data [3]'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:25:6: note: previous declaration as 'byte transmit_data [6]'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:22:19: error: conflicting declaration 'byte latest_data [3]'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:26:6: note: previous declaration as 'byte latest_data [6]'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:23:9: error: redefinition of 'boolean flag'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:27:9: note: 'boolean flag' previously declared here
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino: In function 'void setup()':
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:25:6: error: redefinition of 'void setup()'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:29:6: note: 'void setup()' previously defined here
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino: In function 'void loop()':
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX - копия.ino:48:6: error: redefinition of 'void loop()'
C:\Users\дети\Desktop\Проукт дуино\Projects\3 канальное управление\TX\TX.ino:55:6: note: 'void loop()' previously defined here
exit status 1
Ошибка компиляции для платы Arduino/Genuino Uno.
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Вот мой код для радиомодуля NRF24L01 который является передтчиком
/* Данный скетч делает следующее: передатчик (TX) отправляет массив
данных, который генерируется согласно показаниям с кнопки и с
двух потенциомтеров. Приёмник (RX) получает массив, и записывает
данные на реле, сервомашинку и генерирует ШИМ сигнал на транзистор.
*/
#include <SPI.h>
#include "nRF24L01.h"
#include "RF24.h"
#define CE_PIN 9 // Подключаем пин D9 Ардуино UNO к выходу CE модуля NRF24L01
#define CSN_PIN 10 // Подключаем пин D10 Ардуино UNO к выходу CSN модуля NRF24L01
RF24 radio(CE_PIN, CSN_PIN); // "создать" модуль на пинах 9 и 10 Для Уно
//RF24 radio(9,53); // для Меги
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
byte JOYSTICK_X = A1; // Ось X джойстика
//byte JOYSTICK_Y; A0 // Ось Y джойстика
byte buttonA = 2; // кнопка на 2 цифровом
byte buttonB = 3; // кнопка на 3 цифровом
byte buttonC = 4; // кнопка на 4 цифровом
byte buttonD = 5; // кнопка на 5 цифровом
//byte buttonE = 6; // кнопка на 6 цифровом
//byte buttonF = 7; // кнопка на 7 цифровом
byte transmit_data[6]; // массив, хранящий передаваемые данные
byte latest_data[6]; // массив, хранящий последние переданные данные
boolean flag; // флажок отправки данных
void setup() {
Serial.begin(9600); //открываем порт для связи с ПК
pinMode(buttonA, INPUT_PULLUP); // настроить пин кнопки A
pinMode(buttonB, INPUT_PULLUP); // настроить пин кнопки B
pinMode(buttonC, INPUT_PULLUP); // настроить пин кнопки C
pinMode(buttonD, INPUT_PULLUP); // настроить пин кнопки D
radio.begin(); //активировать модуль
radio.setAutoAck(1); //режим подтверждения приёма, 1 вкл 0 выкл
radio.setRetries(0, 15); //(время между попыткой достучаться, число попыток)
radio.enableAckPayload(); //разрешить отсылку данных в ответ на входящий сигнал
radio.setPayloadSize(32); //размер пакета, в байтах
radio.openWritingPipe(address[0]); //мы - труба 0, открываем канал для передачи данных
radio.setChannel(0x60); //выбираем канал (в котором нет шумов!)
radio.setPALevel (RF24_PA_MAX); //уровень мощности передатчика. На выбор RF24_PA_MIN, RF24_PA_LOW, RF24_PA_HIGH, RF24_PA_MAX
radio.setDataRate (RF24_250KBPS); //скорость обмена. На выбор RF24_2MBPS, RF24_1MBPS, RF24_250KBPS
//должна быть одинакова на приёмнике и передатчике!
//при самой низкой скорости имеем самую высокую чувствительность и дальность!!
radio.powerUp(); //начать работу
radio.stopListening(); //не слушаем радиоэфир, мы передатчик
}
void loop() {
transmit_data[0] = digitalRead(buttonA); // Считываем значение кнопки A и записываем в массив transmit_data.
transmit_data[1] = digitalRead(buttonB); // Считываем значение кнопки B и записываем в массив transmit_data.
transmit_data[2] = digitalRead(buttonC); // Считываем значение кнопки C и записываем в массив transmit_data.
transmit_data[3] = digitalRead(buttonD); // Считываем значение кнопки D и записываем в массив transmit_data.
transmit_data[4] = analogRead(JOYSTICK_X); // Считываем значение оси X джойстика и записываем в массив transmit_data.
for (int i = 0; i < 6; i++) { // в цикле от 0 до числа каналов
if (transmit_data[i] != latest_data[i]) { // если есть изменения в transmit_data
flag = 1; // поднять флаг отправки по радио
latest_data[i] = transmit_data[i]; // запомнить последнее изменение
}
}
if (flag == 1) {
radio.powerUp(); // включить передатчик
radio.write(&transmit_data, sizeof(transmit_data)); // отправить по радио
flag = 0; //опустить флаг
radio.powerDown(); // выключить передатчик
}
}
Изучите: http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Достаточно byte address[6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные номера труб
хотел создать програму для радиоуправляемой машинки
Создать или стянуть в сети готовую?
И кстати, в таком виде код никто читать не будет, вставь нормально.
Вставьте правильно код, сколько раз повторять надо...
http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
Так вам смогут указать в какой строке у вас ошибка.
Приходя на форум надо не бросаться изливать свои проблемы, а сначала почитать его, познакомится с правилами. Свой код, например, надо вставлять в сообщение как написано здесь: Вставка программного кода в тему/комментарий Вопли капсом тоже неуместны.
По Вашей проблеме. Хоть в приведённых кракозябрах фиг разберёшься, но кажется мне, что Вы в одну папку свалили два скетча, очевидно для приёмника и передатчика. Вот система и пытается это скомпилировать как один проект и ругается на одинаковые переменные и т.п. Для каждого скетча Arduino IDE при сохранении создаёт свою папку. Сохраните Ваши скетчи как положено, по отдельности.
ну хоть протрезвел, наконец-то.
Arduino: 1.8.5 (Windows 7), Плата:"Arduino/Genuino Uno"
C:\Users\F3AB~1\AppData\Local\Temp\arduino_modified_sketch_412632\sketch_apr25b.ino: In function 'void setup()':
sketch_apr25b:46: error: invalid types 'const uint64_t {aka const long long unsigned int}[int]' for array subscript
radio.openWritingPipe(pipe[0]); //мы - труба 0, открываем канал для передачи данных
^
Несколько библиотек найдено для "nRF24L01.h"
Используется: C:\Users\дети\Documents\Arduino\libraries\RF24-master
Не используется: C:\Program Files\Arduino\libraries\RF24-master
Не используется: C:\Program Files\Arduino\libraries\RF24-master
Не используется: C:\Program Files\Arduino\libraries\RF24-master
Не используется: C:\Program Files\Arduino\libraries\RF24-master
exit status 1
invalid types 'const uint64_t {aka const long long unsigned int}[int]' for array subscript
Этот отчёт будет иметь больше информации с
включенной опцией Файл -> Настройки ->
"Показать подробный вывод во время компиляции"
Похоже, у вас установлено несколько похожих библиотек, удалите лишние. И возможно, стоит использовать папки у которых нет кирилицы(русских букв) в названии подпапок. И в некоторых старых версиях IDE нужно удалять слово "-master" из названия и внутри самого архива.
У Вас pipe не массив. Просто openWritingPipe(pipe)