Salve, sto realizzando un razzo con arduino: il progetto prevede che sul razzo siano montati un arduino nano every con un nrf24 (che serve per ricevere un comando che proviene da una unità di terra e che comanda un servo) e un mpu6050 che serve per controllare un thrust vector mount per direzionare la spinta del motore. Sto avendo diversi progetti nel realizzare il progetto perché provando a caricare un programma sulla scheda che esclude uno dei due componenti il programma funziona, ma provando a caricare un programma che dovrebbe permettere di farli funzionare insieme, il prototipo si blocca e non funziona niente. Come posso risolvere?
Buongiorno e benvenuto, ![]()
essendo il tuo primo post, nel rispetto del regolamento della sezione Italiana del forum (… punto 13, primo capoverso), ti chiedo cortesemente di presentarti IN QUESTO THREAD (spiegando bene quali conoscenze hai di elettronica e di programmazione ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con molta attenzione tutto il succitato REGOLAMENTO ... Grazie. ![]()
Guglielmo
P.S.: Ti ricordo che, purtroppo, fino a quando non sarà fatta la presentazione nell’apposito thread, nel rispetto del suddetto regolamento nessuno ti risponderà, quindi ti consiglio di farla al più presto.
... dato che noi non abbiamo la palla di vetro
... per prima cosa occorre sicuramente che pubblichi il codice che non ti funziona così cerchiamo di capire il perché ![]()
Mi raccomando, come da REGOLAMENTO, prima di inserire il codice assicurati di averlo correttamente indentato nell'IDE (questo lo si fa premendo ctrlT su un PC o cmd T su un Mac all'intero del IDE) quando lo inserisci nel post devi selezionarlo tutto e premere l'icona </> nella barra degli strumenti per contrassegnarlo come codice. Grazie.
Guglielmo
Questo è il codice della ricevente
#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#include <Servo.h>
#include <MPU6050_light.h>
#include<Wire.h>
Servo servoParachute;
Servo servo1;
Servo servo2;
MPU6050 mpu(Wire);
RF24 radio(7, 8); // CE, CSN
const byte addresses [][6] = {"00001", "00002"};
float x, y, z;
unsigned long timer = 0;
int bt = 0;
void setup() {
servoParachute.attach(9);
servo1.attach(5);
servo2.attach(6);
radio.begin();
radio.openReadingPipe(1, addresses[1]);
radio.setPALevel(RF24_PA_MIN);
Serial.begin(9600);
byte status = mpu.begin();
mpu.calcOffsets();
}
void loop() {
delay(5);
radio.startListening();
if (radio.available()) {
while (radio.available()) {
radio.read(&bt, sizeof(bt));
servoParachute.write(bt);
}
delay(5);
radio.stopListening();
}
if ((millis() - timer) > 10) {
x = mpu.getAngleX();
y = mpu.getAngleY();
z = mpu.getAngleZ();
servo1.write(x + 5);
servo2.write(y + 5);
if (x >= 45) {
bt = 180;
}
if (y >= 45) {
bt = 180;
}
timer = millis();
}
}**testo in grassetto**
Questo è il codice della trasmittente
#include <nRF24L01.h>
#include <printf.h>
#include <RF24.h>
#include <RF24_config.h>
#include<SPI.h>
RF24 radio(7, 8); //CE, CSN
const byte addresses[][6] = {"00001", "00002"};
void setup() {
radio.begin();
radio.openWritingPipe(addresses[1]);
radio.openReadingPipe(1, addresses[0]);
radio.setPALevel(RF24_PA_MIN);
pinMode(4, INPUT);
}
void loop() {
delay(5);
radio.stopListening();
int bt = 0;
if (digitalRead(4) == HIGH) {
bt = bt + 180;
}
radio.write(&bt, sizeof(bt));
delay(5);
radio.startListening();
while (!radio.available());
}
This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.