Giocando con l'Attiny85

riprendo il topic:
volevo iniziare a smanettare anche io con gli attiny 85, in particolare volevo prendere un segnale in PPM ed in base alla sua modulazione e dei valori su eeprom volevo generare una sequenza sui pin liberi (poi vorrei usare anche un ADC con un partitore di tensione per leggere la carica di una batteria).

essendo io (come sapete XD) un nabbone in questo campo avete messo un articolo sul playground completo o da qualche parte delle linee guida per partire da 0?

Sto sperimentando anch'io in questi giorni...parti da questa guida: http://www.leonardomiliani.com/?p=388

poi per le domande credo che ci sarà Leo72 a rispondere, che ormai sa tutto e di più sui tiny85 :smiley:

Li mangio a colazione nel latte al posto dei cereali XD

Anche il latta vuole essere può Attinoso

:stuck_out_tongue_closed_eyes:

Cmq quella guida va bene al 95%. Alcune cose però sono da rivedere.
Ad esempio, la cosa più importante è di usare il Tiny Core, prelevabile da qui
http://code.google.com/p/arduino-tiny/
Al posto delle librerie modificate di Saporetti.

Da quel sito prelevate anche le librerie TinyWire per poter gestire le comunicazioni I2C e le librerie PinChangeInterrupt per poter gestire i PCINT sui pin (gli interrut sui cambi di stato dei pin).

leo72:
Li mangio a colazione nel latte al posto dei cereali XD

Anche il latta vuole essere può Attinoso

:stuck_out_tongue_closed_eyes:

Cmq quella guida va bene al 95%. Alcune cose però sono da rivedere.
Ad esempio, la cosa più importante è di usare il Tiny Core, prelevabile da qui
Google Code Archive - Long-term storage for Google Code Project Hosting.
Al posto delle librerie modificate di Saporetti.

Da quel sito prelevate anche le librerie TinyWire per poter gestire le comunicazioni I2C e le librerie PinChangeInterrupt per poter gestire i PCINT sui pin (gli interrut sui cambi di stato dei pin).

fantastico grazie allora domani inizio a leggere il tutto e settimana prossima ordino i chip :wink:

Salve ragazzi, qualche giorno fa mi sono arrivati degli ATTiny 85, e seguendo la guida di Gioblu (Gioblu.com is for sale | HugeDomains) ne ho programmato uno conquesto sketch:

void setup() {                
  pinMode(0, OUTPUT);  
  pinMode(1, OUTPUT);  
  pinMode(2, OUTPUT);  
  digitalWrite(0, LOW);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);

}

void loop() {
digitalWrite(0, HIGH);
delay(500);
digitalWrite(1, HIGH);
digitalWrite(0, LOW);
delay(500);
digitalWrite(2, HIGH);
digitalWrite(1,LOW);
delay(500);
digitalWrite(2, LOW);
}

In sostanza sono tre led che lampeggiano uno dopo l'altro!
Il problema è che quando i led dovrebbero essere spenti in realtà non lo sono, sono semplicemente poco illuminati, ma non spenti del tutto! Come mai?
(Su tutti e tre i pin)

Puoi mettere un'immagine del tuo circuito?

Lo faceva anche a me ma con una bella erasata ed il passaggio ad 8Mhz s'è risolto tutto :smiley:

leo72:
Puoi mettere un'immagine del tuo circuito?

http://www.gioblu.com/images/stories/attiny85_3leds.jpg
Senza il pulsante! E con le resistenze da 330 ohm!

Prova, su uno qualsiasi dei tre pin del tiny, a mettere una R da 10K verso GND, c osì capiamo se è un problema di livelli o meno.

menniti:
Prova, su uno qualsiasi dei tre pin del tiny, a mettere una R da 10K verso GND, c osì capiamo se è un problema di livelli o meno.

Stesso problema!

Xfox:

menniti:
Prova, su uno qualsiasi dei tre pin del tiny, a mettere una R da 10K verso GND, c osì capiamo se è un problema di livelli o meno.

Stesso problema!

Allora forse sono sballati i tempi del micro ed in realtà stanno lampeggiando rapidissimamente.
Prova a mandargli un banale blink e vedi se funziona normalmente o è molto veloce

