Ciao a tutti ragazzi =D
Sono in crisi da una settimana con la comunicazione seriale tramite i moduli wireless RF433Mhz e la libreria RCSwitch.
Vorrei creare uno Sketch per il trasmettitore e uno per il ricevitore in modo tale da comandare tramite un Joystick o tramite dei pulsanti 2 motori DC e un Servomotore.
In rete ho trovato uno Sketch per il trasmettitore e il ricevitore il cui scopo è quello di far muovere 2 motori DC tramite un pulsante.
Poi tramite le mie conoscenze ho creato uno Sketch a parte per il funzionamento di un servomotore tramite un JoyStick... Ora nasce il problema di come fare per integrarli fra loro per ottenere su una scheda il JoyStick e il pulsante che gestisce rispettivamente il servo e i motori e dall'altro uno Sketch la cui scheda riceve gli INPUT e fa muovere il Servo e i Motori.
Allego gli sketch .... spero qualcuno riesca ad aiutarmi nella compilazione del codice
Sketch TX:
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
const int pulsante = 2;
int statoPulsante = 0;
void setup() {
// put your setup code here, to run once:
pinMode (pulsante, INPUT);
digitalWrite (pulsante, 1);
Serial.begin (9600);
mySwitch.enableTransmit (10);
delay (50);
}
void loop() {
// put your main code here, to run repeatedly:
statoPulsante = digitalRead (pulsante);
if (statoPulsante == 0) {
Serial.println ("2");
mySwitch.send (2,24);
}
if (statoPulsante == 1) {
Serial.println ("1");
mySwitch.send (1,24);
}
}
Sketch RX:
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch ();
int motor_1 = 12;
int motor_2 = 11;
int value = -1;
void setup() {
// put your setup code here, to run once:
pinMode (motor_1, OUTPUT);
pinMode (motor_2, OUTPUT);
Serial.begin (9600);
delay (50);
mySwitch.enableReceive (0);
}
void loop() {
// put your main code here, to run repeatedly:
if (mySwitch.available ()) {
value = mySwitch.getReceivedValue ();
if (value == 0) {
Serial.println ("Codice sconosciuto");
}
if (value == 2) {
Serial.println (mySwitch.getReceivedValue());
digitalWrite (motor_1, HIGH);
digitalWrite (motor_2, HIGH);
}
if (value == 1) {
Serial.println (mySwitch.getReceivedValue ());
digitalWrite (motor_1, LOW);
digitalWrite (motor_2, LOW);
}
mySwitch.resetAvailable ();
}
}
QUESTI 2 SKETCH mi consentono di far muovere 2 motori DC tramite un pulsante e funzionano correttamente!
Adesso il problema si verifica nel momento in cui voglio aggiungere le funzioni di questo Sketch anch'esso perfettamente funzionante se preso singolarmente senza moduli wireless:
Sketch SERVO:
#include <Servo.h>
Servo tilt, pan;
int joyY = A1;
int x, y;
void setup()
{
pan.attach(10);
}
void loop()
{
y = joyY;
y = map(analogRead(joyY), 0, 1023, 900, 2100);
pan.write(y);
delay(15); //
}