Re: Moduli Lora con Level Shifter per Arduino
Inviato: ven 30 apr 2021, 12:40
Funziona in modo strano, il primo led si accende. Inserisco il codice che ho modificato, ma specifico fin da subito, se già non si fosse capito, che non sono esperto di programmazione, ma non sono proprio a 0. Mi viene il dubbio che sul canale di comunicazione si debba prima creare una stringa di 2 interi che racchiudano il valore del primo e del secondo potenziometro, dopodichè estrarre sullo sketch in ricezione 2 caratteri diversi dalla stringa ricevuta e trasformarli in interi per le uscite pwm.
--------------------------------------------------------------Tx
#include <SPI.h>
#include <LoRa.h>
int pot = A0;
int pot2 = A1; //AGGIUNTO
void setup() {
Serial.begin(9600);
pinMode(pot,INPUT);
pinMode(pot2,INPUT); //AGGIUNTO
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(433E6)) { // or 915E6, the MHz speed of yout module
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); //AGGIUNTO
LoRa.beginPacket();
LoRa.print(val);
LoRa.print(val2); //AGGIUNTO
LoRa.endPacket();
delay(50);
}
--------------------------------------------------------------------------------Rx
#include <SPI.h>
#include <LoRa.h>
int LED = 3;
int LED2 = 5; //AGGIUNTO
String inString = ""; // string to hold input
String inString2 = ""; //AGGIUNTO
int val = 0;
int val2 = 0; //AGGIUNTO
void setup() {
Serial.begin(9600);
pinMode(LED,OUTPUT);
pinMode(LED2,OUTPUT); //AGGIUNTO
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) { // or 915E6
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// read packet
while (LoRa.available())
{
int inChar = LoRa.read();
int inChar2 = LoRa.read(); //AGGIUNTO
inString += (char)inChar;
inString2 += (char)inChar2; //AGGIUNTO
val = inString.toInt();
val2 = inString2.toInt(); //AGGIUNTO
}
inString = "";
inString2 = ""; //AGGIUNTO
LoRa.packetRssi();
}
Serial.println(val);
Serial.println(val2); //AGGIUNTO
analogWrite(LED, val);
analogWrite(LED2, val2); //AGGIUNTO
}
--------------------------------------------------------------Tx
#include <SPI.h>
#include <LoRa.h>
int pot = A0;
int pot2 = A1; //AGGIUNTO
void setup() {
Serial.begin(9600);
pinMode(pot,INPUT);
pinMode(pot2,INPUT); //AGGIUNTO
while (!Serial);
Serial.println("LoRa Sender");
if (!LoRa.begin(433E6)) { // or 915E6, the MHz speed of yout module
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); //AGGIUNTO
LoRa.beginPacket();
LoRa.print(val);
LoRa.print(val2); //AGGIUNTO
LoRa.endPacket();
delay(50);
}
--------------------------------------------------------------------------------Rx
#include <SPI.h>
#include <LoRa.h>
int LED = 3;
int LED2 = 5; //AGGIUNTO
String inString = ""; // string to hold input
String inString2 = ""; //AGGIUNTO
int val = 0;
int val2 = 0; //AGGIUNTO
void setup() {
Serial.begin(9600);
pinMode(LED,OUTPUT);
pinMode(LED2,OUTPUT); //AGGIUNTO
while (!Serial);
Serial.println("LoRa Receiver");
if (!LoRa.begin(433E6)) { // or 915E6
Serial.println("Starting LoRa failed!");
while (1);
}
}
void loop() {
// try to parse packet
int packetSize = LoRa.parsePacket();
if (packetSize) {
// read packet
while (LoRa.available())
{
int inChar = LoRa.read();
int inChar2 = LoRa.read(); //AGGIUNTO
inString += (char)inChar;
inString2 += (char)inChar2; //AGGIUNTO
val = inString.toInt();
val2 = inString2.toInt(); //AGGIUNTO
}
inString = "";
inString2 = ""; //AGGIUNTO
LoRa.packetRssi();
}
Serial.println(val);
Serial.println(val2); //AGGIUNTO
analogWrite(LED, val);
analogWrite(LED2, val2); //AGGIUNTO
}