Une lampe d’ambiance Coca-Cola

Accueil/Une lampe d’ambiance Coca-Cola
Une lampe d’ambiance Coca-Cola 2016-12-20T11:38:31+00:00

Project Description

Il y a quelques jours, on vous a appris à programmer un ATtiny, si vous n’avez pas vu comment faire, regardez dans nos tutoriels. Maintenant, on va vous montrer à quel point cette technologie est avantageuse, en réalisant un projet qui nécessite un microcontrôleur de petite taille. On va faire une super lampe d’ambiance à base d’une bouteille de coca!

Matériel

Pour réaliser ce montage il faut vous procurer :

  • Un ATtiny, on a nous un ATtiny85
  • Une led RGB, ou une led rouge, une bleue et une verte
  • Trois résistances de 200ohms (ou une autre valeur tant que ca correspond à vos leds)
  • Une petite boite ronde, on a pris une boite d’électronique d’extérieur
  • Le plus important : une bouteille de coca, pas n’importe laquelle, une en verre, LA bouteille de coca, elle s’appelle CONTOUR (c’est pas une blague), vous en trouverez dans les grandes surfaces, profitez bien du coca à l’intérieur
  • Une petite batterie de 3v (ou des piles) ainsi qu’un switch interrupteur

Le montage

C’est un montage assez simple dans l’ensemble, on peut distinguer trois grandes étapes :

  • L’étape la plus longue, poncer la bouteille de coca, après l’avoir bu, prenez du papier de verre et à la main, il faut poncer tous les contours pour une meilleur diffusion de la lumière, cela prendra du temps mais mieux c’est fait, plus beau le résultat sera! Ensuite, vous pouvez remplir la bouteille avec de l’eau, remettre la capsule et la rendre étanche à l’aide de colle ou de joint.
  • Le circuit électrique maintenant : si votre led est à anode commune, branchez l’anode commune sur le +5v de l’ATtiny, sinon, si c’est une cathode commune, branchez la cathode au GND de l’ATtiny.Puis, branchez le pin rouge au pin 2 de l’ATtiny, en intercalant une résistance, le vert au pin 1 et le bleu au pin 0, toujours avec les résistances
  • L’alimentation : on a trouvé une petite batterie de modélisme de 3.7v qui convient pour notre projet, sinon vous pouvez aussi utiliser des piles boutons (plates) et même deux piles AA (ou AAA). Une fois l’alimentation choisit, reliez le + de l’alimentation au +5v de l’ATtiny et le – de l’alimentation à un petit switch puis l’autre pin du switch au GND de l’ATtiny.

La programmation

L’ATtiny ne contient seulement deux pin PWM, mais on peut faire en sorte de produire un signal PWM à partir d’un pin digital. En effet, le PWM est un signal ayant soit du +5v soit du GND, mais il altèrne très vite les deux. Ainsi, pour faire une tension de 2.5v, il met 50% du temps du +5v et 50% du temps du GND. Avec la fonction delayMicroseconds() on peut imiter ce signal. Nous récuperons un code trouvé sur instructable (inutile de réinventer la roue non?) et on l’upload dans l’ATtiny.

Il ne vous reste plus qu’à tout caser dans la boite, faire un trous sur le haut pour la led, brancher la batterie, installer le switch et c’est bon!

const int redPin = 2; 
const int grnPin = 1; 
const int bluPin = 0; 

void setup()
{
pinMode(redPin, OUTPUT);
pinMode(grnPin, OUTPUT);
pinMode(bluPin, OUTPUT); 
}

void loop()
{
redtoyellow();
yellowtogreen();
greentocyan();
cyantoblue();
bluetomajenta();
majenatored();
}
delay (30);
}

void redtoyellow()
{
digitalWrite(redPin, HIGH);
digitalWrite(bluPin, LOW);
// fade up green
for(byte i=1; i<100; i++) {
byte on = i;
byte off = 100-on;
for( byte a=0; a<100; a++ ) {
digitalWrite(grnPin, HIGH);
delayMicroseconds(on);
digitalWrite(grnPin, LOW);
delayMicroseconds(off);
}
}
}

void yellowtogreen()
{

digitalWrite(grnPin, HIGH);
digitalWrite(bluPin, LOW);
// fade down red
for(byte i=1; i<100; i++) {
byte on = 100-i;
byte off = i;
for( byte a=0; a<100; a++ ) {
digitalWrite(redPin, HIGH);
delayMicroseconds(on);
digitalWrite(redPin, LOW);
delayMicroseconds(off);
}
} 
}

void greentocyan()

{
digitalWrite(grnPin, HIGH);
digitalWrite(redPin, LOW);
// fade up blue
for(byte i=1; i<100; i++) {
byte on = i;
byte off = 100-on;
for( byte a=0; a<100; a++ ) {
digitalWrite(bluPin, HIGH);
delayMicroseconds(on);
digitalWrite(bluPin, LOW);
delayMicroseconds(off);
}
} 
}

void cyantoblue()

{
digitalWrite(bluPin, HIGH);
digitalWrite(redPin, LOW);
// fade down green
for(byte i=1; i<100; i++) {
byte on = 100-i;
byte off = i;
for( byte a=0; a<100; a++ ) {
digitalWrite(grnPin, HIGH);
delayMicroseconds(on);
digitalWrite(grnPin, LOW);
delayMicroseconds(off);
}
} 
}

void bluetomajenta()

{
digitalWrite(bluPin, HIGH);
digitalWrite(grnPin, LOW);
// fade up red
for(byte i=1; i<100; i++) {
byte on = i;
byte off = 100-on;
for( byte a=0; a<100; a++ ) {
digitalWrite(redPin, HIGH);
delayMicroseconds(on);
digitalWrite(redPin, LOW);
delayMicroseconds(off);
}
} 
}

void majenatored()

{
digitalWrite(redPin, HIGH);
digitalWrite(grnPin, LOW);
// fade down blue
for(byte i=1; i<100; i++) {
byte on = 100-i;
byte off = i;
for( byte a=0; a<100; a++ ) {
digitalWrite(bluPin, HIGH);
delayMicroseconds(on);
digitalWrite(bluPin, LOW);
delayMicroseconds(off);
}
} 
}

Laisser un commentaire