start /logooff sketch arduino in windows..

Madwriter:
sicuro di aver collegato i 5v ad arduino e la gnd dei 5v ai gnd di arduino?(sarebbe il cavo nero della batteria al gnd di arduino)

si si

sul sito di modding dove sono iscritto mi hann consigliato questo sketch..
lo scketch andrebbe pure bene...nel senso che ....quando metto i 5 volts sul piedino 4 il servoattuatore va nella posizione di elevatore alzato quindi pistone giu
pero' quando invece la tolgo (i 5 volt dal piedino 4) questo comincia a fare un loop (su e giu) secondo voi l'errore dove potrebbe essere ?

#include <Servo.h>

Servo myservo;
#define PINCONTROLLO 4
int val;
void setup()
{
myservo.attach(3);
pinMode(PINCONTROLLO, INPUT);
}

// i am trying to me the actuator extend to a certain point and the retract to a certain point
void loop()
{
val = digitalRead(PINCONTROLLO);
if(val == LOW)//pin è spento = pc spento
{
PistoneDown();
}
else
{
PistoneUp();
}
delay(1000);//effettuo polling ogni secondo.

}

void PistoneDown()
{
myservo.write(110);
delay(2000);
myservo.write(80);

}

void PistoneUP()
{
myservo.write(80);
delay(2000);
myservo.write(110);
}

ragazzi vi posto il link del progetto a cui sto lavorando ,mi farebbe piacere se gli deste uno sguardo...

http://www.italiamodding.it/forum/mod-work-progress/3835-creation-rex-mod-15.html#post108118

Potrebbe anche darsi che tu non abbia messo una resistenza di pull-down sul pin per dare uno stato Low ben definito quando viene a mancare l'alimentazione del PC, ossia il segnale dei 5V. In questo caso il pin rileva fluttuazioni dello stato del pin che potrebbero portare a letture casuali.

leo72:
Potrebbe anche darsi che tu non abbia messo una resistenza di pull-down sul pin per dare uno stato Low ben definito quando viene a mancare l'alimentazione del PC, ossia il segnale dei 5V. In questo caso il pin rileva fluttuazioni dello stato del pin che potrebbero portare a letture casuali.

hai idea del valore?posso provare.....

10K sono più che sufficienti. Prova, magari è questo.

l errore e' nello sckech ho pravato ma non cambia nulla ..non so che fare...se metto la tensione sul piedino 4 tutto ok se la tolgo fa su e giu ...so' disperato ...

vi posto un video

ma la resistenza l'hai messa tra il pin 4 e GNd o tra il pin4 e +5V ?

brunello:
ma la resistenza l'hai messa tra il pin 4 e GNd o tra il pin4 e +5V ?

tra il pin 4 e i 5 v...ma secondo me il problema e nello sketch

leo ti ha detto Pull Down, non Pull UP.

Ragiona...
quando ci applichi una tensione, il livello e' HIGH. Quando non c'e' dovrebbe essere LOW, ma siccome il pin e' un'ingresso ad alta impedenza e quel pezzo di cavo che viene dal PC non porta nessuna tensione, sicuramente fara' da antenna e sul pin ci sara' un valore casuale.

Ora tu nello sketch controlli se il Pin e' LOW...
quindi serve una resistenza che in mancanza di segnale tenga il pin LOW.
se lo vuoi tenere LOW, dove devi mettere laresistenza ?

brunello:
leo ti ha detto Pull Down, non Pull UP.

Ragiona...
quando ci applichi una tensione, il livello e' HIGH. Quando non c'e' dovrebbe essere LOW, ma siccome il pin e' un'ingresso ad alta impedenza e quel pezzo di cavo che viene dal PC non porta nessuna tensione, sicuramente fara' da antenna e sul pin ci sara' un valore casuale.

Ora tu nello sketch controlli se il Pin e' LOW...
quindi serve una resistenza che in mancanza di segnale tenga il pin LOW.
se lo vuoi tenere LOW, dove devi mettere laresistenza ?

hihi frustatemi piano ora riprovo..ma non capisco il perche quando tolgo i 5 volts dal piedino 4 ...il servo comincia a fare su e giu

niente ragazzi non cambia nulla

Ancora non ho guardato bene il codice per cui ragiono per ora solo sul lato HW.
Per sfatare ogni dubbio, fai così:

  1. prendi un filo e collegalo dal pin 4 direttamente a +5V. Il pistone scende, fino qui ci siamo.
  2. ora prendi il filo e collega il pin 4 direttamente a GND. Cosa fa il pistone?

