Quindi potrebbe stare acceso anche per impostazione software.
Ma si potrebbe avere lo sketch?
Ecco il programma
#include <GPSX.h>
#include <GPSXClass.h>
#undef round //serve per non far fallire la compilazione
const int clock1 = 2; // Attribuisco al pin 2 il controllo del clock del motore 1 (Avanti e indietro)
const int direction1 = 3;
const int clock2 = 4; // Attribuisco al pin 4 il controllo del clock del motore 2 (Destra e sinistra)
const int direction2 = 5;
const int clock3 = 6; // Attribuisco al pin 6 il controllo del clock del motore 3 (Su e giù)
const int direction3 = 7;
const int clock4 = 8; // Attribuisco al pin 8 il controllo del clock del motore 4 (Stringi pinza)
const int direction4 = 9;
const int clock5 = 10;
const int direction5 = 11;
const int clock6 = 12;
const int direction6 = 13;
int asd =0;
void setup()
{
Serial.begin(9600);
pinMode(clock1, OUTPUT);
pinMode(clock2, OUTPUT);
pinMode(clock3, OUTPUT);
pinMode(clock4, OUTPUT);
pinMode(clock5, OUTPUT);
pinMode(clock6, OUTPUT);
pinMode(direction1, OUTPUT);
pinMode(direction2, OUTPUT);
pinMode(direction3, OUTPUT);
pinMode(direction4, OUTPUT);
pinMode(direction5, OUTPUT);
pinMode(direction6, OUTPUT);
PSX.mode(PSX_PAD1, MODE_ANALOG, MODE_UNLOCK);
PSX.motorEnable(PSX_PAD1, MOTOR1_ENABLE, MOTOR2_ENABLE);
// Poll current state once.
PSX.updateState(PSX_PAD1);
}
void loop()
{
PSX.updateState(PSX_PAD1);
int data4 = ANALOG_RIGHT_X(PSX_PAD1);
int data3 = ANALOG_RIGHT_Y(PSX_PAD1);
int data2 = ANALOG_LEFT_X(PSX_PAD1);
int data1 = ANALOG_LEFT_Y(PSX_PAD1);
if (data1 < 20) { //Se la levetta analogica sinistra è verso l'alto, atttiva il motore 1 con direzione avanti
digitalWrite(clock1, LOW);
digitalWrite(direction1, HIGH);
delay(20);
digitalWrite(clock1, HIGH);
}
else if (IS_DOWN_UP(PSX_PAD1)) { //Se è premuta la freccia avanti, attiva il motore 1 con direzione avanti
digitalWrite(clock1, LOW);
digitalWrite(direction1, HIGH);
delay(20);
digitalWrite(clock1, HIGH);
}
else if (data1 < 80 && data1 > 20){ //Se la levetta analogica sinistra è leggermente verso l'alto, atttiva il motore 1 con direzione avanti
digitalWrite(clock1, LOW);
digitalWrite(direction1, HIGH);
delay(100);
digitalWrite(clock1, HIGH);
}
else if (data1 > 230) { //Se la levetta analogica sinistra è verso il basso, atttiva il motore 1 con direzione indietro
digitalWrite(clock1, LOW);
digitalWrite(direction1, LOW);
delay(20);
digitalWrite(clock1, HIGH);
}
else if (IS_DOWN_DOWN(PSX_PAD1)) { //Se è premuta la freccia indietro, attiva il motore 1 con direzione indietro
digitalWrite(clock1, LOW);
digitalWrite(direction1, LOW);
delay(20);
digitalWrite(clock1, HIGH);
}
else if (data1 > 170 && data1 < 230){ //Se la levetta analogica sinistra è leggermente verso il basso, atttiva il motore 1 con direzione indietro
digitalWrite(clock1, LOW);
digitalWrite(direction1, LOW);
delay(100);
digitalWrite(clock1, HIGH);
}
else {
digitalWrite(clock1, LOW);
digitalWrite(direction1, LOW);
}
if (data2 < 20) { //Se la levetta analogica sinistra è verso sinistra, atttiva il motore 2 con direzione sinistra
digitalWrite(clock2, LOW);
digitalWrite(direction2, HIGH);
delay(20);
digitalWrite(clock2, HIGH);
}
else if (IS_DOWN_LEFT(PSX_PAD1)) { //Se è premuta la freccia sinistra, attiva il motore 2 con direzione sinistra
digitalWrite(clock2, LOW);
digitalWrite(direction2, HIGH);
delay(20);
digitalWrite(clock2, HIGH);
}
else if (data2 < 80 && data2 > 20){ //Se la levetta analogica sinistra è leggermente verso sinistra, atttiva il motore 2 con direzione sinistra
digitalWrite(clock2, LOW);
digitalWrite(direction2, HIGH);
delay(100);
digitalWrite(clock2, HIGH);
}
else if (data2 > 230) { //Se la levetta analogica sinistra è verso destra, atttiva il motore 2 con direzione destra
digitalWrite(clock2, LOW);
digitalWrite(direction2, LOW);
delay(20);
digitalWrite(clock2, HIGH);
}
else if (IS_DOWN_RIGHT(PSX_PAD1)) { //Se è premuta la freccia destra, attiva il motore 2 con direzione destra
digitalWrite(clock2, LOW);
digitalWrite(direction2, LOW);
delay(20);
digitalWrite(clock2, HIGH);
}
else if (data2 > 170 && data2 < 230){ //Se la levetta analogica sinistra è leggermente verso destra, atttiva il motore 2 con direzione destra
digitalWrite(clock2, LOW);
digitalWrite(direction2, LOW);
delay(100);
digitalWrite(clock2, HIGH);
}
else {
digitalWrite(clock2, LOW);
digitalWrite(direction2, LOW);
}
if (data3 < 20) { //Se la levetta analogica destra è verso l'alto, atttiva il motore 3 con direzione avanti
digitalWrite(clock3, LOW);
digitalWrite(direction3, HIGH);
delay(20);
digitalWrite(clock3, HIGH);
}
else if (data3 < 80 && data3 > 20){ //Se la levetta analogica destra è leggermente verso l'alto, atttiva il motore 3 con direzione avanti
digitalWrite(clock3, LOW);
digitalWrite(direction3, HIGH);
delay(100);
digitalWrite(clock3, HIGH);
}
else if (data3 > 230) { //Se la levetta analogica destra è verso destra, atttiva il motore 3 con direzione destra
digitalWrite(clock3, LOW);
digitalWrite(direction3, LOW);
delay(20);
digitalWrite(clock3, HIGH);
}
else if (data3 > 170 && data3 < 230){ //Se la levetta analogica destra è leggermente verso destra, atttiva il motore 3 con direzione destra
digitalWrite(clock3, LOW);
digitalWrite(direction3, LOW);
delay(100);
digitalWrite(clock3, HIGH);
}
else {
digitalWrite(clock3, LOW);
digitalWrite(direction3, LOW);
}
if (IS_DOWN_CROSS(PSX_PAD1)) { //Se è premuta la croce, attiva il motore 4 che stringe la pinza
digitalWrite(clock4, HIGH);
digitalWrite(direction4, HIGH);
}
if (IS_DOWN_TRIANGLE(PSX_PAD1)) { //Se è premuto il triangolo, attiva il motore 4 che allenta la pinza
digitalWrite(clock4, HIGH);
digitalWrite(direction4, LOW);
}
}
Inizializzi la seriale, ma poi vedo che non la usi. Ma serve alla libreria che usi oppure no? Mi spiego, quella libreria stampa/invia dei dati sulla seriale?
Se fosse così dovresti avere anche il led TX acceso fisso. La comunicazione seriale disturba la programmazione perché entrambe viaggiano sugli stessi pin.
Se non è così, allora è successo qualcosa di più grave alla scheda.
Hai provato di caricare per un test lo sketch di esempio blink? lo trovi tra i esempi del IDE.
Ciao Uwe
Non può farlo, non ci riesce:
anse94:
se provo a caricare un nuovo sketch dal computer mi da un errore di sincronizzazione(error sync, una cosa del genere).
Anche se toglie tutto da Arduino?
@ anse94 facci una foto del Arduino e del circuito.
Ciao Uwe