logo

 

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 !

footer
symbol symbol symbol symbol symbol