finalmente dopo un pomeriggio a capirci qualcosa ho corretto il codice...#include <Servo.h>

Servo myservo;
#define PINCONTROLLO 4
int val;
void setup()
{
myservo.attach(3);
pinMode(PINCONTROLLO, INPUT);
}

// i am trying to me the actuator extend to a certain point and the retract to a certain point
void loop()
{
val = digitalRead(PINCONTROLLO);
if(val == LOW)//pin è spento = pc spento
{
PistoneDown();
}
else
{}

}

void PistoneDown()
{
myservo.write(110);
delay(2000);
myservo.write(80);

}

void PistoneUP()
{
myservo.write(80);
delay(2000);
myservo.write(110);
}

e in piu' ho notato che i collegamenti sull arduino trabballano cosi ho messo un pizzico di nastro a fermarli e sembrano andare bene...di fatti ad ogni movimento di un filo il pistone fceva qualche falso contatto e si muoveva...proposito si risolve in qualche modo?

ecco un video

per il momento vi ringrazio con tutto il cuore...mi avete dato spunti sul dafarsi e come risolvere la cosa...e sopratutto mi avete spinto a leggere sti benedetti libri su arduino hihihi

una curiosità hai realizzato tu il servo? me ne servirebbe uno un pò più grande se avessi un tutorial o cse del genere te ne sarei grato :wink:

Madwriter:
una curiosità hai realizzato tu il servo? me ne servirebbe uno un pò più grande se avessi un tutorial o cse del genere te ne sarei grato :wink:

no l'ho comprato sul sito della firgelli....

e in piu' ho notato che i collegamenti sull arduino trabballano cosi ho messo un pizzico di nastro a fermarli e sembrano andare bene...di fatti ad ogni movimento di un filo il pistone fceva qualche falso contatto e si muoveva...proposito si risolve in qualche modo?

usa i cavi adatti:

Diametri dei cavi

Il diametro di un cavo può essere misurato tramite il Gauge. Le breadboard sono di solito progettate per utilizzare cavi con diametro di 22 Gauge. Gli ingressi femmina di Arduino non sono progettati per inserirci cavi, ma la cosa funziona ugualmente in situazioni di test e prototipazione. Un cavo di 20 Gauge è probabilmente più saldo nell'ingresso femmina di un cavo da 22 Gauge ma quest'ultimo risulterà comunque funzionante. Si noti che nella misura dei Gauge un valore basso corrisponde ad un cavo più spesso. In commercio si trovano entrambe le tipologie di diametro, si consiglia di scegliere i cavi a 22 Gauge per l'Arduino e le breadboard.

Se hai bisogno di una quantità elevata di cavi per breadboard puoi ottenerli a costo quasi nullo e in molti colori comprando doppini telefonici. Controlla che i doppini siano di cavi rigidi poiché entrambi sono in vendita. Sul sito di R.S. si trovano nella sezione "home improvements" e di solito sono a 24 Gauge, ovvero una dimensione più piccola dell'ideale, le estremità andrebbero quindi curvate su se' stesse per avere delle connessioni affidabili sugli ingressi femmina dell'Arduino.

Vecchi computer sono una risorsa di cavi morbidi in vari diametri e colori che sono molto utili per connettere piccoli progetti elettronici. Cercali in tutti i rifiuti elettronici!

Cit. Playground

ragzzi vi chiedo una cortesia ...sto cercando su google..poi nel caso apro un tread....mi serve un qualcosa che abbia collegato un lcd ad arduino e un servo....in pratica lcd mi deve dare un conto alla rovescia e alla fine mi deve muovere un servoattuatore attendere es 5 min e richiudere il servo e ripartire con il conto alla rovescia,in loop...e' fattibile come cosa?

t-rex:
ragzzi vi chiedo una cortesia ...sto cercando su google..poi nel caso apro un tread....mi serve un qualcosa che abbia collegato un lcd ad arduino e un servo....in pratica lcd mi deve dare un conto alla rovescia e alla fine mi deve muovere un servoattuatore attendere es 5 min e richiudere il servo e ripartire con il conto alla rovescia,in loop...e' fattibile come cosa?

certo ti basta un lcd e un servo lo sketch è facile da scrivere,ovviamente ti serve un arduino :grin: vedi un pò gli lcd magari ne trovi uno economico o se hai un oia 3310/3330 puoi recuperarlo da li :stuck_out_tongue: