Lampada multicolor con ATtiny 85

Come da titolo vorrei costruire una lampada comandata da un ATtiny 85 che piloti un LED RGB però... La lampada può cambiare colore in modalità random, il problema che mi sta rodendo è.... L'ATtiny ha solo due porte con PWM come faccio a pilotare un led RGB che ne richiede tre ???? esiste un modo per emularne una in un qualsiasi piedino ?

Una cosa simile a questa ..... http://blog.lampugnani.org/arduino/chillout-rgb-ambient-lamp/ scusa t30 se ho usato il tuo link :)

http://www.atmel.com/dyn/products/param_table.asp?category_id=163&family_id=607&subfamily_id=791&OrderBy=part_no&Direction=ASC

stando al sito atmel sia l'attiny45 sia l'85 hanno 6 porte pwm

Federico: http://www.atmel.com/dyn/products/param_table.asp?category_id=163&family_id=607&subfamily_id=791&OrderBy=part_no&Direction=ASC

stando al sito atmel sia l'attiny45 sia l'85 hanno 6 porte pwm

an... prova a vedere la prima pagina del datasheet però....

http://www.atmel.com/dyn/resources/prod_documents/doc2586.pdf

a me paiono esattamente identici, cercando pare che la differenza tra il 45 e l'85 sia esclusivamente nella quantita' di memoria disponibile, 4k sul primo e 8k sul secondo.

Fede

Boh... ora rimonto il baracchino e provo..... almeno vedo se leo ha sbagliato la stesura della sua guida :):):) :D

Confermo solo due porte PWM :(:( esiste un modo per emulare il PWM che voi sappiate magari è possibile creare una funzione che contenga dei delay???

La mia guida è giusta XD L'Attiny85 ha 2 soli pin con capacità di PWM, il pin D0 ed il pin D1 (corrispondenti ai pin fisici 5 e 6), com'è anche chiaramente scritto nel datasheet pag. 68:

The result of the compare can be used by the Waveform Generator to generate a PWM or variable frequency output on the Output Compare pins (OC0A and OC0B)

I pin OC0A e OC0B sono appunto i pin D0 e D1.

Ho letto però da qualche parte che si può simulare il PWM via software semplicemente "accendendo" e "spengendo" (HIGH e LOW) un pin. Qualcosa come quello descritto qui.

Alternativamente potresti pensare agli Attiny84, che sto usando per dei test in questi giorni. Hanno 14 pin e 2 canali PWM, ognuno con 2 pin: 1 canale a 8 bit, ed 1 canale a 16 bit.

Cavolo leo nemmeno il tempo di premere invio e mi trovo la tua risposta :):) ora provo a dargli un occhio.... cavolo volevo solo fare una lampadinetta per la sorellina che mi sta sidiando non volevo ricorrere ad altri micro :(:(

Anche usando gli 84 avrei solo due pin utilizzabili come PWM a quel punto mi conviene il tiny 2313..... no ???

eppure se il tizio del link che ho postato prima col ghetto led riesce a fare pwm sul tiny45, vuol dire che si puo' fare anche sul tiny85 ...

No, l'Attiny84 ha 4 pin PWM. Devo ancora capire come gestire quelli collegati al timer1, che sono appunto attaccati ad un timer a 16 bit invece che a 8.

Cmq se il problema è quello di una semplice lampada multicolore perché non fai appunto il 3° canale PWM usando la "via software"?

PS: leggo il post del tizio e poi ti ri-rispondo

leo72: No, l'Attiny84 ha 4 pin PWM. Devo ancora capire come gestire quelli collegati al timer1, che sono appunto attaccati ad un timer a 16 bit invece che a 8.

Cmq se il problema è quello di una semplice lampada multicolore perché non fai appunto il 3° canale PWM usando la "via software"?

PS: leggo il post del tizio e poi ti ri-rispondo

Per via software che intendi ? :)

Hai visitato il link che ti ho postato, vero? :stuck_out_tongue:

PS
a me il sito che hai linkato non si apre…

leo72:
Hai visitato il link che ti ho postato, vero? :stuck_out_tongue:

PS
a me il sito che hai linkato non si apre…

Si gli ho dato un occhiata veloce prima il codice non mi pareva complesso mi restava da capire per bene cosa faceva però…

1) nel link che hai pubblicato nel 1° post io vedo che viene usato un Atmega168, dove hai letto che usa un Attiny45? 2) fare un PWM software è semplice: semplicemente mandi segnali di HIGH e LOW su un pin con un intervallo specifico. 3)

leo72:

  1. nel link che hai pubblicato nel 1° post io vedo che viene usato un Atmega168, dove hai letto che usa un Attiny45?
  2. fare un PWM software è semplice: semplicemente mandi segnali di HIGH e LOW su un pin con un intervallo specifico.

Volevo usare un altro micro con meno pin uno per risparmiare soldini due per risparmiare spazio…
ho buttato giù velocemente questo codice mah non fa ciò che dovrebbe cioè una specie di fade… mi pare giusto però…

int outPin = 3;                 // digital pin 8
int ris;
void setup()
{
  pinMode(outPin, OUTPUT);      // sets the digital pin as output
}

void loop()
{
  int i;
  for(i=0; i<254; i++){
  ris = 255-i;
  digitalWrite(outPin, HIGH);   // sets the pin on
  delayMicroseconds(i);        // pauses for 50 microseconds      
  digitalWrite(outPin, LOW);    // sets the pin off
  delayMicroseconds(ris);        // pauses for 50 microseconds      
   }
}

avete visto questo? http://arduino.cc/forum/index.php/topic,65033.msg475393.html#new Ciao Uwe

ehm.... ora ho visto il link che aveva messo Federico.... comunque il mio intento era proprio creare una lampada da zero e se poi riuscivo a fare un alternativa open suorce al BlinkM tanto meglio :)

Cavolo cè proprio tutto -_-"

ratto93: ehm.... ora ho visto il link che aveva messo Federico.... comunque il mio intento era proprio creare una lampada da zero e se poi riuscivo a fare un alternativa open suorce al BlinkM tanto meglio :)

Cavolo cè proprio tutto -_-"

Sei troppo indietro :P Pero' se provi quella cosa li, fammela vedere poi! F

Federico:

ratto93: ehm.... ora ho visto il link che aveva messo Federico.... comunque il mio intento era proprio creare una lampada da zero e se poi riuscivo a fare un alternativa open suorce al BlinkM tanto meglio :)

Cavolo cè proprio tutto -_-"

Sei troppo indietro :P Pero' se provi quella cosa li, fammela vedere poi! F

Ho una connessione del c@@@@ e non mi fa vedere se ci sono risposte ai topic precedenti e io sono andato via dritto....

L'ho motato tutto.... programmato l'ATtiny 85 con l'hex.. il pc vede il blinkM, lo programmo uppo il programma e poi non fa nulla....