ASN
https://www.amiciscalan.com:443/forum/

scambi azionati da servo pilotati con Arduino
https://www.amiciscalan.com:443/forum/viewtopic.php?f=97&t=6825
Pagina 2 di 4

Autore:  massimo di giulio [ 02/03/2016, 17:13 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Nuccio Raneri ha scritto:
Perchè disturbate mister arduino per muovere dei servo ? basta un ne555..qualche condensatore e dei pulsanti.
Era la mia prima idea, ma devi fare un circuito per ogni servo, con Arduino invece hai già tutto dentro fino a 6 servo e ti basta per ciascuno un solo filo.
E se vuoi cambiare qualcosa basta cambiare lo sketch, non le saldature.

Autore:  massimo di giulio [ 02/03/2016, 17:16 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

filippo medici ha scritto:
gentilmente potresti postare l'intero Sketch
E per chi mi hai preso, per Mandrake? :lol: :lol: :lol:
Ancora non mi è arrivato Arduino, ancora non mi sono arrivati i servo, ho solo abbozzato alcune linee di comando e danno anche errore in compilazione :D :D :D
Di sicuro quando avrò fatto condividerò lo sketch, ma per ora sono in altissimo mare.

Autore:  filippo medici [ 02/03/2016, 18:17 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

http://www.mauroalfieri.it/elettronica/ ... santi.html



------------------------------------------------------
#include <Servo.h>
Servo myservo;

int grado = 0;
int pinServo = 3;
int buttonPin =8;
int x=0;

void setup()
{
myservo.attach( pinServo );
myservo.write(grado);
}

void loop()
{
x=digitalRead(8);
if (x==HIGH)
{
for (grado=0; grado<=180; grado=grado+180)
{
myservo.write (grado);
delay (15);
}
for (grado=180; grado>=0; grado-=180)
{
myservo.write (grado);
delay (15);
}
}
else if(x==LOW)
{
myservo.write (grado);
}
}

Autore:  enzo fortuna [ 02/03/2016, 19:32 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Non voglio certo rovinarvi il divertimento, ma io non butterei mai via l'esperienza di chi ... ci è già passato.
Per la parte meccanica... io ho usato un pezzo da 5 cm circa di profilato ad U preso al brico (1metro circa 2 euro), fatto il buchino dello stesso diametro del filo armonico, e fissato il servo in vertivale con del biadesivo. In questo modo ho ottenuto un componente rimovibile tutto d'un pezzo.
Il "pezzo" è poi avvitato al piano sotto del plastico e spunta solo il filo per il movimento.

Scambi PECO... togli la molletta e lo scambio si muove con il movimento del servo.

Per il resto, ma solo come ispirazione, date un occhiata a questi progettini.
Potreste prendere spunto da questo:
Un Arduino piccolo piccolo e ben 17 SERVO!
http://model-railroad-hobbyist.com/node/19446
17 Channel Configurable Multifunction $5 DCC Decoder For Servos

opuure da questo piccolo (volendo si può avere anche il PCB già fatto!):
http://model-railroad-hobbyist.com/node/24316

Scaricatevi gli sketch e se non vi serve la parte di decoder DCC ... taglia e cuci :)
http://model-railroad-hobbyist.com/site ... oderv5.zip

Autore:  Daniele Walser [ 04/03/2016, 11:33 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

A proposito di esperienze. Sono stato confrontato la prima volta 4 anni fa con la questione servo e deviatoi. Sul plastico di una associazione erano stati montati i servo per muovere i deviatoi e dopo 3 anni iniziavano ad avere problemi. I servo erano montati per l'appunto in "presa diretta" sotto il deviatoio. Di conseguenza il braccio del servo diventava molto lungo e il servo si muoveva pochissimo facendo si che in breve tempo i potenziometri dei servo si deteriorassero.
Non ho inventato nulla di che, semplicemente ho montato i servo come si montano sugli aeromodelli sfruttandone al massimo la corsa. I vantaggi li abbiamo elencati sopra.
Per i deviatoi Peco e per sfruttare al meglio l'effetto "scenico" del deviatoio che si muove lentamente ho tolto le mollette, sfruttando l'effetto molla del rinvio in acciaio armonico. Avevo messo qualche tempo fa il filmato su youtube:

Autore:  massimo di giulio [ 04/03/2016, 13:35 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

A qualcuno capita che la compilazione dello sketch dà errore quanto c'è un comando myservo.write(aaa)?

Nel mio caso, impostando come board Arduino uno, non dà errore finchè trova servo.attach, mentre lo dà appena trova un write.

impostando invece Arduino micro (suggerimento trovato in rete da chi ha errori simili, ma con una libreria di altro tipo), non c'è errore.

Autore:  massimo di giulio [ 04/03/2016, 14:27 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Questo è lo sketch che avrei scritto.
Molto elementare.

/*
Controllo Servo per scambi e PL su Nardò C.le
versione 1 - 4 marzo 2016
S1 scambio accesso rimessa
S2 e S3 comunicazione Nord 4 con 5
S4 e S5 comunicazione Sud 4 con 5
S6 scambio accesso tronchini Sud
PL coppia servo sbarre P/L
*/

#include <Servo.h>

const int pinlevaS1=2;
const int pinlevaS2S3=4;
const int pinlevaS4S5=7;
const int pinlevaS6=8;
const int pinservoS1=3;
const int pinservoS2S3=5;
const int pinservoS4S5=6;
const int pinservoS6=9;
const int pinservoPL=10;
const int pinIapre=11;
const int pinEapre=12;
const int pinIchiude=A0;
const int pinEchiude=A1;
int levaS1,levaS2S3,levaS4S5,levaS6,statoPL; // 0 diritto o aperto, 1 deviato o chiuso
int Iapre,Ichiude,Eapre,Echiude; // 1 vero 0 falso tranne Echiude
Servo S1;
Servo S2S3;
Servo S4S5;
Servo S6;
Servo PL;

void setup() {
pinMode(pinlevaS1, INPUT);
pinMode(pinlevaS2S3, INPUT);
pinMode(pinlevaS4S5, INPUT);
pinMode(pinlevaS6, INPUT);
pinMode(pinIapre, INPUT);
pinMode(pinEapre, INPUT);
pinMode(pinIchiude, INPUT);
pinMode(pinEchiude, INPUT);

S1.attach(pinservoS1);
S2S3.attach(pinservoS2S3);
S4S5.attach(pinservoS4S5);
S6.attach(pinservoS6);
PL.attach(pinservoPL);
}

void loop() {
levaS1 = digitalRead(pinlevaS1);
levaS2S3 = digitalRead(pinlevaS2S3);
levaS4S5 = digitalRead(pinlevaS4S5);
levaS6 = digitalRead(pinlevaS6);
S1.write(levaS1*180);
S2S3.write(levaS2S3*180);
S4S5.write(levaS4S5*180);
S6.write(levaS6*180);
Iapre = digitalRead(pinIapre);
Eapre = digitalRead(pinEapre);
Ichiude = digitalRead(pinIchiude);
Echiude = digitalRead(pinEchiude);

if ((Ichiude==HIGH || Echiude==LOW) && !Iapre==LOW && Eapre==LOW) PL.write(0); //chiuso
if ((Iapre==HIGH || Eapre==HIGH) && !Ichiude==LOW && Echiude==LOW) PL.write(180); //aperto
}

Autore:  massimo di giulio [ 04/03/2016, 22:52 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Forse ho risolto il problema, sostituendo un file di Arduino 1.6.7 con uno di una versione precedente 1.0.6 (suggerimento - sembra valido - trovato dopo due ore di ricerca nei forum di Arduino...).

Autore:  massimo di giulio [ 01/04/2016, 11:18 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Finalmente mi è arrivato l'Arduino e ieri l'ho subito provato.
Ovviamente funziona bene.
Ho impostato un range angolare per il servo tra 45 e 135 gradi (a 90 gradi gli aghi restano fermi a metà), in modo che l'astina non venga forzata inutilmente, e non c'è nessuna necessità di modificare il meccansimo dello scambio peco, in aprticolare ho lasciato la molletta così com'era.
Ho anche trovato il modo di ottenere un movimento graduale, con un ciclo for differenziato a seconda del verso del movimento, con un delay di 20 msec.
Appena mi arriveranno gli altri servo li metterò in azione!

Ho provato anche con delay maggiori, in vista dell'uso per azionare lentamente un PL, e penso che si possa ottenere un bell'effetto, compatibilmente con la soluzione meccanica che devo ancora sperimentare.

Decisamente, la possibilità di cambiare una configurazione semplicemente scrivendo da tastiera un numero diverso (invece che dissaldando e risaldando resistenze differenti) è impagabile, se poi si considera che con una sola scheda ci piloto a piacere 6 motori servo, con relativi segnali di input, resta solo da dire: viva il digitale!

Autore:  Mario Malinverno [ 01/04/2016, 11:33 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

massimo di giulio ha scritto:
................ resta solo da dire: viva il digitale!
Oh! questa non me l'aspettavo proprio :lol: :lol: :lol:

Autore:  enzo fortuna [ 01/04/2016, 16:06 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Mario Malinverno ha scritto:
massimo di giulio ha scritto:
................ resta solo da dire: viva il digitale!
Oh! questa non me l'aspettavo proprio :lol: :lol: :lol:

Mai disperare, lo dico sempre.... 8-)
Chi sta fermo... non và lontano, no?
E poi, Mario, il tuo motto dove lo metti. ;)

Autore:  roberto trecca [ 01/04/2016, 16:17 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Nuova frontiera Arduino.
Credo che applicandolo al fermodellismo specialmente sui modulari apra nuovi scenari di gestione.
Dai Massimo aspettiamo un po di foto ;)
Roby

Autore:  cristian cicognani [ 11/04/2016, 10:40 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Mario Malinverno ha scritto:
massimo di giulio ha scritto:
................ resta solo da dire: viva il digitale!
Oh! questa non me l'aspettavo proprio :lol: :lol: :lol:

Si possono fare tante cose utili in digitale per l'analogico senza accedere al dcc.... ed il Prof..... stà sperimentando!!!! :D ;)

Autore:  massimo di giulio [ 15/06/2016, 22:01 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Faccio notare che i servo quando si muovono assorbono un fottìo di corrente, sia pure in maniera impulsiva (me n'ero accorto già provandone uno con un alimentatore con limite di corrente regolabile... scattava sempre finchè non gli ho"concesso" 1 Ampére).
Se si sfrutta il regolatore a 5V incluso in Arduino e ci sono troppi servo in azione succede che il processore si resetta spesso e i servo si muovono male (la spia di accensione si spegne e si riaccende più volte).
Ho visto che fino a un paio di servo collegati va tutto bene, oltre no, per cui conviene aggiungere un regolatore a 5 V separato (uA7805) che alimenta i servo, con il negativo in comune con quello dell'Arduino.

Autore:  Daniele Walser [ 16/06/2016, 9:13 ]
Oggetto del messaggio:  Re: scambi azionati da servo pilotati con Arduino

Domanda stupida: cosa hai collegato al servo per arrivare ad un assorbimento di 1 A?

Pagina 2 di 4 Tutti gli orari sono UTC + 1 ora [ ora legale ]
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/