Pilotare molti led con 2 fili

Sezione dedicata al sistema di sviluppo BASCOM-AVR per i micro AVR
At90s, Attiny, Atmega e Xmega

Pilotare molti led con 2 fili

Postby crizio » 08 Apr 2014, 21:20

Salve a tutti, tutto bene?
per un lavoretto, vorrei sapere come posso pilotare una 30ina di led con 2 soli fili.
devo controllare il tutto con arduino2560 e programmare in bascom.
c'è qualcuno che ha mai fatto qualcosina del genere, quale chip da abbinare ad arduino mi consigliate?

vi ringrazio
crizio
 
Posts: 7
Joined: 10 Aug 2012, 08:14

Re: Pilotare molti led con 2 fili

Postby suibaf » 08 Apr 2014, 21:32

Potresti un utilizzare un paio si questi:
http://uk.farnell.com/nxp/pca9685pw/ic- ... dp/1854074
User avatar
suibaf
 
Posts: 122
Joined: 08 Mar 2014, 09:55
Location: Lecce

Re: Pilotare molti led con 2 fili

Postby Leonardo » 08 Apr 2014, 22:49

Ciao,
Devi controllare individualmente ogni led?
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Pilotare molti led con 2 fili

Postby crizio » 09 Apr 2014, 07:19

grazie suibaf,
si leonardo, devo controllare singolarmente ogni led, hai qualche consiglio da darmi?
crizio
 
Posts: 7
Joined: 10 Aug 2012, 08:14

Re: Pilotare molti led con 2 fili

Postby Leonardo » 09 Apr 2014, 08:18

Puoi valutare se il http://en.wikipedia.org/wiki/Charlieplexing può andare bene se non vuoi comprare nuovi componenti.

Se cerchi un Led Driver in formato DIP puoi valutare MM5450 http://www.micrel.com/_PDF/mm5450.pdf, capace di pilotare fino a 34 led a 15mA, non richiede una resistenza per ogni led in quanto li controlla in corrente.
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Pilotare molti led con 2 fili

Postby crizio » 09 Apr 2014, 15:54

ho visto l' mm5450 e mi sembra possa andare, io devo accendere una trentina di diodi led rossi.
non è che c'è qualcuno che ha pronta una procedura per settare i singoli led inviando i dati seriali, o una libreria anche precompilata per gestire questo integrato,
mi sareste di grande aiuto ;)
crizio
 
Posts: 7
Joined: 10 Aug 2012, 08:14

Re: Pilotare molti led con 2 fili

Postby Leonardo » 09 Apr 2014, 16:28

Per farla breve funziona come uno shift-register.

Qui puoi trovare un esempio per Arduino anche se non ti so dire se funziona in quanto mai provato http://forum.arduino.cc/index.php/topic,66090.0.html
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Pilotare molti led con 2 fili

Postby js-bascom » 10 Apr 2014, 23:46

Due fili piu' l'alimentazione (4 fili) o due fili in tutto? :?
John Samperi
Ampertronics Pty. Ltd.
www.ampertronics.com.au
* Electronic Design * Custom Products * Contract Assembly
User avatar
js-bascom
 
Posts: 176
Joined: 23 Mar 2013, 02:53
Location: Sydney, AUSTRALIA Ex Nunziata, Mascali (CT)

Re: Pilotare molti led con 2 fili

Postby crizio » 22 Apr 2014, 17:23

ciao e rieccomi
finalmente ho procurato un m5451 e per fare esperienza ho montato questo circuito http://fl.hw.cz/design/segment_displeje/M5451_sch.gif con 4 display rossi a led, per farci un orologio digitale, o altro man mano si vedrà.
l'ho interfacciato in spi con un atmega2560 ma non riesco a fare accendere i led. ho collegato i segnali data e clock ma non sto capendo come inviare i dati al circuito. non so se è un problema hardware o il programma anche se ancora posso dire di aver scritto pochissimo.
qualcuno potrebbe aiutarmi? grazie
crizio
 
Posts: 7
Joined: 10 Aug 2012, 08:14

Re: Pilotare molti led con 2 fili

Postby Leonardo » 22 Apr 2014, 18:29

Puoi pubblicare il codice?
La resistenza da 3.3k è troppo bassa, devi avere massimo 0.75mA
Il mio blog di elettronica: http://electro-logic.blogspot.it
User avatar
Leonardo
 
