메가 2560 R3 호환보드와 nRF24L01모듈을 연결하고,
스케치 업로드시 아래와 같은 진행 결과로 오류가 지속적으로 발생합니다.
#include <SPI.h>
#include "printf.h"
#include "RF24.h"
// instantiate an object for the nRF24L01 transceiver
RF24 radio(7, 8); // using pin 7 for the CE pin, and pin 8 for the CSN pin
// Let these addresses be used for the pair
uint8_t address[][6] = {"1Node", "2Node"};
// It is very helpful to think of an address as a path instead of as
// an identifying device destination
// to use different addresses on a pair of radios, we need a variable to
// uniquely identify which address this radio will use to transmit
bool radioNumber = 1; // 0 uses address[0] to transmit, 1 uses address[1] to transmit
// Used to control whether this node is sending or receiving
bool role = false; // true = TX role, false = RX role
// For this example, we'll be using a payload containing
// a single float number that will be incremented
// on every successful transmission
float payload = 0.0;
void setup() {
Serial.begin(115200);
while (!Serial) {
// some boards need to wait to ensure access to serial over USB
}
// initialize the transceiver on the SPI bus
if (!radio.begin()) {
Serial.println(F("radio hardware is not responding!!"));
while (1) {} // hold in infinite loop
}
// print example's introductory prompt
Serial.println(F("RF24/examples/GettingStarted"));
// To set the radioNumber via the Serial monitor on startup
Serial.println(F("Which radio is this? Enter '0' or '1'. Defaults to '0'"));
while (!Serial.available()) {
// wait for user input
}
char input = Serial.parseInt();
radioNumber = input == 1;
Serial.print(F("radioNumber = "));
Serial.println((int)radioNumber);
// role variable is hardcoded to RX behavior, inform the user of this
Serial.println(F("*** PRESS 'T' to begin transmitting to the other node"));
// Set the PA Level low to try preventing power supply related problems
// because these examples are likely run with nodes in close proximity to
// each other.
radio.setPALevel(RF24_PA_LOW); // RF24_PA_MAX is default.
// save on transmission time by setting the radio to only transmit the
// number of bytes we need to transmit a float
radio.setPayloadSize(sizeof(payload)); // float datatype occupies 4 bytes
// set the TX address of the RX node into the TX pipe
radio.openWritingPipe(address[radioNumber]); // always uses pipe 0
// set the RX address of the TX node into a RX pipe
radio.openReadingPipe(1, address[!radioNumber]); // using pipe 1
// additional setup specific to the node's role
if (role) {
radio.stopListening(); // put radio in TX mode
} else {
radio.startListening(); // put radio in RX mode
}
// For debugging info
// printf_begin(); // needed only once for printing details
// radio.printDetails(); // (smaller) function that prints raw register values
// radio.printPrettyDetails(); // (larger) function that prints human readable data
} // setup
void loop() {
if (role) {
// This device is a TX node
unsigned long start_timer = micros(); // start the timer
bool report = radio.write(&payload, sizeof(float)); // transmit & save the report
unsigned long end_timer = micros(); // end the timer
if (report) {
Serial.print(F("Transmission successful! ")); // payload was delivered
Serial.print(F("Time to transmit = "));
Serial.print(end_timer - start_timer); // print the timer result
Serial.print(F(" us. Sent: "));
Serial.println(payload); // print payload sent
payload += 0.01; // increment float payload
} else {
Serial.println(F("Transmission failed or timed out")); // payload was not delivered
}
// to make this example readable in the serial monitor
delay(1000); // slow transmissions down by 1 second
} else {
// This device is a RX node
uint8_t pipe;
if (radio.available(&pipe)) { // is there a payload? get the pipe number that recieved it
uint8_t bytes = radio.getPayloadSize(); // get the size of the payload
radio.read(&payload, bytes); // fetch payload from FIFO
Serial.print(F("Received "));
Serial.print(bytes); // print the size of the payload
Serial.print(F(" bytes on pipe "));
Serial.print(pipe); // print the pipe number
Serial.print(F(": "));
Serial.println(payload); // print the payload's value
}
} // role
if (Serial.available()) {
// change the role via the serial monitor
char c = toupper(Serial.read());
if (c == 'T' && !role) {
// Become the TX node
role = true;
Serial.println(F("*** CHANGING TO TRANSMIT ROLE -- PRESS 'R' TO SWITCH BACK"));
radio.stopListening();
} else if (c == 'R' && role) {
// Become the RX node
role = false;
Serial.println(F("*** CHANGING TO RECEIVE ROLE -- PRESS 'T' TO SWITCH BACK"));
radio.startListening();
}
}
} // loop
====================================================================================================================
-업로드시 진행및 오류메시지-
아두이노:1.8.19 (Windows 10), 보드:"Arduino Mega or Mega 2560, ATmega2560 (Mega 2560)"
C:Program Files (x86)Arduinoarduino-builder -dump-prefs -logger=machine -hardware C:Program Files (x86)Arduinohardware -tools C:Program Files (x86)Arduinotools-builder -tools C:Program Files (x86)Arduinohardwaretoolsavr -built-in-libraries C:Program Files (x86)Arduinolibraries -libraries C:Users김민재DocumentsArduinolibraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=2341_0042 -ide-version=10819 -build-path C:Users김민재AppDataLocalTemparduino_build_837613 -warnings=none -build-cache C:Users김민재AppDataLocalTemparduino_cache_591744 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avr-gcc.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.arduinoOTA.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:Program Files (x86)Arduinohardwaretoolsavr -verbose C:Users김민재DocumentsArduinolibrariesRF24examplesGettingStartedGettingStarted.ino
C:Program Files (x86)Arduinoarduino-builder -compile -logger=machine -hardware C:Program Files (x86)Arduinohardware -tools C:Program Files (x86)Arduinotools-builder -tools C:Program Files (x86)Arduinohardwaretoolsavr -built-in-libraries C:Program Files (x86)Arduinolibraries -libraries C:Users김민재DocumentsArduinolibraries -fqbn=arduino:avr:mega:cpu=atmega2560 -vid-pid=2341_0042 -ide-version=10819 -build-path C:Users김민재AppDataLocalTemparduino_build_837613 -warnings=none -build-cache C:Users김민재AppDataLocalTemparduino_cache_591744 -prefs=build.warn_data_percentage=75 -prefs=runtime.tools.avrdude.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avrdude-6.3.0-arduino17.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avr-gcc.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.avr-gcc-7.3.0-atmel3.6.1-arduino7.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.arduinoOTA.path=C:Program Files (x86)Arduinohardwaretoolsavr -prefs=runtime.tools.arduinoOTA-1.3.0.path=C:Program Files (x86)Arduinohardwaretoolsavr -verbose C:Users김민재DocumentsArduinolibrariesRF24examplesGettingStartedGettingStarted.ino
Using board 'mega' from platform in folder: C:Program Files (x86)Arduinohardwarearduinoavr
Using core 'arduino' from platform in folder: C:Program Files (x86)Arduinohardwarearduinoavr
Detecting libraries used...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp" -o nul
Alternatives for SPI.h: [SPI@1.0]
ResolveLibrary(SPI.h)
-> candidates: [SPI@1.0]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp" -o nul
Alternatives for printf.h: [RF24@1.4.2]
ResolveLibrary(printf.h)
-> candidates: [RF24@1.4.2]
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src\SPI.cpp" -o nul
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24\utility" "C:\Users\김민재\Documents\Arduino\libraries\RF24\RF24.cpp" -o nul
Generating function prototypes...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -flto -w -x c++ -E -CC -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp" -o "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\preproc\ctags_target_for_gcc_minus_e.cpp"
"C:\Program Files (x86)\Arduino\tools-builder\ctags\5.8-arduino11/ctags" -u --language-force=c++ -f - --c++-kinds=svpf --fields=KSTtzns --line-directives "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\preproc\ctags_target_for_gcc_minus_e.cpp"
스케치를 컴파일 중…
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp" -o "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp.o"
Compiling libraries...
Compiling library "SPI"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "C:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src\SPI.cpp" -o "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\libraries\SPI\SPI.cpp.o"
Compiling library "RF24"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-g++" -c -g -Os -w -std=gnu++11 -fpermissive -fno-exceptions -ffunction-sections -fdata-sections -fno-threadsafe-statics -Wno-error=narrowing -MMD -flto -mmcu=atmega2560 -DF_CPU=16000000L -DARDUINO=10819 -DARDUINO_AVR_MEGA2560 -DARDUINO_ARCH_AVR "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\variants\mega" "-IC:\Program Files (x86)\Arduino\hardware\arduino\avr\libraries\SPI\src" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24" "-IC:\Users\김민재\Documents\Arduino\libraries\RF24\utility" "C:\Users\김민재\Documents\Arduino\libraries\RF24\RF24.cpp" -o "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\libraries\RF24\RF24.cpp.o"
Compiling core...
Using precompiled core: C:Users김민재AppDataLocalTemparduino_cache_591744corecore_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a
Linking everything together...
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-gcc" -w -Os -g -flto -fuse-linker-plugin -Wl,--gc-sections -mmcu=atmega2560 -o "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.elf" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\sketch\GettingStarted.ino.cpp.o" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\libraries\SPI\SPI.cpp.o" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613\libraries\RF24\RF24.cpp.o" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/..\arduino_cache_591744\core\core_arduino_avr_mega_cpu_atmega2560_0c812875ac70eb4a9b385d8fb077f54c.a" "-LC:\Users\김민재\AppData\Local\Temp\arduino_build_837613" -lm
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -j .eeprom --set-section-flags=.eeprom=alloc,load --no-change-warnings --change-section-lma .eeprom=0 "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.elf" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.eep"
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-objcopy" -O ihex -R .eeprom "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.elf" "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.hex"
라이브러리 SPI를 버전 1.0 폴더: C:Program Files (x86)ArduinohardwarearduinoavrlibrariesSPI 에서 사용
라이브러리 RF24를 버전 1.4.2 폴더: C:Users김민재DocumentsArduinolibrariesRF24 에서 사용
"C:\Program Files (x86)\Arduino\hardware\tools\avr/bin/avr-size" -A "C:\Users\김민재\AppData\Local\Temp\arduino_build_837613/GettingStarted.ino.elf"
스케치는 프로그램 저장 공간 7278 바이트(2%)를 사용. 최대 253952 바이트.
전역 변수는 동적 메모리 251바이트(3%)를 사용, 7941바이트의 지역변수가 남음. 최대는 8192 바이트.
C:Program Files (x86)Arduinohardwaretoolsavr/bin/avrdude -CC:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf -v -patmega2560 -cwiring -PCOM11 -b115200 -D -Uflash:w:C:Users김민재AppDataLocalTemparduino_build_837613/GettingStarted.ino.hex:i
avrdude: Version 6.3-20190619
Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
Copyright (c) 2007-2014 Joerg Wunsch
System wide configuration file is "C:Program Files (x86)Arduinohardwaretoolsavr/etc/avrdude.conf"
Using Port : COM11
Using Programmer : wiring
Overriding Baud Rate : 115200
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_ReceiveMessage(): timeout
avrdude: stk500v2_getsync(): timeout communicating with programmer
avrdude done. Thank you.
스케치를 업로드 하는 동안 에러가 발생하였습니다.
보드가 혹시 다른센서라던지 예제사용이 불가능한가요? 가능하시면 보드를 바꿔서 다른걸로 테스트해서 한번비교해보셔야할것같습니다.
결선은 정확하진 않지만 맞게 잘하신것 같네요.