Hola,
He realizado una comunicación entre un nano y un arduino uno mediante dos nrf24l01 usando los siguientes codigos de emisor y receptor:
Emisor arduino uno:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const byte address[6] = "00001";
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate(RF24_250KBPS);
radio.stopListening();
}
void loop() {
const char text[] = "nrftest";
radio.write(&text, sizeof(text));
delay(2000);
}
Receptor arduino nano:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7,8);
const int buzzer = 2;
const byte address[6] = "00001";
void setup() {
// put your setup code here, to run once:
pinMode(buzzer, OUTPUT);
radio.begin();
radio.openReadingPipe(0,address);
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate(RF24_250KBPS);
radio.startListening();
}
void loop() {
char text[32] = "";
if (radio.available()) {
radio.read(&text, sizeof(text));
String transData = String(text);
if (transData == "nrftest") {
tone(buzzer, 1000);
delay(500);
noTone(buzzer);
}
}
}
Todo funciona bien. Ahora quiero cambiar el arduino nano por el nodemcu pero no si conecto bien los pines en el nodemcu.
Las conexiones que tengo en el nano y en el uno son:
CE--PIN 7
CSN--PIN 8
CSK--PIN 13
MO--PIN 11
MI-- PIN 12
y funciona todo bien
¿cual es la equivalencia de pines en el nodemcu?
Gracias un un saludo
Moderador:
Todos los temas que no sean de Arduinos pero que si usan el estilo arduino de programación van en microcontroladores.
Hilo movido.
nodemcu SPI en google y tenias la respuesta por tu cuenta.
Usa los de la derecha. Si te animas usa los de la izquierda con algun CS de la derecha, cuaquier pin menos los que tienen problemas al arrancar.
En el nodemcu hay que ser cuidadoso con los pines a usar.
Gracias por contestar Surbyte
He mantenido el arduino uno que hace de emisor y he hecho los siguientes cambios:
Las conexiones en el nodemcu son:
CE--D2
CSN--D8
CSK--D5
MO--D7
MI--D6
.
y el codigo del nodemcu que hace de recividor lo he cambiado asi:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(2,8);
const int buzzer = 1;
const byte address[6] = "00001";
void setup() {
Serial.begin(115200);
pinMode(buzzer, OUTPUT);
radio.begin();
radio.openReadingPipe(0,address);
radio.setPALevel(RF24_PA_MAX);
radio.setDataRate(RF24_250KBPS);
radio.startListening();
}
void loop() {
char text[32] = "";
if (radio.available()) {
radio.read(&text, sizeof(text));
String transData = String(text);
Serial.println(transData);
if (transData == "nrftest") {
tone(buzzer, 1000);
delay(500);
noTone(buzzer);
}
}
}
el monitor serial tambien lo pongo a 115200baudios y no me sale el mensaje que envio sino que me sale:
21:00:16.560 ->
21:00:16.560 -> ets Jan 8 2013,rst cause:4, boot mode:(3,6)
21:00:16.560 ->
21:00:16.560 -> wdt reset
21:00:16.560 -> load 0x4010f000, len 3460, room 16
21:00:16.560 -> tail 4
21:00:16.560 -> chksum 0xcc
21:00:16.560 -> load 0x3fff20b8, len 40, room 4
21:00:16.560 -> tail 4
21:00:16.560 -> chksum 0xc9
21:00:16.560 -> csum 0xc9
21:00:16.560 -> v00043350
21:00:16.560 -> ~ld
21:00:16.607 ->
¿Que puede estar mal?¿Las conexiones y el codigo esta bien?
Gracias
system
Closed
July 5, 2022, 8:01pm
4
This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.