Posts: 502
Joined: 29 May 2013, 22:31
Location: Parma

Re: Pilotare molti led con 2 fili

Postby crizio » 22 Apr 2014, 19:13

sto cercando di trasmettere lo stato dei led utilizzando l'istruzione
SHIFTOUT pin , pclock , var , option [, bits , delay ]

seguendo la sintassi riportata qui
http://avrhelp.mcselec.com/index.html?shiftout.htm

non riesco a capire come configurare il comando. ho assegnato i pin (pin) e il (pclock) ma sto impazzendo con gli altri parametri. ci sono altri metodi migliori?
crizio
 
Posts: 7
Joined: 10 Aug 2012, 08:14

Re: Pilotare molti led con 2 fili

Postby js-bascom » 22 Apr 2014, 22:07

ho procurato un m5451
Che avrei quasi suggerito. ;) li ho usato per anni nelle mie insegne elettroniche.

Non ho tempo ora di guardare il codice ora pero' il trucco e' quello di mandare lo start bit (1) manuamente e poi usare l'SPI per il resto dei 34 clock cycles per i daii veri e proprii.

ATTENZIONE!! Assicurati che il resto dei bits ( sei nell'utima byte) non utilizzati siano ZERO altrimenti il chip sara confuso se trova un UNO perche' lo interpretera come un nuovo start bit.

L'atlro metodo sarebbe quello di inserire lo start bit come primo bit ma poi ti necessita ruotare tutti i bits e rimarranno 5 bit che DEVONO essere zero nell'ultima byte.
John Samperi
Ampertronics Pty. Ltd.
www.ampertronics.com.au
* Electronic Design * Custom Products * Contract Assembly
User avatar
js-bascom
 
Posts: 176
Joined: 23 Mar 2013, 02:53
Location: Sydney, AUSTRALIA Ex Nunziata, Mascali (CT)

Re: Pilotare molti led con 2 fili

Postby deluca » 23 Apr 2014, 07:11

ciao einstein,
già @reset aveva aperto un topic su questo argomento
viewtopic.php?f=9&t=332&p=1080&hilit=m5450#p1080

Queste le sub essenziali per comandare il chip. @reset stava usando un at90s8515 ma basta riconfigurare i pins secondo le tue necessità.....
Code: Select all
'-----[ gestione M5450 by Giovanni De Luca - INFN-LNS ]---------------
$regfile = "8515DEF.DAT"
$crystal = 8000000
$hwstack = 64
$swstack = 16
$framesize = 50

Declare Sub Reset_m5450_d
Declare Sub Write_m5450_d
Declare Sub Bit_start_d

Ddrb.0 = 1                                                  'DOUT 5450
Ddrb.1 = 1                                                  'CLOCK 5450

  Dout1 Alias Portb.0
    Ck1 Alias Portb.1
'  enbl a gnd

Dim Y(4) As Byte                                            'valori da inviare al display
Dim X As Byte
'-------------------------------------------------------------------------------
Do
    'qui scrivi il tuo codice main
    'assegna a Y() i tuoi valori

Loop
'-------------------------------------------------------------------------------
End

'-------------------------[ write segmenti su display ]----------------------
Sub Write_m5450_d

  Reset_m5450_d
  Bit_start_d

    For X = 1 To 4                                          '4 se devi scrivere 4 cifre
      Shiftout Dout1 , Ck1 , Y(x) , 1 , 8 , 1         'oppure assegna 32 bit con una long
    Next X

    For X = 1 To 3
      nop:Ck1 = 1
      nop:Ck1 = 0
      nop
    Next X
End Sub

'-------------------------[ bit start display ]---------------------------------
Sub Bit_start_d

   nop:Dout1 = 1
   nop:Ck1 = 0
   nop:Ck1 = 1
   nop:Ck1 = 0
   nop:Dout1 = 0
   nop
End Sub
'--------------------[ RESET segmenti su M5450 display ]------------------------
Sub Reset_m5450_d

 Bit_start_d
 For X = 1 To 35
   nop:Ck1 = 1
   nop:Ck1 = 0
   nop
 Next X
End Sub
Ciao
Il mio sito: http://www.delucagiovanni.com ......e la chat: chat/
User avatar
deluca
Site Admin
 
Posts: 1104
Joined: 19 Jun 2011, 10:44
Location: 95123 - Catania (Italy)


Return to BASCOM-AVR

Who is online

Users browsing this forum: No registered users and 8 guests