Arduino Duemilanove+LCD Keypad Shield+Motor Shield

Buon giorno a tutti, ho intenzione di comprare arduino duemilanove con la adafruit motor shield per comandare 4 mini motoriduttori DC in velocità, direzione e tempo xò vorrei anche inserire un display LCD con pulsanti per poter inserire i dati di tempo e velocità per ogni motore senza usare il PC, per fare questo ho trovato la LCD Keypad Shield.
Vi volevo chiedere se si possono collegare tutte e due le shields ad arduino 2009 e se si come si può fare.
Vi ringrazio anticipatamente.
Domi_t.

Ciao domi_t,
inizia a postare qualche link degli shield a cui ti riferisci... di sicuro otterrai maggiore aiuto.
Solitamente gli shield utilizzano piedini (M) che si replicano nella parte superiore (F), appunto per poter sovrapporre più shield.
Potresti avere problemi nel caso diversi shield utilizzassero gli stessi pin...

Ciao Pitusso, ti ringrazio dell'interessamento e dei consigli, comunque i link dei due shield sono:
LCD KEY PAD:http://www.nuelectronics.com/estore/index.php?main_page=project_lcd

MOTOR SHIELD:Motor Shield - Arduino motor/stepper/servo control
Spero siano d'aiuto.
Ti ringrazio ciao

