Moduli Lora con Level Shifter per Arduino

Progetti Arduino
Renzo
Messaggi: 21
Iscritto il: lun 1 lug 2019, 10:06

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da Renzo »

In rete ho trovato questa discussione: https://github.com/sandeepmistry/arduin ... issues/363 dove si parla dell'utilizzo di condensatori. Il mio schema è a dir poco semplicistico, non ho considerato gli effetti dovuti all'assorbimento dei moduli, alla lunghezza delle piste, ho tralasciato degli aspetti molto importanti. A questo punto inserisco lo schema e chiedo consigli su come intervenire sullo schema, considerato che su rx ho un'alimentazione a 12 v. Grazie. :roll:
Allegati
1.jpg
1.jpg (183.32 KiB) Visto 2549 volte
Avatar utente
pgv
Messaggi: 484
Iscritto il: gio 17 set 2020, 13:16
Località: Ginevra

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da pgv »

Il modulino LoRa quando trasmette richiede 100 mA, e' possibile che a un certo punto questo causi una discesa dell'alimentazione sotto i livelli di brown-out con conseguente reset. Di solito per la stabilita' si consiglia di mettere 0.1 microFarad tra l'ingresso e terra (piu' vicino possibile all'LM317) e per limitare i transienti 1.0 microFarad all'uscita, ma se ci sono problemi alimentandoci microcontrollori e simili la "ricetta" e' di provare ad aggiungere capacita' sull'uscita perche' e' probabile che un transiente (un improvviso cambiamento di corrente richiesta) porti la tensione che arriva al circuito alimentato sotto il livello di brown-out (che e' una soglia magica, dipendente dal chip, sotto la quale il chip decide che la sua alimentazione non gli basta e va in reset). Che condensatori ci sono all'ingresso e all'uscita dell'LM317?
Renzo
Messaggi: 21
Iscritto il: lun 1 lug 2019, 10:06

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da Renzo »

Ciao, ho seguito le indicazioni del datasheet inserendo 100n in ingresso e 1u in uscita, tra l'altro ho dotato ogni convertitore di livello e l'ingresso di ciascun arduino di condensatori da 100n. Penso sia un problema legato alla gestione della memoria, arriva ad un punto in cui si freeza il ricevitore e devo resettarlo o addirittura togliere l'alimentazione per ripristinarlo. Dovrei provare a caricare uno degli esempi della libreria e vedere se tutto rimane stabile oppure, se è possibile , dedicare una parte di memoria per quel flusso di dati in arrivo e sovrascriverla di volta in volta?
Avatar utente
pgv
Messaggi: 484
Iscritto il: gio 17 set 2020, 13:16
Località: Ginevra

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da pgv »

Possiamo vedere il codice e annusarlo per cercare un possibile baco, o e' top secret e allora non insisto?
Renzo
Messaggi: 21
Iscritto il: lun 1 lug 2019, 10:06

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da Renzo »

No, ma che top secret :D Tra l'altro è più o meno uguale a quello che tu mi indicasti, poi comunque ho fatto diverse modifiche e non so quale è caricato al momento.
Ho notato che arriva a funzionare anche qualche ora e poi il led che ho collegato al posto del motore dc inizia a sfarfallare e iniziano a lampeggiare i led tx e L del micro del ricevitore. La cosa strana è che dopo aver tolto l'alimentazione, una volta riacceso il tutto, passa molto meno tempo prima che si ripresenti lo stesso problema (un minuto più o meno), come se ci fosse un qualcosa che mantiene memoria di quello che è accaduto prima che si verificasse il blocco. E' un peccato perchè ho creato dei circuiti stampati e dei case per contenere il tutto, se non fosse per questo problema andrebbe alla grande. Questo è il codice che poi ho modificato, non so nemmeno se è quello che è caricato sul ricevitore, ma comunque cambia poco in termini di comportamento. Guardando in rete ho trovato alcuni che riscontrano lo stesso problema, c'è chi imputa il problema al metodo Lora.endpacket, ma qui davvero non saprei come intervenire.

Tx.................................................................................
#define MOT 3
#define SERVOMOT 5
int val,val2;

#include <SPI.h>
#include <LoRa.h>
int pot = A0;
int pot2 = A1;
void setup() {
Serial.begin(9600);
pinMode(pot,INPUT);
pinMode(pot2,INPUT);

while (!Serial);
if (!LoRa.begin(433E6)) {
Serial.println("Starting LoRa failed!");
while (1);
}
}

void loop() {
int val = map(analogRead(pot),0,1024,0,255);
int val2 = map(analogRead(pot2),0,1024,0,255);
LoRa.beginPacket();
LoRa.print(val);
LoRa.print(" ");
LoRa.print(val2); //AGGIUNTO


Serial.print (val);
Serial.print (" ");
Serial.println (val2);

LoRa.endPacket();
delay(500);

}



RX
..........................................................................


void setup() {
servo.attach(SERVOMOT);
Serial.begin(9600);



while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) { // or 915E6
Serial.println("Starting LoRa failed!");
while (1);
}
}

void loop() {


int packetSize = LoRa.parsePacket();
if (packetSize) {

while (LoRa.available())
{

val = LoRa.parseInt();
val2 = LoRa.parseInt();
}


}

Serial.print(val);
Serial.print(" ");
Serial.println(val2);
analogWrite(MOT, val);
int angolo = map(val2, 0, 255, 0, 179);
servo.write(angolo);
delay(20);
}
Avatar utente
pgv
Messaggi: 484
Iscritto il: gio 17 set 2020, 13:16
Località: Ginevra

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da pgv »

Ho scaricato la libreria LoRa indicata qualche messaggio fa, e non mi sembra che abbia un metodo "print()", mentre ha un metodo "write()". E' vero che eredita da Stream, pero'...
Renzo
Messaggi: 21
Iscritto il: lun 1 lug 2019, 10:06

Re: Moduli Lora con Level Shifter per Arduino

Messaggio da Renzo »

A questo punto o provo a cambiare arduino e metterne uno più grande su rx oppure cambio moduli..Ho letto che potrebbe essere anche un problema di velocità dell'spi, anche se non credo sia un problema hardware comunque, dato che per un pò di tempo il suo lavoro lo fa.
Rispondi