EDIT: o semplicemente modifica questo sketch e lascia un solo led funzionante con delay(1000).

menniti:

Xfox:

menniti:
Prova, su uno qualsiasi dei tre pin del tiny, a mettere una R da 10K verso GND, c osì capiamo se è un problema di livelli o meno.

Stesso problema!

Allora forse sono sballati i tempi del micro ed in realtà stanno lampeggiando rapidissimamente.
Prova a mandargli un banale blink e vedi se funziona normalmente o è molto veloce

E' questo il banale blink!
Cioè i led sono sempre accesi, a bassa intensità, ma appena è il loro turno di accendersi si accendono al massimo della luminosità!

Non te la prendere, la prova serve per capire come funziona un solo pin con quei tempi, tre led in sequenza possono fare scherzi, se provi il classico On-1000-Off-1000 e funziona allora sei nella m..., se invece non va è un punto di partenza, se poi vuoi fare di testa tua tieniti i led accesi, io più di consigliarti prove non posso, se poi mi devo anche giustificare... :fearful:

menniti:
Non te la prendere, la prova serve per capire come funziona un solo pin con quei tempi, tre led in sequenza possono fare scherzi, se provi il classico On-1000-Off-1000 e funziona allora sei nella m..., se invece non va è un punto di partenza, se poi vuoi fare di testa tua tieniti i led accesi, io più di consigliarti prove non posso, se poi mi devo anche giustificare... :fearful:

No no scusami non volevo essere arrogante! :slight_smile:
Avevo comunque già provato! E da lo stesso problema, un secondo illuminato al massimo e il secondo successivo illuminato di meno!

Non c'è bisogno di scusarsi, basta capirci :slight_smile:
Se hai un tester, dovresti provare a misurare le tensioni che escono sul pin; nella fase OFF dovresti avere <1V, nella fase ON >3V; se così non è misura bene l'alimentazione del micro, devono essere 5V stabili. Se l'alimentazione è stabile, come ultima ratio dovresti provare a settare i fuses con la riga di AVRDUDE, per essere sicuri che il micro non stia lavorando a fave, tanto per seguire il consiglio di rattuccio, non si sa mai.... :slight_smile:

menniti:
Non c'è bisogno di scusarsi, basta capirci :slight_smile:
Se hai un tester, dovresti provare a misurare le tensioni che escono sul pin; nella fase OFF dovresti avere <1V, nella fase ON >3V; se così non è misura bene l'alimentazione del micro, devono essere 5V stabili. Se l'alimentazione è stabile, come ultima ratio dovresti provare a settare i fuses con la riga di AVRDUDE, per essere sicuri che il micro non stia lavorando a fave, tanto per seguire il consiglio di rattuccio, non si sa mai.... :slight_smile:

Low: 2.38V; High: 4.6V.
Il micro è alimentato dalla board Arduino uno che gli da: 4.61V (mi sembra che il range di alimentazione vada da 3.5V a 5.5V)
Adesso provo con i fuses...

Il problema è evidente, la tensione di LOW è completamente sballata e tale da fornire una quasi adeguata tensione di accensione al led, quindi è normale che si comportino così; prova i fuse ma, se ce l'hai, anche un altro micro.
Un solo dubbio, non ti offendere, ma meglio una domanda idiota che un altro danno: sei sicuro che le R siano da 330 ohm?

menniti:
Il problema è evidente, la tensione di LOW è completamente sballata e tale da fornire una quasi adeguata tensione di accensione al led, quindi è normale che si comportino così; prova i fuse ma, se ce l'hai, anche un altro micro.
Un solo dubbio, non ti offendere, ma meglio una domanda idiota che un altro danno: sei sicuro che le R siano da 330 ohm?

Ho provato su tutti e 5 i Tiny85 che ho! Stesso problema! Adesso sto sistemando i fuse secondo la guida di gioblu! Portando anche il clock a 8MHz

Stesso probema anche regolando i fuses!

Ma le R? Se per caso fossero da 33 ohm avrebbero potuto bruciare le uscite dei micro (spero di no, visto che parli di tutti e 5 =()
Guarda io non ho mai avuto difficoltà con i miei nanetti, ad 1MHz e 5V alimentavano tre led durante la fase di test, poi tutti eliminati, consumavano troppo ]:smiley: