ciao a tutti sto facendo un progetto in cui con un pc controllo la mia rc car che ha due motori in continua e così per gestirli ho utilizzato un driver motore (fatto da me) , una shield ethernet , un router ,arduino e due servo motori per controllare la webcam ( uno gira destra- sinistra e l'altro alto-basso) .
ora io ho provato a creare un programma ma non vuole funzionare.
mi potete dire dove è che ho sbagliato ?
grazie mille a tutti quanti voi
code :
// Terzo programma di trasmissione seriale con Ethernet
int ena =2; // driver motore
int a = 3; // driver motore
int b = 4; // driver motore
int enb = 5; // driver motore
int c = 6; // driver motore
int d = 7; // driver motore
#include <Servo.h>
Servo myservo3; // servo webcam 1 (destra - sinistra)
Servo myservo4; // servo webcam 2 (alto-basso)
int lettura;
int stato1;
int stato2;
int pos_o = 100;
//unsigned long int currentMillis;
//unsigned long int previousMillis;
int interval = 500;
void setup()
{
myservo3.attach(11); // 1° servo telecamera
myservo4.attach(6); // 2° servo telecamera
//pinMode(2, OUTPUT);
//pinMode(12, OUTPUT);
Serial.begin(9600);
}
void loop()
{
// currentMillis = millis();
if (Serial.available()>0) // Se c'è un dato disponibile sulla seriale
{
lettura = Serial.read();
}
if(lettura =='8')
{
digitalWrite(ena,HIGH); // con queste 3 istruzioni il motore 1 va avanti
digitalWrite(a,HIGH);
digitalWrite(b,LOW);
// lampeggio();
}
if(lettura =='5')
{
digitalWrite(ena,HIGH);
digitalWrite(a,HIGH); // motore 1 fermo
digitalWrite(b,HIGH);
}
if(lettura =='2')
{
digitalWrite(ena,HIGH);
digitalWrite(a,LOW); // motore 1 indietro
digitalWrite(b,HIGH);
// lampeggio();
}
if(lettura =='6')
{
digitalWrite(enb,HIGH);
digitalWrite(c,HIGH); // motore 2 gira destra
digitalWrite(d,LOW);
}
if(lettura =='4')
{
digitalWrite(enb,HIGH);
digitalWrite(c,HIGH); // motore 2 gira sinitra
digitalWrite(d,HIGH);
}
// MODIFICA
if(lettura =='1')
{
digitalWrite(ena,HIGH);
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
pos_o = pos_o - 5;
if ( pos_o >= 0 && pos_o <= 180 )
{
myservo3.write( pos_o );
lettura = 0;
}
}
if(lettura =='3')
{
digitalWrite(ena,HIGH);
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
pos_o = pos_o + 5;
if ( pos_o >= 0 && pos_o <= 180 )
{
myservo3.write( pos_o );
lettura = 0;
}
}
// MODIFICA
if(lettura =='7')
{
digitalWrite(enb,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
pos_o = pos_o + 5;
if ( pos_o >= 0 && pos_o <= 180 )
{
myservo4.write( pos_o );
lettura = 0;
}
}
if(lettura =='9')
{
digitalWrite(enb,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
pos_o = pos_o -5;
if ( pos_o >= 0 && pos_o <= 180 )
{
myservo4.write( pos_o );
lettura = 0;
}
}
Serial.flush();
}