Realizzare sequencer di segnalatori

Per la programmazione uso arduino come isp.

se programmi il chip in ISP. non ti serve il bootloader. Ruba solo spazio

Se invece prelevo 5 volt e gnd dalla scheda di arduino la programmazione va a buon fine

Strano.... non e' che non hai collegato insieme i GND ?

Inoltre non ho capito perchè sul pinout dell'atmega328 ci sono due linee di alimentazione

Se guardi bene vedi che una linea e' il Vcc, l'altra l'AVCC ( l'alimentazione per l'ADC )

Per predisporre l'atmega ad essere programmato senza essere rimosso dallo zoccolo

quelli che hai linkato sono tutti e due connettori maschio. Io ti consiglio di spendere qualche euro e prendere un programmatore ISP, come Questo oppure piu' Vicino . E' molto piu' pratico per programmare gl iAtmega

se programmi il chip in ISP. non ti serve il bootloader. Ruba solo spazio

Lavorando con OptiBoot ho scoperto anche questa cosa. Lavorerò meglio quando avrò l'ISP Programmer.

Strano.... non e' che non hai collegato insieme i GND ?

Riassumo in breve: Per programmarlo con alimentazione esterna faccio questo: alimento il circuito con batteria da 9 volt, collegando positivo e negativo della batteria da 9 volt al regolatore 7805. Dalla scheda di arduino prendo il pin 10, 11, 12, 13 e li collego rispettivamente sull'atmega328 del circuito standalone ai pin reset, 17,18,19. Quindi da arduino non prendo nè 5 volt nè gnd. - L'operazione non va a buon fine - Per programmarlo con alimentazione da scheda arduino faccio questo: scollego la batteria da 9 volt, collego positivo e negativo della scheda di arduino al regolatore 7805, e i pin allo stesso modo. - L'operazione va a buon fine - La cosa strana che ho notato, è che la programmazione non va a buon fine neanche se provo ad alimentare il circuito senza passare dal 7805, perchè per 5 volt non c'è bisogno di passare dal 7805. Quindi non so quali gnd intendi che io possa aver collegato insieme.

quelli che hai linkato sono tutti e due connettori maschio. Io ti consiglio di spendere qualche euro e prendere un programmatore ISP, come Questo oppure piu' Vicino . E' molto piu' pratico per programmare gl iAtmega

Si è vero, mi sono confuso, sono tutti e due maschio. Visto che i connettori isp vengono dati di tipo femmina, sul circuito standalone mi conviene installare un connettore maschio a 6 pin (2x3). Come programmatore va bene quello dalla Francia, anche se costa di più, comunque vorrei un consiglio su quest'altro: http://www.ebay.it/itm/USBASP-USB-ISP-Programmer-Cable-Converter-AVR-ATMEL-/191321503045?pt=UK_BOI_Electrical_Components_Supplies_ET&hash=item2c8ba67545, lo sto riportando perchè è integrato in un case, quindi è più protetto, ma se è inferiore compro quello scoperto.

Altra domanda: - C'è modo di verificare se l'atmega328 l'ho bruciato? Non risponde più. A casa non ho un multimetro, ma ho led, resistenze e vari componenti.

Dalla scheda di arduino prendo il pin 10, 11, 12, 13 e li collego

devi portare anche il GND, da collegare con il GND del 7805,. altrimenti non hai un riferimento di tensione per il segnale ISP

mi conviene installare un connettore maschio a 6 pin

Certamente, anche se il migliore rimane il 10pin, visto che e' impossibile innestarlo al contrario

comunque vorrei un consiglio su quest'altro:

e' identico. E se lo preferisci scatolato va bene

c'è modo di verificare se l'atmega328 l'ho bruciato?

l'unica cosa che puoi fare, con solo dei Led e' quella di montarlo in standalone e provare a inserirci uno sketch che blinka il Led. Con l'USBASP puoi usare Avrdudess o eXtreme Burner per testarlo e controllare ad esempio come sono messi i Fuses etc etc ( e forse il tuo problema sono proprio i Fuse )

esistono anche cosi' http://www.robot-italy.com/it/dc-barrel-jack-adapter-breadboard-compatible.html

Certamente, anche se il migliore rimane il 10pin, visto che e' impossibile innestarlo al contrario.

Guarda questo connettore 10 a 6 pin http://www.ebay.it/itm/191321503045?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 e questo connettore a 6 pin maschio http://www.ebay.it/itm/330833147832?ssPageName=STRK:MEWAX:IT&_trksid=p3984.m1423.l2649 direi che anche il 6 pin non si può innestare al contrario.

