«

»

Lug 09

Stampa Articolo

Inseguitore solare con Arduino – prima parte

Il progetto che ti presento oggi è l’inseguitore solare ossia un dispositivo in grado di simulare il meraviglioso moto che madre natura ha dato al girasole.

inseguitore solare con arduino

A cosa serve?

L’applicazione di questo progetto nasce da un’esigenza, manifestata da alcuni utenti del Blog, di sfruttare al massimo l’energia prodotta dal proprio impianto a pannelli fotovoltaici.

Sai già che i pannelli fotovoltaici si posizionano rivolti a sud, trovandoci noi nell’emisfero borale, o anche emisfero nord, in questo modo sono colpiti dal massimo grado di luce possibile nell’arco della giornata, se a questo aggiungi una corretta inclinazione sull’asse Y, che varia al variare delle stagioni non ti resta che inseguire il sole nelle ore di luce. Infatti puoi decidere di variare l’inclinazione Y manualmente in quanto varia lentamente da stagione a stagione, ma per variare l’inclinazione sull’asse X, variando questa continuamente nelle 12 ore, dovresti sederti vicino ai pannelli tutto il giorno per ruotarli manualmente.

Ecco che un inseguitore solare con pochi euro ti risolve il problema.

Materiale necessario

  • n.1 Arduino Uno;
  • n.2 fotoresistenze uguali, io ho usato due LDR 20-50Kohm;
  • n.1 servomotore adeguato al peso da spostare;
  • n.1 breadboard;
  • n.10 cavetti per breadboard;

Costruisci il sensore

Per il mio esperimento l’ho realizzato su di una breadboard, una volta definito puoi costruirti con una millefori o con un PCB apposito il sensore finale da posizionare sul tuo pannello.

Sensore Inseguitore solare

Sensore Inseguitore solare

L’importante, ed anche il trucco, sta nell’inclinare ogni fotoresistenza di 45° rispetto all’asse verticale ( asse Y ) del pannello, come mostrato in figura:

foto resistenze

Collega ad arduino il sensore appena realizzato ed il servo seguendo lo schema di collegamento seguente:

schema collegamenti

Il principio di funzionamento

Le due foto resistenze poste a 90° l’una rispetto all’altra fanno in modo che solo quando il sole è verticale rispetto ad esse le due resistenze siano identiche. Al muoversi del sole da Est ad OVEST una delle due rileverà più luce dell’altra e incrementerà la propria resistenza sbilanciando il circuito e facendo rilevare ad arduino una variazione rispetto al punto iniziale.

In questa condizione Arduino inizierà a seguire il sole ossia a spostare il servo, che avrai collegato al pannello su cui è fissato il sensore, per ribilanciare il valore letto dalle due foto resistenze.

Lo Sketch

/*
 * Inseguitore solare - prima parte
 *
 * Autore: Mauro Alfieri
 * web: www.mauroalfieri.it
 * Tw: @mauroalfieri.it
 *
 */

#include <Servo.h>

int sensorPin = A0;
int servoPin  = 9;

int sensorValue = 0;
int servoGrad = 90;
int tolleranza = 40;

Servo myservo;

void setup() {
  pinMode( sensorPin, INPUT);
  myservo.attach( servoPin );
  myservo.write( servoGrad );
}

void loop() {
  sensorValue = analogRead(sensorPin);
  if ( sensorValue < (512-tolleranza) )
  {
    if (servoGrad < 180) servoGrad++;
  }

  if ( sensorValue > (512+tolleranza) )
  {
    if (servoGrad > 0) servoGrad--;
  }

  myservo.write( servoGrad ); 

  delay(100);
}

Leggendolo linea per linea:

linea 10: includi la classe Servo.h, che semplifica tutta la gestione del servomotore;

linea 12: imposta la variabile di tipo integer a cui assegni il pin a cui colleghi il sensore, in questo esempio A0;

linea 13: imposta la variabile di tipo integer a cui assegni il pin a cui colleghi il servomotore, in questo esempio 9;

linea 15: imposta una variabile di tipo integer a cui addegnerai il valore letto dal sensore in fase loop();

linea 16: imposta una variabile di tipo integer che indica la posizione, in gradi, del servo, in fase di start dello sketch posiziono il valore del servo a 90°, se tu vuoi partire da una angolazione differente puoi variare questo valore;

linea 17: imposta una variabile di tipo integer a cui assegni una tolleranza entro la quale il servo non deve ruotare anche se il sensore rileva variazioni dal valore centrale, vedrai in seguito meglio a cosa serve;

linea 19: inizializza l’oggetto Servo assegnandolo all’istanza myservo;

linea 22: imposta il pin a cui è connesso il sensore in modalità INPUT;

linea 23: con il metodo attach(pin) dell’oggetto myservo indichi a quale pin è collegato il servomotore;

linea 24: con il metodo write(grad) imposti i gradi a cui il servo deve posizionarsi, in fase di setup() il valore sarà quello definito alla linea 16;

linea 28: leggi il valore proveniente dal pin analogico ( A0 ) con la funzione analogRead() e lo assegni alla variabile sensorValue definita alla linea 15;

linea 29: esegui il primo controllo se il valore letto dalla linea 28 è minore della differenza tra 512 e la tolleranza impostata sei nella condizione in cui il pannello non è più orientato difronte al sole, una delle due foto resistenze sta rilevando una intensità maggiore dell’altra, quale sia dipende da come hai collegato le resistenze, nel mio esempio è la foto resistenza destra e per adeguare la posizione del pannello devo ruotare oltre i 90 gradi iniziali, tra 90° e 180°;

linea 31: esegui una ulteriore verifica, che il valore in gradi assunto dal servo non sia > di 180 in quanto il servo che stai utilizzando non sarebbe comunque in grado si andare oltre, se l’angolo del servo è < di 180° allora puoi incrementare i gradi di rotazione. L’espressione servoGrad++ indica di incrementare di un grado il valore di servoGrad da 90 a 91,92,93 ecc… ad ogni loop() arduino;

linea 34: verifica una condizione simile a quella della linea 29. In questo caso il valore letto dal sensore è confrontato con la somma tra 512 + tolleranza;

linea 36: verifica che l’angolo il cui il servo si trova non sia inferiore a 0, anche in questo caso non sarebbe possibile per il servomotore eseguire lo spostamento richiesto. Decrementa quindi il valore di servoGrad un grado per ogni loop() in cui si verificano le condizioni descritte;

linea 39: è arrivato il momento di far muovere il servo, riutilizza il metodo write( gradi ) per ottenere lo spostamento del servo nella posizione desiderata.

linea 41: attendi un tempo di 100 millisecondi tra una rilevazione e la succesiva, questo permette al servo di raggiungere la posizione indicata prima che la rilevazione dei sensori cambi. Puoi aumentare questo valore di molte migliaia in quanto il sole impiega delle ore per spostarsi.

Il Video

ed ecco il video dimostrativo dell’inseguitore, nel vido sono io a muovere la breadboard con su le foto resistenze, non è ancora montato ad alun pannello, puoi osservare come il servo sia in movimento prima in un senso e poi in quello opposto in funzione della quantità di luce ce colpisce i sensori:

Tolleranza

Buona inseguimento.

Permalink link a questo articolo: http://www.mauroalfieri.it/elettronica/inseguitore-solare-con-arduino.html

134 comments

2 pings

