Pages: [1]   Go Down
Author Topic: refaire éclairage d'un disque d'identité de Tron Legacy  (Read 2093 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Bonjour,

Je suis nouveau sur le forum ( et dans le monde de l'électronique), j'aimerais remasteriser le disque d'identité de tron, comme ici:


J'ai un Arduino Nano ATmega 328
un ampère métre
un fer à souder et bientot plein de LED si ça marche!

Je ne sais pas programmer (mais tout s'apprend), mais je sais faire des soudures.
Est-ce qu'il est possible de faire un montage pour controler une centaines de LEDs?
et tout faire rentrer dans un petit espace comme un disque de tron?
et petite information, ce n'est que décoratif pour moi, donc si c'est alimenté par prise électrique 12V, ça me vas,
cela consommera moin de pile!

Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salut,

Bien sûr que c'est possible, puisque d'autres l'ont fait.

il va te falloir apprendre les registres à décalage... celui qui fait rage : le 74HC595, un pour 8 leds si tu comptes utiliser les leds une par une, sinon, tu peux mettre au max deux leds en série par sortie du 595 (avec une petite résistance bien sûr...)

tout est là : http://www.arduino.cc/en/Tutorial/ShiftOut

bonne lecture! smiley-wink
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Super_Cinci:
C'est le tuto que j'avais déjà trouvé, et j'aurais espéré trouver le même en français!
Mais je ne sais pas si les grandes plaque de connectique existe en petit format, ou si on peu les remplacer par des soudures directes?
car je suis sur que ça ne rentrera pas dans le disque?
Et je ne sais pas si je fais ce tuto si je saurais faire éteindre et allumer chaque led une par une, et dnas le bon ordre?
Logged

Bretagne
Offline Offline
Edison Member
*
Karma: 16
Posts: 1395
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Une fois que tu auras compris le principe des registres, le reste ira tout seul...

Par contre, il sera plus dur de gérer l'intensité d'éclairage, mais c'est maintenant et avant de souder qu'il faut te poser la question. Je l'ai fait une fois, en utilisant une PWM "artificielle" sur des transistors qui alimentaient chacun un groupe de 8 leds. je commandais les transistors avec une impulsion dont la longueur dépendait du nombre de leds allumées dans son groupe, histoire de garder un éclairage constant...

tu suis toujours? smiley-grin

Sinon, je te conseille de faire de petits bouts de circuit qui supporteront les CI et les résistances, et de les placer au mieux dans ta couronne. Les soudures en "volant", c'est très moyen et en risque à des courts-circuits qui ne mettront pas le feu, mais rien ne marchera...

Côté alimentation, si tu prends 100 leds, prévois du courant!! à 20mA par led, ça fait 2A en tout... tente de trouver une alim 5V / 3A à découpage (les petits blocs secteurs tout légers), ils seront fait pour! en 12V, le régulateur de l'arduino ne tiendra pas plus d'1/4 de seconde.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je commence à lire "démarrez avec arduino"
je me suis acheté une breadboard, et je vais faire mes débuts dessus, j'espère arriver à comprendre ce que tu me dis plus facilement et enfin faire mon montage complet (un jour)!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai une alimentation pour alimenté mon arduino nano, car j'ai peur de griller mon port usb de mon pc,
est ce que je peux utiliser mon alimentation, c'est celle-ci

http://www.wigi.fr/alimentation-a-decoupage-compacte-3-12vcc-1-2a-pssmv2-hq-power,fr,4,29220.cfm
et la mettre en 4,5V ce qui devrait fonctionner, car il demande 5V?

j'ai une autre petite question:
sur les montages test que j'ai à faire, c'est l'arduino qui envoi l'alimentation à la LED!
Mais la j'ai besoin d'envoyer l'alimentation à l'arduino or, c'est le même port pour le output et input sur mon arduino!
Je me demande comment mon arduino va pouvoir controler l'alimentation envoyé à la LED?
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

J'ai une autre petite question, j'ai le "plus" sur ma carte, mais j'ai pas le "moin"?
je dois mettre le fil rouge où?
sur le GND?
Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

1) Sur la nano tu as 2 possibilités pour alimenter :

a) Sur l'entrée VIN derrière laquelle se situe un régulateur 5V. Cette entrée doit être alimentée en 7..12V
b) Directement sur le "5V" avec une tension entre 3V et 5V

Donc si tu utilise ton alimentation réglée sur 4.5V :
===> Vérifie avec un voltmètre la tension effective sortie.
-  Sur une alim non régulée, "4.5" va plutôt fournir du 6V à vide. Si c'est le cas NIET. Ne pas brancher sur le 5V
-  Si tu as bien du 4.5V, tu peux alimenter sur 5V mais pas sur VIN

- Si tu as plus que 5V en mode 4.5V, alors monte carrément à 6V et rentre sur VIN

