This page is at least 14 years old !
Les LED-Throwies sont des petits montages qui partent d'un concept artistique,
par conséquent ils n'ont pas vraiment d'utilité mais ont le mérite
d'être mignons.
Les premiers étaient simplement faits d'une pile "bouton" et
d'une LED, certains utilisaient une résistance, d'autres des timers 555
CMOS pour étendre la durée de vie.
D'autres ont poussé le montage plus loin, permettant de programmer une
séquence, mais au détriment de l'autonomie... Pour ma part, j'avais
un petit microcontrolleur
qui ne demandait qu'à sortir de chez moi, donc voici un throwie qui donnera
un signe de vie toutes les 1 à 10 secondes environ:
Ce montage coute environ 1.50 Euros et a au moins tenu trois semaines, au 23ème jour, il avait disparu...
Liste des composants:
Fil isolé ou résistance 1/4W inférieure à 15Kohms
Pile lithium CR2032
LED bleue/verte/blanche, le reste ça se voit moins bien
Un ATTiny13 ou 12 (14 et 15 aussi ?).
Flashez l'ATTiny13, avec le programme suivant et CKSEL = 01 (4.8Mhz interne).
Le programme a été écrit dans AvrStudio4 et se compile
avec AVR-GCC.
La chaîne "note" peut contenir n'importe quoi (la date, votre
mail, votre adresse pour qu'on puisse vous violer).
Au cas où quelqu'un trouve votre montage et pense à lire le code...
#include <avr/sleep.h> #include <avr/io.h> #include <avr/interrupt.h> #include <avr/pgmspace.h> #include <stdlib.h> uint16_t pause; uint8_t cmt=0; const char note[16] PROGMEM = "Née le xx/xx/xx."; ISR (TIM0_COMPA_vect) { cli(); cmt++; if (cmt == 20) { // Doit se réveiller 20 fois avant de s'allumer PORTB = 0xFF; for(pause=0; pause<4000; pause++) {}; PORTB = 0x00; cmt=0; OCR0A = (uint8_t)rand(); // Reprend une durée au hasard } return; } int main() { MCUSR &= ~(1<<WDRF); //WDT OFF WDTCR |= (1<<WDCE) | (1<<WDE); WDTCR = 0x00; DDRB = _BV(PB2); //PB2 OUT ADCSRA &= ~_BV(ADEN); //ADC OFF ACSR |= _BV(ACD); //CMP OFF TCCR0A |= _BV(WGM01); //CTC TCCR0B |= _BV(CS02); TCCR0B |= _BV(CS00); // Prescaler=1/1024 TIMSK0 |= _BV(OCIE0A); OCR0A = (uint8_t)rand(); // Prend une durée au hasard PORTB = 0x00; sei(); sleep_enable(); set_sleep_mode(SLEEP_MODE_IDLE); // Se reveille la fin du décompte sleep_mode(); while(1) { sleep_enable(); // Se rendort tout le temps set_sleep_mode(SLEEP_MODE_IDLE); sleep_mode(); } } |
Reliez la broche 1 à la broche 8 avec la résistance.
Coupez les broches qui ne servent pas: 2, 3, 5, et 6.
Relevez la broche 7 sur le dos du Tiny13.
Soudez la LED plaquée contre le Tiny13, entre la broche 7 et la broche
4 (masse).
Laissez dépasser la patte de la cathode, coupez celle de l'anode et soudez-la
sur la broche 8 (VCC).
On dirait que c'est la seconde patte de la LED sur la photo, mais elle part
bien de la broche 8, pas la 7.
La pile peut être pincée entre les deux broches qui dépassent
(attention à la polarité. Broche 1 = positif).
En attendant de la lancer, placez un morceau de papier pour isoler le montage.
Laissez le dépasser pour qu'il puisse être tiré.
Scotchez le tout à un bon aimant (ceux au néodyme sont mieux).
Rendez vous devant une facade de batiment métallique bien visible la nuit, et lancez votre armée !