Ciao a tutti ragazzi, sono Eduardo e chiedo il vostro aiuto.
Dato che sono un principiante vi chiedo cortesemente di essere il più chiari che potete.
Allora io per questo progetto uso un’Arduino Mega 2560 e un modulo bluetooth hc-06 per permettermi di comandare il movimento di n°5 servo (sg 90) in modo da emulare il movimento delle dita di una mano.
Inizialmente ho cercato su internet ragazzi che già avessero fatto programmi simili, ma nessuno comandato da applicazione, alcuni da joystich mentre altri usavano un guanto con sensori che inviava il movimento da fare. Sono riuscito a trovare il comando di un servo con Arduino che però ripeteva ciclicamente la stessa operazione. Il mio intento, come credo di aver fatto intendere, è quello di decidere io che movimento fare dando in input un carattere a cui verranno collegati movimenti specifici.
Ora chiedo a voi cosa ha di sbagliato questo sketch e in che modo poterlo correggere, sperando in un’aiuto repentino e appena posso tenterò in qualsiasi modo di imparare a programmare Arduino, dato che la cosa a me interessa tanto ma non ho tempo per poterlo fare ora.
Già mi è stato detto che gli apici da usare devono essere singoli e non doppi per i caratteri.
Questo è lo sketch:
#include <Servo.h>
Servo myservoa;
Servo myservob;
Servo myservoc;
Servo myservod;
Servo myservoe;
int posa = 0;
int posb = 180;
int message;
int b;
void setup ()
{
Serial.begin(9600);
Serial3.begin(9600);
myservoa.attach(8);
myservob.attach(9);
myservoc.attach(10);
myservod.attach(11);
myservoe.attach(12);
}
void loop()
{
while(Serial3.available()){
message+=char(Serial3.read());
}
if(!Serial3.available())
{
if(message ==""){
Serial.println(message);
(message! =="");
}
}
if (message == 'A') {
myservoa.write(posb);
}
if (message == 'a') {
myservoa.write(posa);
}
if (message == 'B') {
myservob.write(posb);
}
if (message == 'b') {
myservob.write(posa);
}
if (message == 'C') {
myservoc.write(posb);
}
if (message == 'c') {
myservoc.write(posa);
}
if (message == 'D') {
myservod.write(posb);
}
if (message == 'd') {
myservod.write(posa);
}
if (message == 'E') {
myservoe.write(posb);
}
if (message == 'e') {
myservoe.write(posa);
}
if (message == 'F') {
myservoa.write(posb);
myservob.write(posb);
myservoc.write(posb);
myservod.write(posb);
myservoe.write(posb);
}
if (message == 'f') {
myservoa.write(posa);
myservob.write(posa);
myservoc.write(posa);
myservod.write(posa);
myservoe.write(posa);
}
if (message == 'G') {
myservob.write(posb);
myservoc.write(posb);
}
if (message == 'g') {
myservob.write(posa);
myservoc.write(posa);
}
if (message == 'H') {
myservob.write(posb);
myservoe.write(posb);
}
if (message == 'h') {
myservob.write(posa);
myservoe.write(posa);
}
if (message == 'I') {
myservoa.write(posb);
myservob.write(posb);
myservoe.write(posb);
}
if (message == 'i') {
myservoa.write(posa);
myservob.write(posa);
myservoe.write(posa);
}
if (message == 'J') {
myservoa.write(posb);
myservob.write(posb);
myservoc.write(posb);
myservod.write(posb);
}
if (message == 'j') {
myservoa.write(posa);
myservob.write(posa);
myservoc.write(posa);
myservod.write(posa);
}
if (message == 'K') {
myservoc.write(posb);
myservob.write(posb);
myservoe.write(posb);
}
if (message == 'k') {
myservoc.write(posa);
myservob.write(posa);
myservoe.write(posa);
}
if (message == 'L') {
myservod.write(posb);
myservoe.write(posb);
}
if (message == 'l') {
myservod.write(posa);
myservoe.write(posa);
}
}
Questo è l’errore che ottengo:
sketch may28a.ino
ISO C++ forbids comparision between pointer and integer