Attention, le régulateur 5V sur la carte nano est aussi "nano". Donc il permet de faire du 5V à partir d'un 7..12V pour la carte Nano et pas grand chose d'autre.
Si tu as beaucoup d'électronique à alimenter par ailleurs, il vaut mieux considérer une alim régulée 5V et alimenter le tout sur le 5V sans passer par le régulateur de la carte.


2) Le fil rouge ? C'est pas le + le fil rouge ?
En fait comme on n'a aucune idée de quel fil tu parles on ne peut pas te répondre.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

barbudor:
merci
Je suis encore a tester les différents tutoriaux, et j'ai encore peur de griller ma carte, je me suis branché en usb avec un hub,
ça risque de me prendre du temps.
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je suis en train de faire le tuto :
http://arduino.cc/en/Tutorial/ShiftOut

et pour l'exemple:
Code Sample 1.2 One by One
ici
http://arduino.cc/en/Tutorial/ShftOut12
je ne comprend pas ce qu'il me demande de changer dans le code?

bitToSet?
registerWrite?
whichPin ça c'est l'entrée ou sorti, mais du arduino ou du 74HC595?
whichState: la c'est "high" ou "low", facile
latchPin ?
clockPin? on l'a pas déjà mis au dessus?
je comprend pas pourquoion peu changer le "clock pin" puisqu'on touche pas au branchement?



Logged

Ile-de-France (92 sud), France
Offline Offline
Edison Member
*
Karma: 24
Posts: 2055
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Désolé je suis à la rue coté boulot + déplacements professionnels a tout va. Pas trop le temps d'aider pour les prochaines semaines.
Logged

Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

Offline Offline
Full Member
***
Karma: 0
Posts: 224
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

bitToSet?
C'est la valeur à afficher sur les LEDs. On la récupère sur la liaison série à l'aide de Serial.read().

registerWrite?
C'est une fonction qui commande le registre à décalage (74HC595).

whichPin ça c'est l'entrée ou sorti, mais du arduino ou du 74HC595?
C'est le bit dont tu veux changer le niveau indiqué par whichState. Sortie de l'Arduino.

whichState: la c'est "high" ou "low", facile
+1

latchPin ?
clockPin? on l'a pas déjà mis au dessus?
je comprend pas pourquoion peu changer le "clock pin" puisqu'on touche pas au branchement?

Tu ne changes pas ces signaux mais tu les commandes pour piloter le registre à décalage...
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Merci, pour vos réponses; je vais essayer, j'ai déjà commencé à démonté mon disque!

J'ai une autre demande; ma breadboard, à des connections pas toujours fiables, et je me demandais si "breadboard simulator" c'étais fiable pour le genre de travail que je veux faire?

Car j'ai peur de cramer mon port usb ou de cramer mon Arduino!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 9
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Je continue de faire des essais pour trouver la solution, et
J'ai trouvé un code qui fait l'atténuation des LED, mais je ne comprend pas:

-comment il gère le temps du "fade"?
-pourquoi il y à des instructions contradictoires d'une ligne à l'autre?
Exemple:   digitalWrite(clockPin, LOW);
                digitalWrite(clockPin, HIGH);


voici le code avec ADUINO et 74HC595 (le tutorial du shiftout):
Code:
//**************************************************************//
//  Name    : shiftOutCode, Hello World    //
//  Author  : Carlyn Maw,Tom Igoe, David A. Mellis  //
//  Date    : 25 Oct, 2006   //
//  Version : 1.0      //
//  Notes   : Code for using a 74HC595 Shift Register      //
//     : to count from 0 to 255     //
//****************************************************************

//Pin connected to ST_CP of 74HC595
int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;
int h = 0;
int l = 256 - h;
int counter = 0;
int switcher = 0;

void setup() {
  //set pins to output because they are addressed in the main loop
  pinMode(latchPin, OUTPUT);
  pinMode(clockPin, OUTPUT);
  pinMode(dataPin, OUTPUT);
}

void loop() {
  if (counter == 1){
    if (h == 256){
switcher = 1;
    }
    if (h == 0) {
switcher = 0;
    }
    if (switcher == 0) {
h++;
    } else {
h--;
    }
    counter = 0;
  }

  for(int high = 0; high < h; high++){
    digitalWrite(latchPin, LOW);
  digitalWrite(dataPin, HIGH);
  digitalWrite(clockPin,LOW);
  digitalWrite(clockPin,HIGH);
  digitalWrite(latchPin,HIGH);
  }

  for(int low = 0; low < l; low++){
  digitalWrite(latchPin, LOW);
  digitalWrite(dataPin, LOW);
  digitalWrite(clockPin, LOW);
  digitalWrite(clockPin, HIGH);
  digitalWrite(latchPin, HIGH);
  }



  l = 256 - h;
  counter++;

}
 
Logged

Pages: [1]   Go Up
Jump to: