starei utilizzando nrf24l01 per fare una macchinina telecomandata, e mi sto studiando la libreria di questo componente, per ora riesco a mandare un pacchetto (in questo caso controllare la velocita di un motore utilizzando un potenziometro) ma non riesco a capire come mandare piu pacchetti alla volta e che li manda ad ogni scopo, cioè.
}
e funziona ma perche sto controllando solo una cosa ora. Appena metto un led perche voglio che con un altro potenziometro invece controllo il fade del led; il ricevitore mi fa mandare tutto e non solo il led col suo relativo potenziometro.
in un primo momento pensavo che bastasse mettere nel:
if (radio.available()){ <----- dentro questa parentesi vuota, il nome int che avevo messo nel trasmettitore ovvero:
radio.write(&Motore_Avanti, sizeof(Motore_Avanti)); quindi di mettere dentro alla parentesi vuota il "Motore_Avanti".
Direi che il primo sbaglio è nel non aver postato il tuo codice completo (o almeno sufficientemente completo), e dentro al tag "code". Facci capire di cosa stai parlando, senza vedere quello che stai cercando di impostare o modificare non possiamo dire molto.
Buongiorno e benvenuto nella sezione Italiana del forum,
cortesemente, come prima cosa, leggi attentamente il REGOLAMENTO di detta sezione, (... e, per evitare future possibili discussioni/incomprensioni, prestando molta attenzione al punto 15), dopo di che, come da suddetto regolamento (punto 16.7), fai la tua presentazione NELL'APPOSITA DISCUSSIONE spiegando bene quali esperienze hai in elettronica e programmazione, affinché noi possiamo conoscere la tua esperienza ed esprimerci con termini adeguati.
Grazie,
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposita discussione, nel rispetto del succitato regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto.
Vorrei usarli per fare una macchinina RC, ma ora sto risontrando altri problemi, lo sketch (l'unico) che mi funzionava ora nel ricaricarlo, non mi funziona piu ovvero, il primo trasmette i dati, il secondo li riceve ma non li usa.
Posto qua entrambi i sketch Trasmettitore:
Faccendo altri tentativi invece, appena controllo la seriale sul trasmettitore per vedere se mi legge il potenziometro, me lo fa vedere, appena gli metto le stringhe in cui deve inviarlo, mi rimane fisso a -256 anche se muovo il joystick.
usando lo sketch di un tutorial in cui nel trasmettitore nel loop fa cambiare ogni 1 sec lo stato di una variabile da 0 a 1, l'altro lo riceve e fa illuminare il led, e non ci sono problemi.
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h> //Include CE and CSN pins respectively
RF24 radio(7, 8); //Create an address to identify the receiver
const byte address[6] = "00001";
void setup() {
Serial.begin(9600);
radio.begin();
radio.openWritingPipe(address); //set the adress
radio.setPALevel(RF24_PA_LOW);
radio.stopListening(); //Set that module as transmitter
}
void loop() {
delay(5);
int val = analogRead(A0); //Get the values from the potentiometer
int value = map(val, 520, 1024, 0, 250); //Convert these values from 0 to 180
//Print these values on the serial monitor
if (value > 30) {
radio.write(&value, sizeof(value)); //Send these values to the receiver
} else {
int value = 0;
radio.write(&value, sizeof(value));
}
}
Sketch Ricevitore:
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h> //Create an object for the RF library and enter the CE and CSN pins, respectively
RF24 radio(7, 8); //Create an object for the servo library
const byte address[6] = "00001";
int led = 3;
int led2 = 13;
void setup() {
//Begin the serial monitor and RF24 library
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_LOW);
radio.startListening();
pinMode(led, OUTPUT);
pinMode(led2, OUTPUT);
}
void loop() {
delay(5);
int value = 0;
int value2 = 0;
if (radio.available()) {
while (radio.available()) {
radio.read(&value, sizeof(value));
analogWrite(led, value);
}
}
}
Come richiesto al punto 7 del succitato regolamento, per favore edita il tuo post qui sopra (quindi NON scrivendo un nuovo post, ma utilizzando il bottone a forma di piccola matita che si trova in basso del tuo post), seleziona la parte di codice e premi l'icona <code/> nella barra degli strumenti per contrassegnarla come codice. Inoltre, così com'è, non è molto leggibile ... assicurati di averlo correttamente indentato nell'IDE prima di inserirlo (questo lo si fa premendo ctrlT su un PC o cmdT su un Mac, sempre all'interno del IDE).
Grazie,
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà sistemato il codice come indicato, nel rispetto del regolamento nessuno ti risponderà (eventuali risposte o tuoi ulteriori post, verrebbero temporaneamente nascosti), quindi ti consiglio di farla al più presto.
non riesco a capire cosa sia questo IDE e comunque ctrl + T mi aprirebbe una pagina google e no, non ho un mac nel caso in cui mi dirai di usare il cmd T
scusa non riesco a capire questa indentattura, riguardo invece al grado di "leggibilità" è quello che io riesco a fare, ho problemi a comunicare io grazie.
ciao, starei usando arduino 1.8.19 aziche questo "IDE Arduino" che è la prima volta che lo sento, allego anche immagine, quello di sinistra è quello ultimo che ho dovuto scaricare ora mentre quello di destra è quello che uso sempre
Anche quello di destra è l'IDE, solo la versione più vecchia che per ora è consigliabile continuare ad usare. Quindi li basta premere CTRL + T, o, indifferentemente, dal menu strumenti scegliere "formattazione automatica".
IDE sta per " Integrated Development Environment" ovvero "ambiente di sviluppo integrato" ed è quello che stai usando, indipendentemente dalla versione!
Se, come ti ho detto dall'inizio e come ti ha ripetuto Claudio_FF, tu apri il tuo programma nell'ambiente di sviluppo e, su Windows fai CTRL-T ti mette a posto l'indentatura delle varie righe.