Vai al modulo dei commenti

  1. Diego

    Ciao e complimenti per il sito…volevo chiedere dato che sono agli inizi con la programmazione con Arduino,se mi puoi suggerire in che modo modificare questo schema e il software in modo da sostituire il servo motor con un controller L298 e un motore passo-passo già in mio possesso…ovvero le uscite di Arduino dovrebbero andare a pilotare una scheda con L298 e relativo motore passo-passo.
    Ti ringrazio fin d’ora per l’aiuto che mi darai.
    Saluto caramente. Diego Z.

    1. Mauro Alfieri

      Ciao Diego,
      la tua variante dell’inseguitore solare con un motore passo-passo mi interessa.
      Che tipo di motore hai: unipolare o bipolare?
      Nel blog trovi già degli schemi ed esempi per i motori unipolare con L298 e bipolari con SN754410NE, prova a leggerli e dimmi se possono andar bene per il tuo progetto.

      Poi ti aiuto con le modifiche dell’inseguitore per funzionare con un passo-passo al posto del servo.

      Mauro

      1. Diego

        Beh prima di tutto grazie per la risposta..poi per quanto riguarda la tua domanda,ti posso dire che il motore è passo-passo e unipolare.Facente parte di un vecchio kit di N.E. di cui non ricordo il numero,che era composto da un accoppiata di C.I. L297-L298 pilotati a loro volta da un NE555.Avevo quindi pensato di usare solamente L298+motore p.p. e pilotarlo “logicamente” con Arduino,dunqueabbinarlo al tuo progetto.
        Spero di essere stato esaustivo.Ti ringrazio dell’aiuto e ti saluto caramente.

        1. Mauro Alfieri

          Perfetto Diego,
          per il motore unipolare e L298 troverai degli articoli nel Blog.
          Prova a leggerli e indicami eventualmente dove non ti sono chiari.

          Mauro

          1. Diego

            Rieccomi… dunque il motore p.p. è un Bipolare invece di Unipolare come scritto precedentemente…cercando nel blog ho trovato più o meno quel che cercavo,riassumendo,quanto viene letto dalle entrate analogiche dove sono connesse le fotoresistenze deve venire trasformato nelle uscite di Arduino in una sequenza di livelli High-Low per i pin del 5,7,10,12 e i pin Enable 6,11 del L298,mentre per il resto dei pin si può seguire il datasheet del L298,la mia domanda ora è:dove collegare i pin 5,7,10,12 e 6,11 del L298 su Arduino? Dopodiche inizio a modificare lo Sketch presente qui in questo articolo per avere lo stesso risultato di questo Inseguitore solare però al posto del servo viene usato un motore passo-passo al cui albero motore verrà applicato un mini pannello solare.
            Spero che quanto si sta sviluppando possa servire ad altre persone anche solo per sperimentare le enormi capacità di Arduino.
            Grazie.

            Diego

          2. Mauro Alfieri

            Ciao Diego,
            per i bipolari troverai molti articoli con l’SN754410NE più che con l’L298. Tuttavia fatti i collegamenti i concetti sono i medesimi.

            Ricavati lo schema di collegamento dalla Motor Shield FE usa un driver simile e trovi già degli sketch per i passa-passo bipolari.

            Se riesco preparo una variante del mio articolo con il motore bipolare ed una con il motore unipolare, non prenderla come una certezza, sperimenta intanto …

            Mauro

  2. Diego

    Ok grazie Mauro.La scelta dell’L298 dipendeva dal fatto che avevo già tutto pronto…scegliendo il SN754410 avrei dovuto partire da zero…comunque adesso cerco di ricavare il collegamento dalla motor shield (buona idea).
    Poi comincio a scrivere lo sketch,comunque continuo a seguirti sperando troverai il tempo di scrivere la variante del tuo sketch…
    Grazie. Ciao.
    Diego

  3. marco

    Complimenti Mauro i tuoi articoli sono veramente interessanti e ben spiegati anche per chi si avvicina ai primi passi con arduino come me. avrei una domanda da farti, ho corstruito un inseguitore solare a 4 fotoresistenze per avere nord, sud est e ovest e servi motore per i due assi e fin qui me la sono cavata.
    il mio problema è ora sostituire nello schema i servo per inserire i comandi di una scheda relay shield (4 relè) e poter così comandare due motori 12v senza problemi di assorbimento . sono praticamente nei casini e non ho idea di come fare.

    mi potresti aiutare? molte grazie

    1. Mauro Alfieri

      Ciao Marco,
      grazie per i complimenti.
      Prova a guardare tra gli ultimi articoli ho presentato proprio una scheda che penso che faccia al caso tuo.
      Mi piacerebbe pubblicare il tuo progetto quando lo avrai ultimato con foto, video e sketch.

      Se tra gli articoli non trovi nulla adatto al tuo progetto scrivimi e provo ad aiutarti.
      Mauro

  4. marco

    Grazie Mauro certamente sarò felice di passarti foto e tutto (mi dirai poi come) e appena riesco a farlo funzionare agganciato alla parabola (concentratore solare) che andrei ad usare…nelle intenzioni.. per avere ACS tutto l’anno a zero spese ed emissioni idem.

    in buona sostanza mi servirebbe mixare questo

    http://www.instructables.com/id/Arduino-Solar-Tracker/

    con la tua

    http://www.mauroalfieri.it/?s=relay

    entrambi gli schemi li ho già costruiti e funzionano ma ora mi serve che i comandi dei servo mi vadano a comandare invece i 4 relè a cui aggancio i due motori 12v ….pur mantenendo i 4 bottoni di comando manuale.

    …qui cade l’asino… che sono io

    grazie e non inserire nel blog visto che c’è sito esterno.

    la mia mail è quella dell’iscrizione se preferisci comunicare a parte.

    ancora grazie per eventuali indicazioni che potrai darmi (sono da asilo su arduino per cui non dare per scontato che sappia cosa intendi) ciao

    marco

    1. Mauro Alfieri

      Ciao Marco,
      il link che mi hai inviato è di un tuo progetto?
      Mixare gli sketch non dovrebbe essere difficile, ti ho consigliato di leggere gli articoli del Blog per aiutarti a capire come fare.

      In sostanza quello a cui penso è:

      rilevi la differenza di valori tra le due resistenze, se ne hai 4 lavorerai a coppie;
      se la differenza ti indica che devi spostarti in senso orario, invii il digitalWrite( pin,HIGH ) sul pin che sposta il motore in quel senso, e viceversa.

      Non è complesso, unica complicazione è data dal tipo di relay: se utilizzi dei relay mono scambio dovrai usarne 2 insieme per invertire allo stesso tempo + e – del motore e quindi con 2 assi ti occorrono 4 relay e con 4 assi 8 relay.

      Sui siti da cui compro solitamente ci sono questo tipo di shield:
      http://www.robot-domestici.it/joomla/component/virtuemart/Arduino/arduino-shield/relay-shield

      Non mi è chiaro cosa intendi con: “grazie e non inserire nel blog visto che c’è sito esterno.”

      Mauro

  5. marco

    ciao mauro, nel senso che , il link esterno, non essendo un mio progetto non sapevo se preferivi non inserirlo

    1. Mauro Alfieri

      OK, ho capito, non preoccuparti mi piace rispettare il diritto d’autore.
      Quando scriveremo l’articolo sul tuo progetto inseriremo un link al sito in cui il video è presente.

      Mauro

    1. Mauro Alfieri

      Ciao Marco,
      ottima scheda, ne possiedo una anche io.
      Il limite rispetto al tuo progetto è che ogni relay possiede un solo scambio per cui per invertire un senso di marcia avrai necessità di tutti e 4 i relay presenti in modo che ai primi due colleghi il positivo ed il negativo del motore ed ai secondi due gli stessi due poli invertiti: negativo e positivo.
      Per far ruotare un motore in senso orario dirai all’OUT1 e 2 di eccitarsi andando in conduzione e OUT3 e 4 non eccitati, per invertire il senso di rotazione dirai all’OUT3 e 4 di eccitarsi ed OUT 1 e 2 non eccitati.

      A questo punto il tuo problema è risolto per un solo asse del tuo inseguitore, se vuoi comandare 4 motori hai bisogno di 8 relay di questo tipo.
      In alternativa puoi costruirti un circuito con 8 relay collegando le bobine a 2 a 2 ed eccitando ogni coppia con un OUT di questa scheda.

      E’ un lavoro un po’ più complesso ma sicuramente economico.
      Spero di essere stato chiaro.

      Mauro

  6. Mario

    Gent.mo Mauro

    Intanto complimenti per il sito che seguo quasi giornalmente alla ricerca di idee per il mio hobby
    preferito.

    Sono stato colpito in particolare dal progetto “inseguitore solare” che ho subito messo in pratica su
    breadboard.

    Volevo chiederTi se fosse possibile sostituire le fotoresistenze da 2 sensori PIR e montare sul servo un
    faro che illuminasse “inseguisse” eventuali intrusi; in modo che si sentissero maggiormente a
    disagio e quindi scoraggiati più della classica lampada che si accende al passaggio.
    Grazie
    Mario

    1. Mauro Alfieri

      Ciao Mario,
      grazie per il tuo sostegno con la tua presenza.
      L’inseguitore solare, come hai letto, si basa sul confronto di valori resistivi provenienti dalle fotoresistenze.

      I sensori pir non sono degli inseguitore ma più simili a degli interruttori azionati dalla presenza di un oggetto.
      In pratica non sono in grado di darti un segnale che varia rispetto alla visuale.
      Potresti provare con dei sensori ad ultrasuoni tipo SRF05, li trovi nel blog, e sperimentare cosa accade.

      Se ottieni un risultato soddisfacente mi piacerebbe pubblicarlo.

      Mauro

  7. Beppe

    Gentile Mauro,
    lavoro nel campo delle rinnovabili, trovo questa soluzione davvero interessante, chiedevo però se sarebbe possibile inserire dei dati astronomici (inseguitore astronomico) in modo tale che si potrebbe bypassare sensori e quant’altro e risulterebbe molto più preciso? o rimane comunque un strumento per hobbie?
    Chiedo questo perché potrei adottarlo per i miei prodotti.
    Grazie

    Beppe

    1. Mauro Alfieri

      Ciao Beppe,
      non conosco il campo in cui operi, almeno non così approfonditamente.
      Se sei interessato a provare a realizzare un progetto con Arduino posso darti qualche dritta e mi piacerebbe imparare cose nuove.

      Arduino é ottimo per prototipare poi le logiche ed i progetti andrebbero portati su prodotti atti a funzionare continuativamente per giorni.

      Ho già realizzato già progetti che vengono utilizzati da mesi e potrei provare anche con il tuo, ma lo considerò in tal caso un progetto commissionato.

      Mauro

  8. Giordano Settimo

    Ciao, progetto interessante che vorrei rifare da zero utilizzando 4 fotoresistenze e due assi. Quello che mi chiedo è: utilizzando dei fotoresistori, per quanto funziona indoor e tramite fonti di luce puntuali come la fiamma di un accendino o una torcia, con il sole (vero), si muoverebbe in modo coerente? Qualcuno l’ha testato?

    1. Mauro Alfieri

      Ciao Giordano,
      Io con 2 fotoresistenze l’ho provato su un pannello solare vero per circa 6 mesi senza problemi.

      Mauro

      1. Giordano Settimo

        Grazie, credo che rifarò l’esperimento ! 😉

        1. Mauro Alfieri

          Ciao Giordano,
          ottima idea !!!

          Mauro

  9. Mauro

    Ciao Mauro,
    molto interessante il progetto dell’inseguitore, io sto per realizzare un concentratore solare basato su una lente di Fresnel in plastica di 1 metro quadro di superficie, a tal proposito mi chiedevo se la precisione del puntamento del tuo progetto di inseguitore può essere idonea ad un concentratore. Ho letto che per tali dispositivi bisogna avere una precisione migliore di 0,27°, come pensi che si possa raggiungere tale precisione.

    Per ora un saluto e grazie.
    Mauro

    1. Mauro Alfieri

      Ciao Mauro,
      interessante provetto.
      Io non utilizzerei per tale progetto un servo ma un motore passo-passo, forse l’unico in grado di garantirti una tale precisione, tuttavia dipende poi dalla tua meccanica.

      Mauro

  10. Mauro

    Ciao Mauro,
    non sono sicuro ma credo che ci sia un errore nello schema sulla breadboard con Fritzing, in particolare il collegamento elettrico del servo. Mi sembra come che non sia collegato, in particolare non riesco a capire perché i due poli sono collegati alla linea negativa.
    Ti risulta anche a te?
    Si può avere lo schema elettrico normale.
    Ti ringrazio anticipatamente.

    Mauro

    1. Mauro Alfieri

      Ciao Mauro,
      hai ragione i collegamenti dell’alimentazione del servo sono sbagliati, non vanno tutti al polo negativo ma il negativo va a Gnd ed il positivo a +5v

      Il resto é corretto.

      Mauro

  11. Gabriele

    Salve Mauro, mi piace moltissimo il tuo progetto e avevo intenzione di realizzarlo per poi fare un’esposizione a scula, quindi ti ringrazio da subito per l’idea 🙂
    Ho però un problema nella realizzazione: dato che ho un motore passo-passo (bipolare, 48 passi, 12V) ho comprato una motor shield (Adafruit, il sito di riferimento è http://www.ladyada.net/make/mshield) che occupa tutti i pin della mia scheda Arduino… Come posso collegarci il circuito realizzato su breadboard delle fotoresistenze?
    Guardando meglio la shield da sopra e sotto mi sembra che alcuni pin siano inutilizzati dalla shield nonostante abbiano messo il contatto… Secondo te posso iserire in qualche modo i fili del circuito fotoresistenze sulla scheda Arduino o avresti altre soluzioni da suggerirmi?
    Grazie per l’attenzione e complimenti, ti ammiro e vorrei diventare un “DIY guy” come te! 🙂

    1. Mauro Alfieri

      Ciao Gabriele,
      sei già sulla buona strada, sono lusingato dai tuoi complimenti, anche io ho iniziato osservando gli altri e seguendo le piste sulle shield.
      Il fatto che tutti i connettori siano saldati non vuol dire che siano tutti usati, come hai notato, in ogni caso anche se fossero connessi a dei circuiti sicuramente nello schema trovi quali pin devono essere utilizzati per i passo-passo, quali per i DC e quali per i servo, quelli che non usi puoi usarli per le fotoresistenze.

      Mauro

  12. Lorenzo

    Ciao mauro, ho avuto modo di seguire i tuoi articoli poiche vorrei realizzare il mio primo inseguitore solare. A differenza del tuo io dovrei comandare un motoriduttore molto grande con tensione 220 e circa 800 watt. Vorrei inoltre inserire dei finecorsa. Pensi di poter darmi qualche indizio su dove cominciare? Ciao e grazie

    1. Mauro Alfieri

      Ciao Lorenzo,
      il primo inseguitore solare che ho realizzato usava un servo fatto in casa con un motoriduttore, funzionava a 12v ed aveva due finecorsa, dovresti trovare un mio video su youtube.

      Non usava Arduino ma un semplice circuito a relay.

      Mauro

  13. Danilo

    Ciao, vorrei sapere se hai usato un servo tradizionale o un servo a rotazione continua come dicono su tutti i siti e forum.
    Che valori di fotoresistenza bisogna adoperare, che valori usare.

    1. Mauro Alfieri

      Ciao Danilo,
      quello dell’esempio è un servo 0-180°, ma è solo un esempio puoi usare anche un motore passo-passo o altro; dovrai modificarne il codice, ma compreso il concetto ci vuole poco a modificarlo.
      Per le resistenze e tutte le altre info le trovi nell’articolo.

      Mauro

  14. Danilo

    Io lo fatto ugualmente ma non funziona e non so il perchè!!…

    Mi serve come progetto esame e sono disperato perchè con tutte le modifiche non trovo una soluzione

    1. Mauro Alfieri

      Ciao Danilo,
      ti consiglio di concentrarsi solo su una soluzione e approfondirla in tutti i suoi aspetti senza scoraggiarti e cambiar strada di continuo.

      Io faccio così quando voglio raggiungere un risultato.

      Mauro

  15. Danilo

    Comunque ho provato anche con un motore passo passo ma ho letto su delle guide che devo compare la Motor Shield di Arduino …

    1. Mauro Alfieri

      Ciao Danilo,
      puoi seguire uno dei tanti tutorial che ho scritto sui motori passo passo, ci sono tanti modi per pilotarlo.
      La Easydriver è uno di questi, l’importante è comprendere i concetti del progetto ed applicarla al motore/servo che vuoi.

      Mauro

  16. Giordano

    Salve, ritorno qui a scrivere per dei miei dubbi su Arduino. Sto cercando di fare un progetto molto simile a questo ma con quattro LDR e con due servo, uno per lo spostamento verticale e uno orizzontale. Mi sono ritrovato a dover lavorare con questi due servo https://docs.google.com/file/d/0B__O096vyVYqNmRlYmEyOTctMzc5ZS00NDhkLTk3YzItOThiOTdmZDM0ZWJh/edit?hl=en_US

    Collego i due servo ad Arduino, e Arduino l’alimento tramite l’USB del PC: scopro che la scheda non riesce ad alimentare correttamente i due servo… probabilmente a causa dell’assorbimento di corrente, Arduino UNO SMD va in protezione e spegne tutto. Come consigliato sul web cerco di connettere i motori con un alimentazione a 5V. Non avendo alimentatori opto per delle batterie. Per errore collego in parallelo due coppie (fra loro in serie) di batterie, ottenendo così 3 V. Da datasheet i servo hanno bisogno di 4,8V ma in realtà funzionano anche con 3V… strano….

    Oggi, dopo tante prove il servo alimentato in questa maniera non risponde più come deve ma effettua movimenti poco chiari e diversi da quelli comandati dall’uscita PWM. E’ possibile che le batteria si sono un pò scaricate e anche se il tester mi misura 3 V non bastano più ad alimentarlo correttamente? Perché tramite i 5V in uscita di arduino non si riesce a muovere due servi? E’ normale o sbaglio qualcosa io? Mi consigliate un alimentatore esterno per alimentare i servi? Alimentando Arduino tramite l’alimentatore, ottengo prestazioni migliori in tensione e corrente?

    Mauro, ti prego illuminami… non pensavo di dover perdere un pomeriggio nel far muovere due servi con Arduino… 🙁

    1. Mauro Alfieri

      Ciao Giordano,
      solo un pomeriggio? Sei dato bravissimo, io a volte perdo settimane su un progetto 🙂
      Non scoraggiarti é il bello di giocare con arduino 🙂

      Per l’alimentazione usa i 6v, se leggi il documento che mi hai inviato capirai che funzionano meglio, più velocità e più coppia.
      Se la batteria si scarica potresti avere una situazione di instabilità.

      Le uscite arduino non sono indicate per sostenere a lungo dei servo di quel tipo, l’alimentazione esterna separata per arduino (7v -12v) e per i servo (4,8 – 6v) é fondamentale.

      Mauro

      1. Giordano

        Finalmente funziona… sto montando un video dove mostro il progetto 🙂

        1. Mauro Alfieri

          Ottimo Giordano,
          sono contento per te, se vuoi pubblicare il tuo progetto inviami un articolo, il codice ed il video ed io sarò lieto di offrirti lo spazio del blog

          Mauro

          1. Giordano

            Grazie, spero dopo gli esami 🙂

      2. Giordano

        http://youtu.be/OhBPjC6dmXM

  17. Danilo

    Ciao Mauro…sono ancora qui con il solito problema dell’inseguitore soalre con un servo e 2 fotoresistenze LDR da 33k….sulla guida dice di inserire un servo a rotazione continua ma a me gira sempre come se le fotoresistenze non ci fossero…invece se metto un servo a rotazione non continua gira solo di 30 gradi come posso ovviare a questo problema? Premetto che lo alimento con un alimentatore esterno da 9V 600mA …

    1. Mauro Alfieri

      Ciao Danilo
      io non ho usato un servo a rotazione continua.

      Mauro

    2. Giordano

      Posta i tuoi collegamenti e il codice.

  18. Danilo

    Finalmente anche il mio progetto e stato realizzato e funziona a meraviglia grz di tutto MAURO 🙂

    1. Mauro Alfieri

      Grande Danilo,
      Se vuoi condividerlo sul Web io ti lasciò volentieri lo spazio per farlo.
      Mandami alla casella info dl blog una email con foto,testo,sketch ed eventuale filmato 🙂 e scrivo un articolo a te dedicato.

      Mauro

  19. Danilo

    Si se mi dai la tua email ti faccio il video e le foto con tutta la documentazione

    1. Mauro Alfieri

      Ciao Danilo,
      l’email é la info del blog che trovi anche nella pagina contatti.

      Aspetto incuriosito il tuo materiale.

      Mauro

  20. Manuel

    Ciao Mauro, ci siamo già sentiti con un post sul tuo blog.

    Volevo chiederti se potevi spiegarmi come avviene la lettura

    su un unico pin di due LDR nel progetto ‘inseguitore solare’;

    non riesco a capire che dato viene letto su a0 e come fa il

    motore ad interpretarlo (cioè rotazione in senso orario e

    rotazione in senso antiorario).

    Saluti
    MC

    1. Mauro Alfieri

      Ciao Manuel,
      se ho compreso la tua richiesta é descritta nel paragrafo dedicato al principio di funzionamento.
      La lettura del pin A0 é affidata alle linee dalla 28 in poi e funziona come un partitore di resistenze il cui punto centrale é 512 per arduino essendo le fotoresistenze della medesima impedenza.

      Infine il gioco delle tolleranze per evitare che il servo continui a ruotare a vuoto lo puoi leggere nell’ultimo paragrafo dell’articolo.

      Mauro

  21. francesco

    ciao mauro.
    sto realizando interamente da me un Inseguitore solare. la parte eletronica ho preso uno schema su internet
    invece la parte meccanica viene da un motorino tergicristalli da una vecchia auto.
    e fin qua tutto ok. il problema sta tutto sulle fotoresistenze perche non so come vanno posizionate..
    le tre F.R sono di diametro13mm e le ho inserite in un tubo di tale diametro nero e vanno dentro di circa 10cm..
    mi potresti dare un consiglio sul posizionamento delle F.R..Grazie infinite….

    1. Mauro Alfieri

      Ciao Francesco,
      non comprendo bene la tua domanda, in che senso come vanno posizionate?
      Nell’articolo é spiegato passo-passo come posizionarle, a 90gradi di inclinazione una dall’altra, con tanto di foto, disegno e schema.

      Io non le metterei in un tubo, limita di certo la quantità di luce che percepiscono, anche libere, come le ho messe io, funzionano in modo perfetto.

      Mauro

  22. roberto

    Al posto delle foto resistenze che hai utilizzato posso usare delle ldr04 che sono da 2 a 20kohm? Devo modificare qualcosa nel circuito e nello sketch di Arduino?

    1. Mauro Alfieri

      Ciao Roberto,
      se usi due fotoresistenze identiche il circuito funziona nel medesimo modo, senza apportare modifiche.

      Mauro

  23. Alessandro

    Ciao mauro,
    Anche io vorrei costruire un inseguitore di luce,essendo alle prime armi chiedo a te un consiglio :La mia idea sarebbe quella di costruire una piccola macchina con motori DC in grado di seguire in maniera autonoma la luce tu che dici ? Grazie ciao

    1. Mauro Alfieri

      Ciao Alessandro,
      bel progetto, mi chiedo perché parli di motori e non di motore.
      A quanti assi vuoi realizzarlo?

      I motori CC sono molto potenti ma difficili da controllare se non usi un encoder per conoscere la posizione dell’albero.
      I servomotori sono ugualmente potenti ma più semplici da pilotare con precisione.

      Mauro

  24. Alessandro

    Ciao io utilizzo due motori,cc collegati ad un unico asse grazie al gearbox della tamiya, questi due motori sono collegati in parallelo ad un motor driver cosi li faccio pilotare come mi pare e quindi in base alla luce li faccio muovere avanti indietro destra e sinistra .
    Alessandro

    1. Mauro Alfieri

      Ciao Alessandro,
      ho capito come sono collegati i due motori e come agiscono.
      Il tuo progetto è mono-asse pur utilizzando due motori.

      Il mio consiglio è di utilizzare motori di tipo passo-passo o servomotori per realizzare un inseguitore solare perché più semplice e preciso.
      Se vuoi utilizzare cmq i tuoi motori puoi modificare il codice del mio progetto e verificare se riesci a mantenere la posizione costante al variare del sole.

      Mauro

  25. Alessandro

    Ok, magari userò una piccola torcia puntata sulle fotoresistenze per far vedere che il robottino mi seguirà, ti ringrazio davvero .
    Ciao Alessandro

    1. Mauro Alfieri

      Certo Alessandro, é un ottimo test.

  26. Simone

    Ciao Mauro, come mai non segue con precisione il fascio di luce? a mio parere dovrebbe seguirlo non spostarsi tutto da un lato oppure nell’ altro, se uno prova a puntare la luce di un cellulare non lo segue, ma si sposta fino ad arrivare a fine corsa del servo da 180°.
    Forse è meglio usare 2 ingressi analogici?
    Ti ringrazio Saluti

    1. Mauro Alfieri

      Ciao Simone,
      nel mio video si vede esattamente che il servo si muove in una direzione o nell’altra quando il fascio di luce incide sulle fotocellule in modo da irradiarne una più dell’altra.

      Se ripeti l’esperimento ricordati che il fascio di luce deve essere posizionato sull’asse verticale a 45 gradi rispetto alle due fotoresistenza.

      Se leggi bene il principio di funzionamento descritto capirai cosa intendo e perché uso un solo pin, nulla ti impedisce di usare due pin ma dovrai ragionare diversamente.

      Mauro

  27. Daniel

    Ciao Mauro, sarei interessato a portare questo progetto per la tesina di quinta superiore con una piccola modifica.
    Potrei collegare al servomotore un mini pannello solare fotovoltaico?

    1. Mauro Alfieri

      Ciao Daniel,
      certo che puoi, ti consiglio di leggere gli altri articoli dedicati al controllo di un pannello solare, in uno ho collegato il mio pannello solare ad un servo autocostruito, tu puoi utilizzare un servo per modellismo.

      Mauro

  28. Alberto

    Ciao Mauro, ci siamo conosciuti al recente corso base di Arduino (novembre).
    Sono ai primissimi passi e trovo molto interessante il tuo articolo, lo applicherei per riprese fotografiche tipo Time Lapse.
    Vorrei poter comandare un motore 12 V, da dove mi consigli di iniziare?? Dove posso trovare informazioni per il collegamento ed il controllo del motore??
    Il tutto dovrebbe essere spiegato molto semplicemente, scusami ma mi occupo di tutt’altro che elettronica sebbene la stia trovando molto appassionante, anche per merito tuo.
    Grazie mille ciao. Alberto.

    1. Mauro Alfieri

      Ciao Alberto,
      mi fa piacere sapere che stai realizzando un tuo progetto e che il mio corso arduino ti abbia ispirato.
      In merito al tipo di motore da usare per time lapse io ti posso suggerire due ipotesi:

      1. un motore passo-passo
      2. un servomotore

      Le caratteristiche ed i collegamenti, oltre ai driver elettronici necessari e gli sketch li trovi nel blog.
      Ci sono molte soluzioni all’idea che hai in mente, ti consiglio di leggere un po di articoli sui de argomenti e commentarli se hai dubbi.

      Mauro

  29. luca

    quando metto in arduino il tuo sketch da errore ” ‘servo’ does not name a type’ ” riferito nello sketch alla riga 19, come mai?

    1. Mauro Alfieri

      Ciao Luca,
      hai incluso la libreria Servo.h?

      Mauro

  30. ali

    ciao mi chiamo ali!!
    sto facendo l’itis….ed quest ‘ anno è il mio ultimo anno e stavo pensando di portare l’inseguitore solare come progetto all’esame di maturita!!
    la domanda è che il progetto dell’inseguitore che hai postato te non è ancora finito?? se no, quanto manca ancora??
    stavo pensando di farlo con l’arduino uno….mi riesci a dire piu o meno quanto viene a costare in totale fare un inseguitore….tenendo in mento che non devo fare una cosa troppo sofisticata…..ma è solo un progetto per la scuola 🙂
    grazie in anticipo!! 😀
    cioa

    1. Mauro Alfieri

      Ciao Ali,
      bel progetto da portare all’esame di maturità 🙂
      Di progetti dedicati all’inseguitore solare ne ho fatti un paio e li trovi sul blog.
      Questo in particolare é un esempio fatto con un servo a cui non devi far altro che aggiungere il pannello solare, ti consiglio la solar shield per avere già integrata anche la parte di caricabatterie.

      Puoi realizzare un piccolo esempio con pannello piccolo e quindi un servo non molto potente, per il progetto di maturità dovrebbe essere sufficiente.

      Il costo non saprei dirtelo prova a fare la lista della spesa su robot-domestici, pensando a cosa vorresti metterci oltre ai componenti che ti ho suggerito.

      Mauro

  31. ali

    Grazie per avermi risposto alla domanda precedente!! 🙂

    Ti volevo chiedere che secondo te, questo progetto conviene farlo solo con l’arduino uno?? È piu facile con quest’ultimo???

    E poi un ultima domanda…come motorino conviene usare servomotore o motore passo-passo?? e motorino di quale potenza?? Tenendo conto che non ci metto un vero e proprio pannello fotovoltaico!!
    E se faccio un ipotesi di mettere un pannello non troppo grande (15×15cm, se riesco a trovarne uno di quelle dimensioni, e ovviamente non collegato solo da abbellire un po il progettino) quale motore mi servirebbe??

    Aspetto la tua risposta 😀
    Grazie in anticipo 🙂

    1. Mauro Alfieri

      Ciao Ali,
      l’arduino uno per il progetto dell’inseguitore solare é più che sufficiente considerando che ti servono solo 2 fotoresistenze e un servomotore ti avanzano anche tanti altri pin.

      Io ho usato un servomotore ad uso modellistico e ti suggerisco di fare altrettanto, sul sito robot-domestici.it, da cui acquisto, ci sono di diverse potenze io do solito uso un 15Kg/cm da poche decine di euro, se vuoi spostare un pannello da 15x15cm ti bastano pochi g/cm

      Da loro trovi anche i pannelli solari ed i circuiti di carica così puoi caricare le batterie che alimentano il tutto e il progetto é autonomo e più realistico.

      Mauro

  32. alessandro

    Salve Mauro, ho visto che sei molto disponibile, vorrei chiederti un parere (purtroppo mi sono affacciato al mondo di arduino da pochi giorni quindi sono molto inesperto).

    Vorrei realizzare il tuo inseguitore solare, a tal proposito ho comprato un servomotore (modello Mg995 da 15 kg/cm , se è possibile vorrei postare il link con la descrizione dell’articolo).
    Quello che vorrei chiederti è:
    devo utilizzare un motor shield? Collegandolo direttamente non rischio di bruciare l’arduino?
    Grazie infinite

    1. Mauro Alfieri

      Ciao Alessandro,
      conosco il tipo si servo che hai utilizzato.
      I servo non hanno bisogno di shield aggiuntive per essere controllati, l’importante é alimentare il servo in modo indipendente da Arduino, trovi un mio articolo in cui ho descritto come collegare un servo ed alimentarlo esternamente.

      Mauro

      1. alessandro

        Grazie l’ho trovato!
        Sei gentilissimo! Spero di poterti disturbare ancora quando avrò altri dubbi!
        Alessandro

        1. Mauro Alfieri

          Ciao Alessandro,
          puoi sempre commentare i miei articoli quando hai dei dubbi che li riguardano.
          Ti chiedo la cortesia di controllare prima che ci sia un articolo che risponde al caso tuo per agevolarmi nelle risposte e risolvere prima i tuoi dubbi.

          Mauro

  33. Federico

    Salve Mauro,
    Ho visto il tuo progetto di inseguitore solare e ho deciso di prenderne spunto per il progetto per l’esame di maturità.
    Quello che voglio realizzare è un inseguitore solare che per mezzo di pannello solare incameri la stessa energia solare e la trasformi in energia elettrica da utilizzare per caricare un cellulare.
    Non avendo grandi conoscenze di elettronica volevo chiederti se possibile un aiuto iniziale su cosa comprare.
    Di sicuro so che servono 1 motore passo-passo per muovere il pannello e un altro per l’inclinazione dello stesso pannello, per il resto aspetto una tua risposta.

    Grazie Federico

    1. Mauro Alfieri

      Ciao Federico,
      non sei il primo che mi scrive con il tuo stesso progetto e spero non si tratti di un tuo compagno di classe, dovresti trovare il suo commento qualche settimana fa.

      Tornando al progetto ti do il medesimo consiglio che ho dato all’altro ragazzo: la scelta dei motori dipende dalla grandezza del pannello solare che vuoi usare, io userei dei servomotori che risultano più semplici da gestire, inoltre per lavorare su due assi devi usare quattro fotoresistenze connesse a croce a due a due come in questo progetto, il codice non é molto differente da quello che hai visto in questa pagina.

      Ti consiglio infine di leggere e comprendere bene come funziona il servomotore e come lavorano le fotoresistenze per affrontare al meglio il tuo progetto.

      Mauro

  34. Federico

    Salve Mauro,
    grazie per i tuoi consigli sull’utilizzo dei servomotori e le fotoresistenze incrociate.
    Ti chiediamo aiuto visto che abbiamo un ulteriore problema, non sappiamo come fare per collegare il pannello solare costruito saldando celle-fotovoltaiche ( in totale 6 V in uscita) alla presa USB ( per collegare il nostro cellulare da caricare) che da in uscita 5 V.
    Aspettiamo tuoi consigli su come risolvere il problema, grazie in anticipo
    Federico

    1. Mauro Alfieri

      Ciao Federico,
      esistono alcuni circuiti detti concertitori DC-DC che puoi utilizzare per portare la tua tensione da 6v a 5v, io ne ho recensito uno qualche anno fa.
      In alternativa, un po’ più complessa potresti costruirti un circuito con un integrato del tipo 7805.

      Mauro

  35. Valentino Litrico

    Salve prof.
    argomento interessante quello del fotovoltaico, ma ha mai pensato di alimentare arduino direttamente con un pannello fotovoltaico (e qualche batteria tampone ovviamente per ovviare alla discontinuità di luce diretta) per realizzare un progetto completamente green?
    io ci sto studiando, ho un pannellino da 3w con 6v di picco e a pieno sole li raggiunge e per alimentare arduino è anche troppo, ma devo trovare il modo di ricaricare le batterie perchè ho visto che le nimh hanno un metodo di ricarica, le nicd ne hanno un’altro e mi sto un po’ bloccando.

    1. Mauro Alfieri

      Ciao Valentino, non sono un professore ma solo un appassionato.
      6v per arduino uno non bastano a garantire che tutto funzioni bene in quanto il voltaggio minimo di alimentazione é 7-20v

      Per caricare la batteria ti basta un caricabatterie per pannello solare, si parte da. 6v

      1. Valentino Litrico

        Professore o meno è comunque l’autore di una grande risorsa per tutti coloro che si avvicinano ad arduino e anche per chi ha già le mani in pasta ma cerca idee interessanti!
        ho misurato l’uscita del pannello, oggi con cielo coperto e sole debole, in uscita ho sempre 6v ma poca corrente circa 50 ma che a pieno sole arrivava a 500ma quindi credo che abbia un regolatore di tensione , step-up o roba simile essendo uno di quei pannellini cinesi 15×15 con cavo usb già incorporato..l’idea era comunque di usarlo per tenere in carica un pacco batterie che alimenterà i motori perchè arduino lo alimenterò a parte con un powerbank da 3000mah (almeno nella mia testa), l’unica mia preoccupazione (forse infondata visto che il sole a l’aquila non fa poi così paura) è di sovraccaricare le batterie.. cosa che non avverrebbe se evito che le batterie rimangano in carica se l’aggeggio non è in funzione per troppo tempo! voglio costruire una “piccola” 500 telecomandata con tettuccio solare, ho già i motori, radiocomando e tutto o almeno sul banco di lavoro funziona tutto.. devo pensare all’alimentazione e alla scocca dell’auto .. ce la posso fare!

        1. Mauro Alfieri

          Ottimo Valentino !!!

  36. Alessandro

    Ciao come posso fare per aumentare la velocità del servo ?

    Grazie in anticipo della risposta

    1. Mauro Alfieri

      Ciao Alessandro, la velocità di rotazione di un servo é stabilità in fase di costruzione dal produttore e la trovi tra le caratteristiche del servo.

      In questo progetto la velocità non conta in quanto il sole si sposta sull’orizzonte nell’arco di diverse ore in un giorno.

  37. zain

    ciao mauro!!
    sto pensando di fare questo progetto per l’esame di maturità!! e ti volevo chiedere qual’è il modello del motore che stai usando in questo progetto?? e qual’è il peso massimo in grado di sollevare questo motorino??
    e se metto un piccolo pannello fotovoltaico cosa dovrò aggiungere (intendo un regolatore di tensione/corrente e/o anche un immagazzinatore di energia e/o altri componenti che secondo te devono/potrebbero essere aggiunti) ??
    e un’ultima domanda stupida..cambiare i valori della resistenze cosa va a modificare???

    grazie in anticipo 😀

    1. Mauro Alfieri

      Ciao Zain,
      penso sia un bel progetto per l’esame di maturità.
      Puoi usare un servo ad uso modellistico a tua scelta che abbia sufficiente coppia per spostare il pannello che scegli, quello che di solito uso io è 15Kg/cm che trovi da robot-domestici.it

      Le resistenze è importante che siano uguali, non importa quanto siano ciascuna.
      Per gli altri dubbi ti invito a leggere tutti i miei articoli dedicati all’inseguitore solare.

      1. zain

        grazie mauro!!
        guarda ti faccio un’ultima domanda stupida io stavo pensando di mettere un PANNELLO SOLARE DA 1 WATT (100x75x2.9 mm, pesante 33g) e è obbligatorio usare un solar shield??? nn c’e un altro modo senza dover usare un solar shield…non spendendo tanti soldi??

        1. Mauro Alfieri

          Ciao Zain,
          la solar shield non serve per il progetto dell’inseguitore solare, come avrai letto nel mio articolo, serve a ricaricare una pila LiPo da 3,7v ed erogare 5v all’occorrenza per alimentarti l’arduino.
          Puoi sostituirla con un comune regolatore di carica per pannelli solari.

          1. zain

            grazie mille mauro mi ha tolto una preoccupazione!!
            spero di poterti disturbare ancora se ho dei dubbi!! 😉
            grazie ancora!! 🙂

  38. sergio

    ciao mauro
    io invece di usare un servo voglio usare 2 motori in DC pero siccome arduino non mi puo dare 200mA ho provato ad usare 2 driver ovvero 2 transistor BC337 ed a questo punto mi servirebbe una dritta per lo sketch.. GRAZIE

    1. Mauro Alfieri

      Ciao Sergio,
      il concetto di funzionamento non varia se usi un servo o un motore DC, dovrai cambiare lo sketch nel controllo del motore e ragionare mantenendo il motore in moto in un dato verso di rotazione fino al raggiungimento del bilanciamento della luce su entrambe le resistenze.

  39. mattia

    Ciao Mauro

    Se uso un servo rotazione continua che sketch devo usare
    grazie

    1. Mauro Alfieri

      Ciao Mattia,
      posta così la tua richiesta non ha senso per alcune ragioni:

      1. in questo articolo non si parla di servo a 360°;
      2. non è utile in questo progetto un servo a 360° in quanto il sole al ma compie 180° sull’orizzonte, come descritto;
      3. un servo a 360° non si controlla in gradi ma in velocità, leggi l’articolo dedicato ai servo a 360°;
      4. se vuoi usare un servo a 360° avrai un movimento completamente differente da gestire per cui puoi prendere da questo articolo solo i concetti di inseguimento e non di certo sketch o altro.

  40. ali

    ciao mauro….

    guarda io sto facendo un inseguitore solate biassiale…con 4 ldr e due servo motori…ho gia fatto tutta la struttura pero adesso ho un problema: praticamente i due servo ruotano..pero ruotano a scatti…e nn capisco il perche!! mi riesci ad aiutare??? plzzzz

    1. Mauro Alfieri

      Ciao Ali, stai usando il mio sketch ? Potrebbe essere dovuto al delay o al modo in cui hai posizionato le fotoresistenze.
      Avrai capito che il mio sketch, leggendo la descrizione, lavora un grado alla volta.

  41. ali

    grazie per la risposta mauro!!

    cmq nn sto usando il tuo sketch…sto usando un altro!! telo posto giu… e se riesci a dirmi dove ho sbagliato!! e poi nn riesco a capire il motivo ….perche si muove a scatti??

    [codice rimosso in automatico]

    1. Mauro Alfieri

      Ciao Ali,
      come hai letto in fondo all’articolo il codice degli sketch viene rimosso in automatico.
      Non riesco a correggere gli sketch di altri perchè non ne conosco il ragionamento e non avrei modo di provare le correzioni.

      Prova a comprendere il mio ragionamento applicato al mio inseguitore solare.

  42. ali

    okay..
    ma secondo te, in base al tua esperienza, da cosa puo essere dato il muoversi a scatti del servo motore???

    1. Mauro Alfieri

      Ciao Ali,
      potrebbe essere dovuto
      sia a fattori meccanici: potenza insufficente, danneggiamento del servo;
      sia a fattori elettrici: alimentazione insufficiente, collegamenti ballerini;
      sia a fattori informatici: errore nello sketch, ragionamento non corretto.

  43. stefano

    ciao mi chiamo Stefano e congratulazioni per il progetto, io ho seguito lo schema di collegamento dell’inseguitore solare e anche il programma;però appena lo carico, il servomotore ( rotazione continua) mi continua a girare e le due fotoresistenze (ldr 20-50k) sembrano non rilevare luce.Anche se muovo la basetta il motore non si ferma. Non dovrebbe fermarsi appena rileva luce ? Se mi può dare qualche consiglio te ne sono grato.
    ciao

    1. Mauro Alfieri

      Ciao Stefano,
      se leggi bene l’articolo scoprirai che uso un servo 0-180° e non un servo a rotazione continua.
      Il tuo problema è proprio il servo a rotazione continua che non puoi controllare in gradi ma solo in velocità così come puoi leggere nelle caratteristiche di quel tipo di servo.

      Leggendo e comprendendo il concetto di funzionamento potrai adattare il mio progetto anche al tuo servo.
      Certo questo lo lascio fare a te.

  44. nino

    potresti postare il software modificato in grado di calcolare l’energia istantanea prodotta dal pannello? Grazie.

    1. Mauro Alfieri

      Ciao Nino,
      in questo articolo si parla di un inseguitore solare con arduino, non di un sistema di rilevazione dell’energia istantanea prodotta.
      Nel progetto la funzione di calcolo dell’energia prodotta non è possibile perché manca tutta la componente elettronica.

  45. Egidio

    Ciao sono Egidio ho seguito tutto ciò che dici sul pilotaggio di due motori mediante Arduino motor Shield credevo di aver trovato la soluzione al mio problema ma mi sbagliavo, perchè i miei due motori 12 Volt e 180Watt non li posso pilotare, gli Ah. sono molti di più di 2 per canale.
    Ti scrivo per sapere che tipo di soluzione posso adottare.
    ringraziandoti anticipatamente
    porgo distinti saluti
    Egidio Vitali

    1. Mauro Alfieri

      Ciao Egidio,
      dovresti trovare un driver che supporti i 180W, francamente non ne conosco, ma sono certo che qualche ditta di elettronica produca qualche driver che puoi utilizzare.

  46. Stefano

    Salve Mauro, ho un problema con due servi. Utilizzo due servi ed un joistick a 2 assi. Quello orizzontale per un servo ed il ericale per un altro. Il problema che quando ruotano non riesco a fargli mantenere l’ultima posizione raggiunta. Posizione iniziale 90 ° lo porto a 130° spostando in potenziometro verso l’alto quando rilascio ritorna a 90°.
    Potresti aiutarmi a capire con qualche esempio e linea di programma.La mi a idea era questa:

    [ codice rimosso in automatico ]

    cosa ne pensi? aiutami perché i servi ruotano da un lato e dall'altro no.

    1. Mauro Alfieri

      Ciao Stefano,
      innanzitutto ti chiedo di leggere i miei articoli fino alla conclusione troverai che non è possibile incollare codice nei commenti primo perché arriva illeggibile e secondo perché non riesco a correggere tutti gli sketch che mi arrivano in quanto siete in tanti a scrivere ed il mio tempo è limitato 🙂

      In merito al tuo quesito: si verifica quello che dici perchè tu imposti i servo per seguire il joystck ( vedi articolo sul pan e tilt per telecamera ) e quindi quando il joystick torna alla posizione centrale il servo lo segue.
      Se il servo non ruota da un lato potresti aver sbagliato l’impostazione dei gradi, nell’articolo suggerito trovi come impostarli.
      Se vuoi che il servo resti nella posizione finale devi prima decidere come e quando questa posizione deve cambiare altrimenti raggiungi un punto e non torni mai più a 90° o ad altre posizioni.

  47. Mario

    Mauro, trovo il tuo inseguitore semplice e geniale. Io però vorrei sostituire ai servi dei relè che mi comandino motori in continua, a causa del peso del pannello. Vorrei inoltre poter agire anche sull’asse x. Sei in grado di aiutarmi?
    Ti ringrazio anticipatamente.

    Mario

    1. Mauro Alfieri

      Ciao Mario,
      una volta compresa la teoria che c’è dietro il mio inseguitore solare puoi adattare il movimento ai motori in cc o a dei relay senza difficoltà.
      Semplicemente invece di incrementare i gradi del servo darai HIGH al pin del relay corrispondente alla direzione in cui vuoi spostare il motore.

  48. leo

    Ciao e complimenti per il progetto…
    sono alle prime armi con arduino e stavo provando il tuo progetto solo che se non mi sbaglio c’è un errore nello schema elettrico nella connessione del servo, il positivo e il negativo sono collegati sulla stessa linea…

    1. Mauro Alfieri

      Ciao Leo,
      ottimo spirito di osservazione, hai ragione mi è sfuggito.
      Appena riesco a rifare lo schema lo sostituirò con uno corretto.

      Grazie

  49. Pietro

    Ciao Mauro
    Vorrei rendere orientabili i pannelli solari montati sul Roll bar della mia barca.
    Immaginando che nello specifico, un servomotore in genere sia troppo piccolo, vorrei utilizzare un motore passo passo unipolare che ho recuperato da una vecchia forocopiatrice (TEC CBA45)
    come si può adattare il tuo progetto originale?

    1. Mauro Alfieri

      Ciao Pietro,
      ovviamente in un commento è escluso che io possa scrivere un codice per il tuo progetto, posso invitarti a leggere e comprendere i miei articoli sull’argomento per comprendere come eseguire tale spostamento.
      Se posso darti un consiglio opterei per un motore DC ( corrente continua ) in quanto non è fondamentale conoscere la posizione del motore in un progetto come l’inseguitore solare, come avrai compreso dall’articolo, è più importante avere potenza sufficiente alla rotazione dei pannelli ed usare le fotoresistenze come feedback.

  50. Pasqualino

    ciao complimenti per il lavoro!

    se ti va di darmi 2 dritte per un progetto simile te ne sarei grato a vita (sono un neofita mi ritrovo a fare un progetto simile per l’esame di stato senza capirci una mazza di elettronica e sistemi purtroppo).

    volevo fare una cosa MOLTO simile con l’aggiunta di un pannellino fotovoltaico da 5w, mi è stato detto che sarebbero serviti 2 servomotori e 4 fotoresistenze…

    1. Mauro Alfieri

      Ciao Pasqualino,
      se vuoi realizzare un inseguitore solare a 2 assi hai necessità del materiale che indichi. Se lo realizzi ad un solo asse ti basta un solo servo e sole 2 resistenze ed il progetto è già fatto in questo articolo.

  51. Giuseppe

    Salve Mauro,
    Premetto che sono più che un neofita della programmazione e dell’elettronica ma questo universo mi attrae mi attrae e vorrei esplorarlo , premesso questo ho iniziato a fare alcuni esperimenti col Arduino uno seguendo alcuni video , arrivato al tuo esempio di inseguitore solare ho trovato alcune difficolta col programma ti chiedi se tu potessi darmi chiarimenti sul messaggio d’errore che ricevo dopo aver caricato il programma da te indicato per ” l’inseguitore solare” .
    Ti ringrazio per la collaborazione
    Giuseppe
    A SEGUTO IL MESSAGGIO D’ERRORE.

    ino:10:10 error: expected initializer before ‘servo’
    ino: In function ‘void setup ()’:
    ino: 13:23: ‘IMPUT’ was not declarated in this scope
    ino:14:3: error ‘my’ was not declarated in thisa scope
    ino:14:6: error: expected ‘ ; ‘ before ‘servo’ ino:15:6: error: expected ‘ ; ‘ before ‘servo’
    ino: In function ‘void loop()’:
    ino:21:6: error: expected primary-expression before ‘}’ token
    ino:21:6: error: expected ‘;’ before ‘}’ token
    ino: At global scope:
    ino:22:8: error: expected unqualified-id before ‘if’
    ino:23:8: error: expected unqualified-id before ‘{‘ token
    ino:26:10: error: expected unqualified-id before ‘if’
    ino:27:10: error: myservo does not name a type
    ino:29:14: error: expected constructor, destructor, or type conversion before ‘(‘ token
    ino:30:9: error: expected declaration before ‘}’ token
    errore durante la compilazione

    1. Mauro Alfieri

      Ciao Giuseppe,
      ad occhio hai solo commesso qualche errore di copia e incolla, probabilmente hai riscritto lo sketch guardando il mio e non ti sei accorto di aver digitato male delle informazioni.
      Se sei alle prime armi ti consiglio di iniziare a leggere il mio corso online arduino gratuito e se vuoi capirci di più puoi partecipare ad uno dei miei corsi in aula.

      1. Giuseppe

        Grazie per la risposta Mauro. e per il consiglio potrebbero interessarmi anche i tuoi corsi io vivo in Toscana hai un programma di date per i corsi?

        1. Mauro Alfieri

          Ciao Giuseppe,
          per le giornate di corso puoi far riferimento al link:http://www.mauroalfieri.it/corso-arduino.html in cui pubblico le date.
          In Toscana non ho in programma date dovresti raggiungermi a Milano.
          Se ti iscrivi alla newsletter riceverai le date dei prossimi corsi quando vengono indetti.

  52. Fabrizio

    Ciao Mauro
    vorrei realizzare un inseguitore con un motoriduttore a 12 volt utilizzando il concetto illustrato nel tuo esempio
    con il servo. pensavo di usare una scheda motore shield motor FE . il mio problema è la IF che gestira la valutazione del bilaciamento delle due fotoresistenze ed il comando che dovro dare per comandare le porte pwm . Grazie

    1. Mauro Alfieri

      Ciao Fabrizio,
      se dovessi affrontare un progetto come questo propenderei per un servo in quanto ha già a bordo l’elettronica e la meccanica utili e necessari al corretto funzionamento.
      Se proprio vuoi usare un motoriduttore devi cambiare completamente il metodo di funzionamento e controllarlo con i tempi di accensione e spegnimento al posto dei gradi.
      Come PWM manterrei un valore medio, da verificare con il tuo motore e la tua meccanica in modo che lo spostamento non sia eccessivamente veloce ma sufficientemente lento da consentire ai sensori di rilevare lo spostamento e interromperlo al raggiungimento dello zenit.
      In generale non lavorerei per if() ma sfruttando il ciclo loop(9 stesso.

      1. Fabrizio

        Grazie MAURO
        la meccanica ce l’ho già è per quello che non uso uno step motor
        pensavo che il sketch di esempio dove incremmenti con servoGrad++
        io potrei mettere
        digitalWrite( pinDirA,HIGH );
        analogWrite( pinPwmA,128);
        delay(20);

        e poi verificare la situazione delle due foresistenze .
        puo andare come ragionamento embrionale .
        ciao

        1. Mauro Alfieri

          Ciao Fabrizio,
          potrebbe funzionare, è da provare, io ragionerei come ti ho scritto ma ogni altro metodo, funzionante, va bene.

  53. Andrea Vespa

    Ciao Mauro,

    premetto che sono un neo-principiante e ho trovato il tuo articolo in rete e lo trovo interessante come progetto d’esame di maturità.
    Volevo costruire un servomotore autoalimentato da un piccolo pannello solare che, a sua volta ricarica la batteria del mio telefono.
    Inoltre volevo aggiungere un piccolo particolare, una volta finito il ciclo, far ritornare in posizione inziale il servomotore in modo che sia già pronto per il ciclo successivo.
    Puoi consigliarmi intanto un servo motore che tiene il peso?
    Puoi dirmi come aggiungere la nuova stringa di codice per il ritorno in posizione iniziale del ciclo?

    grazie,

    Andrea.

    1. Mauro Alfieri

      Ciao Andrea,
      se leggi bene il mio articolo ed il tipo di teoria secondo cui si muove il mio inseguitore non ha bisogno di rientrare in posizione al sorgere del sole, quello è il comportamento di un tracciatore solare.
      In merito al servo dipende molto dal tipo di pannello e dal momento meccanico che avrai, puoi calcolarlo con le formule della fisica elementare. in ogni caso i servomotori solitamente spostano qualche Kg al cm, e sui siti di modellismo ne troverai di tanti modelli adatti.

  54. Andrea Vespa

    Grazie Mauro per la tua risposta.

    grazie delle informazioni, ora ho le idee più chiare!!

    Cordiali Saluti

    Andrea Vespa

  55. andrea

    domanda, a quanti gradi di precisione si può arrivare con questo sistema?? sto cercando di costruire un modello per pannello ad alta concentrazione e il top sarebbe ad arrivare a un errore di 0,5°

    1. Mauro Alfieri

      Ciao Andrea,
      solitamente io utilizzo servo con precisione del grado, ma so che esistono servo con precisioni maggiori, devi verificare tra i produttori di servomotori se trovi quello adatto alle tue esigenze.

  56. Mohamed

    Ciao Mauro, ho visto il tuo progetto qua su internet. Voglio farlo pure io in vista dell’esame di maturità.
    Qua dove abito io non ci sono negozi dove posso acquistare i componenti che hai elencato quindi da dove posso acquistarli?

    1. Mauro Alfieri

      Ciao Mohamed,
      io acquisto solitamente on-line da robotics-3d.com e penso che abbia molti componenti che potresti usare.
      Ti anticipo che dovrai studiare molto per adattare il mio esempio ad un progetto di maturità ma con buona volontà ce la farai.

  1. Inseguitore solare con Arduino – prima parte – Mauro Alfieri Elettronica, Robotica e Domotica « Le avventure di TecnoGeppetto

    […] on http://www.mauroalfieri.it Condividi: Pin ItShare on TumblrMoreEmailDiggStampaLike this:Mi piaceBe the first to like […]

  2. Robot Beginner Kit inseguitore di Michele - Alfieri Mauro Robotica

    […] realizzato il Robot Beginner Kit inseguitore puoi leggere l’articolo dedicato all’inseguitore solare, trattato in una delle lezioni del corso avanzato e usato da Michele per realizzare il […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Puoi usare i seguenti tag ed attributi HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>