devi portare anche il GND, da collegare con il GND del 7805,. altrimenti non hai un riferimento di tensione per il segnale ISP

no, non lo avevo portato. comunque ho letto che è meglio scollegare l'alimentazione esterna di uno standalone durante la programmazione.

l'unica cosa che puoi fare, con solo dei Led e' quella di montarlo in standalone e provare a inserirci uno sketch che blinka il Led. Con l'USBASP puoi usare Avrdudess o eXtreme Burner per testarlo e controllare ad esempio come sono messi i Fuses etc etc ( e forse il tuo problema sono proprio i Fuse )

ho caricato sulla scheda di arduino lo sketch "atmega board detector" di gammon. ho fatto i collegamenti e non risolto, sul monitor seriale escono le informazioni di presentazione ma la rilevazione non parte, come se il uC non ci fosse proprio. dubito che con un programmatore esterno posso fare di più. a questo punto è sicuro che è bruciato?

esistono anche cosi' http://www.robot-italy.com/it/dc-barrel-jack-adapter-breadboard-compatible.html

grazie per la segnalazione, comunque ho un'altra necessità, se saldo i filamenti di un led a un connettore maschio come questo: http://www.ebay.it/itm/10-pz-Connettore-presa-coassiale-alimentazione-DC-2-5mm-ART-BE10-/331310983809?pt=Attrezzature_e_strumentazione&hash=item4d23ac6a81 e lo inserisco nel connettore femmina in discussione il led si accende?

la rilevazione non parte, come se il uC non ci fosse proprio

hai provato con e senza quarzo ?

a questo punto è sicuro che è bruciato?

Forse. Oppure e' brikkato e in questo caso ti servirebbe un programmatore tipo questo

ho un'altra necessità, se saldo i filamenti di un led a un connettore maschio

A parte che quello linkato e' un connettore femmina ( i maschi sono quelli con il pispolo centrale ), non capisco la domanda... Se il tuo scopo e' quello di poter connnettere/sconnettere un Led, certo che funziona. Ricordati che serve sempre una resistenza di limitazione della corrente

hai provato con e senza quarzo ?

si, naturalmente contemporaneamente ho tolto i due condensatori affiancati

Forse. Oppure e' brikkato e in questo caso ti servirebbe un programmatore tipo questo

quando arriverà il programmatore normale farò un tentativo. ormai ho ordinato due atmega nuovi. non credo convenga spendere soldi su shield per riparazioni.

A parte che quello linkato e' un connettore femmina ( i maschi sono quelli con il pispolo centrale ), non capisco la domanda... Se il tuo scopo e' quello di poter connnettere/sconnettere un Led, certo che funziona. Ricordati che serve sempre una resistenza di limitazione della corrente

si è femmina, l'ho cercato velocemente per fare un esempio e ho sbagliato. comunque si, il mio scopo è quello di connettere/sconnettere un led, ma potrebbe essere anche un altro utilizzatore. dato che nei tutorial in rete questi connettori vengono usati solo per l'alimentazione, ero in dubbio se si potesse attaccare un carico. grazie

Ho acquistato alcuni di questi motorini: http://www.ebay.it/itm/261535558352?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649 e ne ho collegato alcuni ad arduino. Le uscite digitali di arduino sono tutte a 5 volt con una massima erogazione di 40mA. Questi motorini operano a 3 volt. Collegando un motorino a un uscita di arduino con una resistenza di 220 ohm, il motorino si accende. Se metto una da 470 o superiore, no. Se metto una inferiore, vibra a un'intensità maggiore. Con 220 ohm il motorino assorbe 5 Volt / 220 Ohm = circa 22 mA. Potrei accenderne anche due contemporaneamente e non ci sono problemi visto che la corrente che può erogare arduino è di max 200 mA. Il problema è la tensione di lavoro del motorino, cioè 3 volt. Per il momento funziona tutto, ma il venditore mi avrebbe consigliato di inserire un MOSFET e inviare un segnale PWM con duty cycle del 66%. Non ho capito bene questo consiglio e comunque credo esistano alternative per portare un carico a 3 volt. E' un pò come accendere un led con una tensione di 220 volt mettendo una grossa resistenza. Cosa mi consigliate per dimensionare la tensione?

il venditore mi avrebbe consigliato di inserire un MOSFET e inviare un segnale PWM con duty cycle del 66%

Lascia perdere, non e' codesto il modo per regolare una tensione.