Uhm, anticipo che potrei dire qualche castronata, percui chi legge è può correggermi, lo faccia.

  1. i 2 shield che hai elencato, non sono predisposti per essere "impilati" a loro volta : sopra non hanno i pin F, la qual cosa era naturalmente scontata per lo shield LCD (altrimenti come fai a vedere l'LCD? :P)

  2. in questi casi (impilabili o meno), c'è da verificare se ci sia qualche conflitto sui pin utilizzati.
    Relativamente al Motor Shield, tra le FAQ
    Motor Shield - Arduino motor/stepper/servo control
    nella sezione
    What pins are not used on the motor shield?
    trovi tutte le informazioni che ti servono relative all'utilizzo dei pin

Per quel che riguarda invece lo shield LCD, guardando qui:
http://www.nuelectronics.com/estore/index.php?main_page=project_lcd
risulta che i bottoni utilizzano 1 solo pin analog, mentre l'LCD utilizza 7 pin

Verdetto (mio):
attualmente quei 2 shield non possono essere usati insieme, sia per mancanza di pin F, sia per incompatibilità di pin utilizzati.

Soluzioni:

  1. gestisci lcd e bottoni non su shield, ma su board diy (o temporaneamente su breadboard), considerando però sempre le esigenze del motor shield riguardo a pin
  2. gestisci inserimento e visualizzazione su pc

M

ciao domi_t

Comprati un Arduino UNO, é questo il modello attuale.
http://www.robot-italy.com/product_info.php?cPath=1_119_153&products_id=1606 Arduino Uno
http://www.robot-italy.com/product_info.php?cPath=1_119_154&products_id=1365 Motorshield Ladyada
GLCD con interfaccia parallela su Robot Italy scegli un display
1113 - Mini Joystick Sensor , from Phidgets for €16.45 un joystick
http://www.robot-italy.com/product_info.php?cPath=1_119_154&products_id=1409 un display con 3 tasti.

Controlla se le 2 schede non usano gli stessi pin.

Attenzione che la scheda che metti sopra l' arduino non tocchi la parte metallica del connettore USB.

Ciao Uwe

Grazie a tutti delle informazioni, in questi giorni verifico i pin utilizzati dalla motor shield e valuto l'uso di display lcd e pulsanti non montati direttamente su arduino. Secondo voi è meglio usare display lcd seriali o paralleli?
Grazie

domi_t

sono simili; con i seriali risparmi qualche pin.
Ciao Uwe

Ciao a tutti, ho controllato i pin utilizzati dalla motor shield montata su arduino e sono i seguenti:
pin 11,3,5,6 e 4,7,8,12 (questi sono usati per gestire 4 dc motors)
pin 9,10 (usati in caso di servo)

Ho controllato anche i pin utilizzati dall'LCD keypad shield e in totale utilizza 7 pin (1 analogico + 6 digitali)
I pin che vengono utilizzati da questa shield se montata su arduino sono:
pin A0 (ingresso analogico)
pin 8,9,4,5,6,7 (digitali)

Se confrontate i pin utilizzati dalle due schede 6 pin sono utilizzati da tutte e due (6 pin digitali).
Io vi volevo chiedere se posso non montare la LCD shield su arduino e comandrla con i pin digitali liberi di arduino anche se non sono quelli che utilizzerebbe la shield se montata su arduino?

link uscite arduino: http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

Se tutto questo si può fare come posso portare all'esteno i pin necessari alla LCD Shield se sopra arduino è montata la motor shield?

Vi ringrazio tantissimo dell'aiuto.

Ciao domi_t

Ciao

Io vi volevo chiedere se posso non montare la LCD shield su arduino e comandrla con i pin digitali liberi di arduino anche se non sono quelli che utilizzerebbe la shield se montata su arduino?

puoi usare i pin liberi come ti pare e piace.
Chiaramente, se intendi utilizzare uno shield non direttamente su Arduino, ma collegando manualmente i piedini dello shield a pin non corrispondente, dovrai correggere il codice di conseguenza - relativamente apin realmente utilizzati su Arduino.

Occhio anche al fatto che il pin che ti server sia Digitale o Analogico, se PWM o meno, etc etc

Se tutto questo si può fare come posso portare all'esteno i pin necessari alla LCD Shield se sopra arduino è montata la motor shield?

qui l'unica cosa che potresti fare, poichè il motor shield non replica la piedinatura nella parte superiore, è saldarci direttamente dei cavetti, che poi utlizzerai per gestire lo shield lcd.

Sempre che non esista una soluzione più easy che non conosco

ciao domi_t

puoi saldare al posto di pin cose come queste:
Arduino Stackable Header - 6 Pin , from Sparkfun for €0.29 e per i 8 pin
Arduino Stackable Header - 8 Pin , from Sparkfun for €0.29

oppure se non vuoi disaldare i piedini, interponi tra Arduino e la scheda motori una proto shield http://www.robot-italy.com/product_info.php?cPath=1_119_154&products_id=879 ; li luoi saldare il cavettto che va al display.
Per il collegamento usa un cavo piatto. sulla parte display puoi saldarlo oppure metter deri piedini e usare un connetore come questo: https://www.distrelec.it/ishopWebFront/catalog/product.do/para/keywords/is/3452-6600,34526600,3M,Connettori_femmine_multipolari_DIN_41651_16P,Connettori_femmine_multipolari_DIN_41651/and/language/is/it/and/shop/is/IT/and/series/is/1/and/id/is/01/and/node/is/DC-70204/and/artView/is/true/and/productNr/is/126002.html
al posto dei contatti puoi anche mettere uno cosí:
https://www.distrelec.it/ishopWebFront/catalog/product.do/para/keywords/is/5103309-2,51033092,Tyco_Electronics,Connettore_a_pettine_DIN_41651_14P,Connettori_a_pettine_DIN-41651,_senza_blocco_espulsore/and/language/is/it/and/shop/is/IT/and/series/is/1/and/id/is/01/and/node/is/43700/and/artView/is/true/and/productNr/is/127089.html

Esempio di display con connettore 1x16 pin: http://www.sparkfun.com/datasheets/LCD/GDM1602K-Extended.pdf
esempio di display con connettore 2x8 pin: vintagecomputercables.com

La libreria LiquideCrystal Ti da la possibilitá di definire liberamente i pin che usi:

Considera che i PIN analogici posono essere usati come pin digitali e prendono i numeri 14 a 19

Ciao Uwe

ragazzi, vi ringrazio davvero tanto delle info, ora ordino il tutto e inizio veramente a provare...un ultima cosa: tramite lcd keypad posso introdurre dei valori numerici che poi arduino leggerà, vero?
Vi terrò aggiornato sui futuri svolgimenti.

Grazie ancora.

Domi_t

tramite lcd keypad posso introdurre dei valori numerici che poi arduino leggerà, vero?

:slight_smile:
qui tutto dipende da come programmi poi Arduino!

Ancora una domanda, so che i 6 input pin analogici che ho su arduino possono diventare digitali ma possono essere sia input che output come gli altri?

Grazie

domi_t

Certamente

Sí tutti i pin (sia digitali che analogici) possono essere usate come entrate/uscite digitali con resistenza pullup interna.
Alcuni hanno delle funzioni speciali come: seriale, PWM, entrate analogiche, I2C, (reset, oscilatore).
Ciao Uwe

Ancora grazie...

Domi_t

Ciao a tutti, ho nuovamente una domanda da porvi, ho collegato la motor shield ad arduino uno e ho collegato un mini motoriduttore da 6VDC alla shield (posizione M4), poi ho creato un piccolo programma per far ruotare il motorino ad una certa velocità in un senso e poi nell'altro per un certo tempo, l'ho caricato in arduino e tutto bene, però ho notato che il motorino durante la rotazione emette un fischio ed ho notato che emette questo rumore quando ruota ad una velocità minore di quella nominale, se invece gli imposto la velocità nominale non fà più rumore. Allora incuriosito ho cercato nel sito della casa produttrice Arduino motor/stepper/servo control - How to use e nella sezione relativa al comando dei motori DC ho letto che i morsetti per comndare in velocità i motori 1 e 2 posso essere impostati con una frequenza di trasmissione di 64 o 8 o 2 o 1KHZ mentre i morsetti 3 e 4 solo con una freuenza di 1KHZ.
Poi sò che per non avere quel fastidioso rumore mentre il motore gira la frequenza di trasmissione dovrebbe essere superiore ai 20KHZ.
Quindi vi volevo chiedere se potete dare un occhio al link e vedere se è giusto quello che ho capito e se c'è una soluzione per poter comandare anche i motori 3 e 4 in velocità senza avere il rumore.
Vi ringrazio davvero tanto.
Buona serata.
Domi_t

ciao domi_t
Guardando lo schema le uscite per M1 - M2 e M3 - M4 sono uguali.

So che la frequenza PWM é stata messa a 490 Hz per problemi con i motori DC. Forse hai Tu gli stessi problemi.

Hai ragione che i motori M1 - M2 hanno frequenze di pilotaggio diverse mentre M3 - M4 hanno solo una frequenza fissa; questo é dato da scelte nella library che non so dirti in questo momento. Puóp essere perché usano dei Timer interni che il ATmega328 ne ha solo 3.

Come scrivono a frequenze piú alte i motori sono piú silenziosi ma a frequenze basse piú potenti.
Non so aiutarti.

Ciao Uwe

Grazie ugualmente delle info, se riesci a scoprire come eliminare il rumore sui motori M3 e M4, mi raccomando fammi sapere...
grazie ancora, buona giornata.
Domi_t

Ciao a tutti, mi è venuto un atroce dubbio sulla motor shield, ma può comandare 4 DC motor contemporaneamente?
Come si fa a comandarli assieme?
Se non può comandarli sono nelle più alte...
Mi potete consiglire qualche cosa?
Grazie
Domi_t