Pilotare servo motore tramite bluetooth

Salve a tutti volevo chiedere se qualcuno mi può dare una mano a creare un programma che mi consenta di pilotare un servo motore tramite il bluetooth dello smartphone.
Cercando un po in rete non riesco a trovare nulla che mi possa aiutare quindi chiedo a voi…
La mia idea era quella di utilizzare lo switch case e assegnare ,ad esempio una lettera a un comando dalla app dello smartphone.
Cosi ho cercato di fare un programma basandomi su questa idea però il problema è che nel momento che vado a collegare il “terzo” pin del servo che sarebbe quello dove riceve il segnale (se si puo chiamare cosi) mi si spegne l’ HC-05 e non si accende finchè scollego quel pin.
Vi ringrazio in anticipo e se per voi è di aiuto vi posso mandare questo programma grazie ancora.

ok va bene non lo avevo visto :)
riformulo qua allora:
Buongiorno ho riscontrato lo stesso problema anche usando la software serial e non mi fa caricare il programma.
allego il programma:

#include<SoftwareSerial.h>
#include <Servo.h>
Servo Servo1; 
SoftwareSerial mySerial(8,7);
char data;

void setup() {
mySerial.begin(9600);
Serial.begin(9600);  
  pinMode(9,OUTPUT);
 Servo1.attach (9);
 
 }

void loop() {
  
  if(mySerial.available())
   {     
      data= mySerial.read();
      switch(data)
      {
        case 'a': Servo1.write(0);break; 
        case 'd': Servo1.write(120);break; 
        default : break;
      }
      Serial.println(data);
   }
   delay(50);
}


Grazie mille!
Qualcuno riesce a darmi una mano? perchè alimentando l' hc05 esternamente non mi si accende e non riesco a capire se il programma è giusto..
Grazie

Senza uno schema dei collegamenti esatti che hai fatto è diffcile capire ... ::slight_smile:

Guglielmo

Lo schema è il seguente:

HC-05:

+5v a 5v di arduino
GND a gnd di arduino
RX a TX di arduino
TX a RX di arduino

Servo:

Alimentazione a 5v
pin del "segnale" al pin 9

poca corrente direi, usa un alimentatore esterno per hc 05

Ok ora non posso provare domani ci provo.
Qualcuno mi sa dire perchè quando cerco di caricare il programma su arduino mi esce questo errore:

avrdude: ser_open(): can't set com-state for "\.\COM4"
Errore durante il caricamento dello sketch.

Grazie

Perché la cosa peggiore da fare è usare la vera seriale per collegare moduli esterni !

Si perde la possibilità di "debug" e si perde la possibilità di "caricare" i programmi senza staccare ciò che si è collegato sui pin della seriale.

Oltre ad alimentare separatamente il servo con un suo alimentatore (il cui GND devi mettere in comune con Arduino) come ti ha detto Patrick_M, devi usare la SoftwareSerial per collegare il HC-05.

Guglielmo

P.S.: Do per scontato che parliamo di Arduno UNO e non di altra scheda ...

Buongiorno ho riscontrato lo stesso problema anche usando la software serial e non mi fa caricare il programma.
allego il programma:

#include<SoftwareSerial.h>
#include <Servo.h>
Servo Servo1;
SoftwareSerial mySerial(8,7);
char data;

void setup() {
mySerial.begin(9600);
Serial.begin(9600);
pinMode(9,OUTPUT);
Servo1.attach (9);

}

void loop() {

if(mySerial.available())
{
data= mySerial.read();
switch(data)
{
case ‘a’: Servo1.write(0);break;
case ‘d’: Servo1.write(120);break;
default : break;
}
Serial.println(data);
}
delay(50);
}

Grazie mille!

>Ale_serra: ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More → Modify che si trova in basso a destra del tuo post) e racchiudere il codice all’interno dei tag CODE (… sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie.

Guglielmo