Ma un semplice regolatore di tensione , con un BJT per ogni motore , non e' meglio ? Quanti motorini devi gestire ?

Lascia perdere, non e' codesto il modo per regolare una tensione.

Ma un semplice regolatore di tensione , con un BJT per ogni motore , non e' meglio ? Quanti motorini devi gestire ?

Devo gestire 14. Si devono accendere al massimo due contemporaneamente. Inserire un transistor per ogni motorino mi riempirebbe la scheda di componenti. Se non ci sono particolari controindicazioni, visto che i valori di tensione/corrente sono quelli, lavora con le resistenze in serie. A meno che non si possano collegare i BJT senza resistenze.

Ma non avevi detto di voler usare uno shift register per comandare i motorini ? 60 mA a 3 V ( dati del motorino ) senza un BJT ( o un IC driver ) non li piloti

Ma non avevi detto di voler usare uno shift register per comandare i motorini ?

si certo, infatti ne ho collegato qualcuno

60 mA a 3 V ( dati del motorino ) senza un BJT ( o un IC driver ) non li piloti

collegano delle resistenze di 220 ohm in uscita allo shift register, il motorino si accende, con resistenze superiori no.

l'integrato in questione è un 74HC595, e le resistenze le ho messe sui pin di uscita, cioè da q0 a q7. stavo pensando, se tolgo tutte queste resistenze e ne metto una sola all'ingresso vcc dello shift register, ottengo un comportamento equivalente?

ho notato un fenomeno strano: se tolgo l'alimentazione dall'ingresso vcc dello shift register il comportamento del circuito rimane inalterato, come se quel pin non servisse a nulla. quindi mettendo una resistenza in ingresso, indipendentemente dal valore, non ho notato riscontri sull'intensità dei led e dei motorini.

Ma non avevi detto di voler usare uno shift register per comandare i motorini ?
si certo, infatti ne ho collegato qualcuno

Quindi devi considerare la corrente che riesce ad erogare un 74HC595, che se ben ricordo da’ circa 30mA per pin, con un massimo ( di tutti i pin assieme ) di 70mA.
Ora tu puoi anche collegare il motorino tramite una resistenza, proprio per limitargli la corrente, ma non e’ il modo corretto di usare un motore. Sicuramente si muovera’, ma totalmente al di fuori delle specifiche. Non raggiungera’ mai il numero dei giri che puo’ fare, partira’ in modo difficoltoso, etc etc.
Il modo corretto per comandarli lo vedi in fondo al post, poi vedi tu.

stavo pensando, se tolgo tutte queste resistenze e ne metto una sola all’ingresso vcc dello shift register, ottengo un comportamento equivalente?

Si, se il tuo scopo e’ far defungere prematuramente il 74HC595

ho notato un fenomeno strano: se tolgo l’alimentazione dall’ingresso vcc dello shift register il comportamento del circuito rimane inalterato, come se quel pin non servisse a nulla. quindi mettendo una resistenza in ingresso, indipendentemente dal valore, non ho notato riscontri sull’intensità dei led e dei motorin

Non fanno piu’ gli Shift Register di una volta…

quando arriverà il programmatore normale farò un tentativo. ormai ho ordinato due atmega nuovi. non credo convenga spendere soldi su shield per riparazioni.

E' arrivato il programmatore. Ho dovuto aggiornare il firmware, perchè non funzionava. Gli atmega nuovi, non avevano neanche il bootloader, e sono riuscito a programmarli al primo tentativo. Quello che avevo già non risponde più. Con avrdudess, la funzione Detect restituisce nel terminale : invalid signature 000000. Direi che ormai è irrecuperabile.

Riguardo al firmware del programmatore vorrei dire una cosa. Ho seguito questo tutorial: http://blackstufflabs.com/2013/10/24/aggiornare-firmware-usbasp-con-arduino/. In particolare, in fondo alla pagina, l'autore spiega che l'ultimo firmware originale non supporta tutti i microcontrollori, ma un utente, di nome Romolo avrebbe creato una versione moddata che dovrebbe andar bene con tutti. E' proprio questo che ho caricato. Chiedo comunque un'opinione.

Il modo corretto per comandarli lo vedi in fondo al post, poi vedi tu.

L'integrato ULN2003 lo conosco e so cosa fa. Ne avevo comprato uno, ma non avendo il regolatore da 3.3 volt, adesso non posso provare. Il TPIC6B595 è nuovo per me, ma deduco che incorpora le funzioni di shift register e transistor. Bisogna anche vedere se è di tipo latched. Lo studierò. La cosa che non riesco a capire dagli schemi è dove devo agire per limitare la corrente sui carichi. Poi vorrei sapere, per la questione dell'alimentazione, visto che adesso c'è una batteria da 9 volt e un 7805, se posso aggiungere un limitatore per i 3,3 volt mettendo il positivo della batteria in comune agli ingressi di entrambi i limitatori di tensione.

quell’errore che da’ “avrdude: warning: cannot set sck period. please check for usbasp firmware update”.”
e’ ininfluente ai fini della programmazione, potevi benissimo ignorarlo
Personalmente sono 3 anni che mi dico che dovrei aggiornare il firmware…

La cosa che non riesco a capire dagli schemi è dove devo agire per limitare la corrente sui carichi

perche’ gli vuoi limitare la corrente ?

Poi vorrei sapere, per la questione dell’alimentazione

a parte che con una piletta da 9v vai poco lontano, di capacità ne ha proprio poca, io li collegherei in serie

perche' gli vuoi limitare la corrente ?

Non mi sembra un fatto insolito, in generale un carico non deve per forza lavorare sempre al massimo dell'intensità, esempio: le casse di uno stereo.

Come esempio ... ci sta' come il cavolo a merenda.. comunque, visto che io ancora non ho capito bene cosa devi realizzare, solo tu puoi, provando, dire se puoi o non puoi limitare la corrente. Se con una resistenza in serie il tutto ti aggrada , usala. E cosi' ti risparmi anche il regolatore di tensione ( che diventa inutile )

Come esempio ... ci sta' come il cavolo a merenda..

Strano che non sto riuscendo a farmi capire.

comunque, visto che io ancora non ho capito bene cosa devi realizzare, solo tu puoi, provando, dire se puoi o non puoi limitare la corrente.

Quando ho aperto la discussione, non ero ancora sicuro che ci sarei riuscito, ma ormai sto alla fine. E sono contento che impegnandomi ho quasi realizzato questo progettino. Dunque, vorrei realizzare un cuscino massaggiante per le spalle. Quindi elettronicamente, devo creare una piccola centralina alla quale sono collegati i motorini, che sono distribuiti secondo una certa disposizione all'interno del cuscino. Il cuscino può eseguire i massaggi secondo diverse configurazioni/programmi, significa che i motorini possono vibrare secondo un diverso ordine o intensità. E queste sequenze sono memorizzate in una EEPROM. Dei pulsanti esterni mi permettono di cambiare programma.

Se con una resistenza in serie il tutto ti aggrada , usala. E cosi' ti risparmi anche il regolatore di tensione ( che diventa inutile )

Non è una questione di gusti. Devo capire quale è il metodo progettuale migliore. Cioè se è meglio intervenire con un regolatore di tensione o con delle resistenze. Comunque credo di aver acquistato i motorini sbagliati. Nel senso che hanno molti giri e fanno troppo rumore. Ho provato a farli lavorare a circa 20 mA, alimentandoli da 5 volt con una resistenza da 220 ohm, e hanno un comportamento anomalo, nel senso che a volte non si accendono, a volte non vibrano quando dovrebbero o hanno dei ritardi rispetto agli impulsi ricevuti. Non so se alimentandoli da 3-3.3 volt e mettendo una resistenza in modo da portarli sempre a circa 20 mA, lavorerebbero meglio.

credo di aver acquistato i motorini sbagliati. Nel senso che hanno molti giri e fanno troppo rumore

Questo e' sicuro, motorini che fanno 14.000 giri/m non mi sembrano adatti per la tua applicazione. Nascono come motorini vibratori per cellulare, il loro scopo e' vibrare e fare rumore

Ho provato a farli lavorare a circa 20 mA, alimentandoli da 5 volt con una resistenza da 220 ohm, e hanno un comportamento anomalo, nel senso che a volte non si accendono, a volte non vibrano quando dovrebbero o hanno dei ritardi rispetto agli impulsi ricevuti

E' quello che ti dicevo qualche post fa'. Alimentarlo a 5V o 3V con una resistenza di limitazione non cambia niente. Se come dicevi, vuoi ridurre l'intensita' ( ovvero il numero dei giri ), devi pilotarlo in PWM ( e senza resistenza ).

collegane due o tre alle porte PWM di Arduino ( con un ULN2003 nel mezzo ) e prova a gestirli con l'analogWrite() Se vedi che quei motorini si comportano piu' o meno come richiedi, poi puoi usare un TLC5940 per gestirli