besoin de conseil pour gérer une animations lumineuse à 30 sorties indépendantes

Bonjour, je viens vous demander quelques conseils
Je voudrais me lancer dans l'Arduino, et c'est pour faire, dans un premier temps, une animation lumineuse sur un Drone, j'ai besoin de 24 à 30 sorties indépendantes, donc si j'ai bien compris, il faut que je choisisse le Mega2560 ?

Merci infobarquee, pour ta réponse , je post ici, c'est bon ? sinon déplace le post et donne moi le lien :slight_smile:

Pour ce qui est du poids , je m'en fou , c'est pour mon drones hexa , un monstre de traction (6 moteur de 300Watts).
Et moi je veut bien utiliser un Ardiuno nano pour gérer 'indépendament ' 24 à 30 leds (24 à 30 moldules de 3 ou 6 leds en série sous 12 V (je passe pas un drivers ULN2803.
Donc je ne vois pas comment gérer autant de leds avec seulement 14 sortie, sans compter les restrictions de certaine broches (car s'il faut rajouter des registres 8 bits //), je voit pas d'autre solutions, et finalement un Méga2560 sera plus simple ! Non ?
je suis preneur pour tout schéma :slight_smile:

J'ai lue, je sais plus ou, que ce n'est pas conseillé de commencer par le Méga, mais plutôt pas le UNO
Les sorties supplémentaire du méga ne sont pas géré de la même façon que sur le UNO ?
J'ai commencé la programmation 'amateur' (il y a longtemps), langage machine, GWbasic / basic, mais jamais de C
Tous mes montages que je fais depuis quelque année, sont des montages simples, et c'est de l'électronique câblé, mais pas de logiciel !
J'ai regardé un peu le mode de programmation, et ce ne me parait pas insurmontable
J'aurai peut-être des problèmes pour faire les sous programmes, qui géreront les impulsions qui viennent de la télécommande qui pilote le drone pour déclencher/ modifier les animations lumineuse
Voila, ah oui, encore une petite question, je compte prendre une carte Mega2560 compatible Arduino, (made in Hong Kong), elles sont souvent sans manque, mais j'ai lue quel fonctionne aussi bien ! Es-ce vrai ?
Merci d'avance pour tout vos conseils :slight_smile:
Pascal

Bonjour,

Est ce que tu as regardé du coté des leds neopixel. Tu as des rubans de leds pilotables indépendamment avec une seule sortie.

bonjour kamill, je ne savais pas que cela existait (et cela doit pas être bon marché, et il y a peut être des restriction dans le fonctionnement) !
Mais j'ai déjà acheté mes leds depuis quelque temps, des leds en ruban de 1 m , coupable tout les 2,5cm (il y à 120 leds haut luminosité sur 1 mètres, ce n'est pas très courant ! (60 leds par mètres c'est beaucoup plus facile a trouver)
donc sous les 6 bras de mon drone, je vais coller 4 à 5 groupes (3 leds) le long du bras
Elle on auront deux fonctions, en en vol, pour me donner rapidement l'orientation du drone (j'aime bien voler haut), et quand il est en stationnaire, je peux à ce moment là, faire des animations lumineuse
voila se que je veux faire
Au début , je voulais faire cela avec un pic18F2550, mais bon, je me dit que se serait bien de faire cela avec un Arduino, après j'ai plein d'idée en tête, pour d'autre projet, et je pense que se sera plus facile de les réaliser avec un Arduino, donc autant si mettre de suite.
Donc je prends quoi un Mega (pour gérer 30 sorties, je suis bien obligé ! non ? Ou un Uno et je fait comment pour gérer 30 sorties (de toute façon il y a 4 euro de différence au niveau du prix entre un mega et un uno
De toute façon j'ai de la place, la plaque centrale faite 18cm de diamètre 73 cm de diamètre au niveau des moteurs et hélice de 30cm (oui c'est une grosse et lourde bestiole), rassuré vous , je ne vol pas en ville !
Pascal

N'hésite pas à prendre la Mega2560.
Si tu veux simuler des sorties supplémentaires avec une UNO, le résultat sera plus encombrant et plus cher, sans compter les complications du programme.

Bonjour,
as-tu une doc concernant ces rubans de led ?
si non, peux-tu faire une photo ?

merci micol de ta réponse, j'avais un doute sur le faite que l'on ne me comprenais pas !
D'après toi je peux acheter une copie chinois de mega2560, cela fonctionne de la même façon ?
Pour trimarco : voila un liens : http://www.amazon.fr/Bandeau-Ruban-LED-Blanc-Froid/dp/B008WMKU5I
mais cherche sur eBay.co.uk, tu aura plus de choix
Pascal

Bonjour est-il interdit de parler de copie chinoise ici :confused:
Sinon pouvez vous me donner le site le MOINS cher pour acheter une méga2560 légal (je ne peux pas mettre 40 euro dans une carte méga2560 original !)
Merci d'avance :slight_smile:
Pascal

Bonjour,

Non il n'est pas interdit de parler de copie chinoise ici.
Par contre il y a deux clans ici, ceux qui pensent (comme moi) que le cartes chinoises valent les cartes originales (la plupart du temps) et ceux qui critiquent fortement les cartes chinoises.

pascal83550:
Sinon pouvez vous me donner le site le MOINS cher pour acheter une méga2560 légal (je ne peux pas mettre 40 euro dans une carte méga2560 original !)

Va voir en bas de cette page

bonjour
note que l'arduino ne fera pas tout, il faudra également amplifier les sorties digitales pour obtenir les 12volts/25mA nécessaires à chaque segment
cela complique le montage et le câblage
et rend pertinent l'utilisation de périphériques spécialisés, dans ce cas l'arduino mega n'est pas forcément nécessaire

Très franchement, étant donné le besoin, la proposition de Kamill au message #1 est de loin la plus simple à mettre en oeuvre et sans doute la moins chère au final.

Bonsoir, merçi à tous c'est sympa de dialoguer
@ kamill , ok je m'en doutait, mais c'est bien d'avoir confirmation
@ micol , merci je connais ce site E.goto, je ne savais pas qui fesait ce model !
@ trimarco232 oui en effet j'ai déjà acheté des "driver" , des ULN 2803
@ fdufnews : je comprends pas la remarque, j'ai déjà acheter les leds de couleurs R, V, B, et Jaune , qui éclaire de folie (c'est des mono couleurs, je préférer car si cela "déconne" dans la gestions des couleurs (dans mon programme), je sais plus dans quel sens est le drone, et je me plante (même si maintenant il y a des fonctions de retour automatique au point de départs (smile))
Pascal

Bonsoir,
bon, alors tu peux déjà réfléchir au câblage :

  • comment raccorder les ULN à l'arduino mega, faut-il faire varier l'intensité des leds
  • comment raccorder les ULN à l'alim, protections ?
  • comment raccorder les leds au ULN et au + de l'alim
  • quelle alim ?

Bonsoir
je viens de regarder les leds neopixel, oui en effet c'est assez sympa comme produit :slight_smile: , ce n'est pas ce type de produit que je cherche pour mon drone hexa
Il faut une couleur par bras jaune pour le bras avant, bleu et rouge sur les 2 bras des 2 coté, et vert pour l'arrière
si quelqu'un peut m'aider pour un petit bout de programme qui doit déjà exister quelque part ?
c'est pour "décoder" la duré des impulsions qui sorte de chaque canals de la radio commande
Soit j'utilise une vois spécifique, ou alors j'utilise le fait que le drone est en stationnaire (plus de variation des impulsions qui sorte de la radio commande
cela ressemble à cela,

il faut que je mesure la duré de l'impulsion entre 1 à 2 ms assez précisément, toute les 200ms,
je pense que se type de module/programme a du déjà être écrit ? non ?
Pascal

Bonjour,
tu as déjà les LED strips de différentes couleurs ?

Bonjour pascal.

Question bête, quel carte de navigation/contrôle utilise tu pour gérer ton hexa?
J ai un bout de code si tu veux qui permet de basculer entre plusieurs état selon les donnes envoyé par 2 voie de mon récepteur.

En gros je fait du modélisme aussi et j utilise la 5 ieme et 6 ieme voie de mon récepteur branche sur un arduino. Ces voies sont géré par un potard depuis la télécommande mais fonctionne aussi avec un switch 3 position ( dans ce cas 3 cas possible uniquement).

J espère que cela t aidera et que j ai asses commenté mon code.
Bonne chance.

Edit: pour connaitre tes valeur mini et maxi que ta commande envoie tu dois utiliser la fonction pulsein sur ton récepteur ( un peu a la facon d un oscillo) pour les relever.

Light4Quadv05.ino (12.4 KB)

Bonsoir oui j'ai déjà acheté mes Leds, je ne retrouve pas le site, mais c'est de ce genre là :http://www.ebay.fr/itm/12v-RED-LED-STRIPS-TAPE-STRIP-LIGHTS-120-LED-M-RIBBON-KITCHEN-CABINET-LIGHTING-/271286146560?var=&hash=item3f29ea1600:m:m0LiK-nTBja6jl1ucp0_o5A
ces de 3528 monter tous les 0,83cm et on peut couper tous les 3 Leds, (tout les 5 cm)

Merci percastor pour le bout de code, je n'ais pas encore regarder, (je vais le faire)
pour répondre à ta question oui c'est cela en fait j'ai une DX6i Spectrum (radio de base et très vite sous dimensionné)

Et comme j'ai un Naza Dji lite, ce n'est pas simple pour programmer une voie avec plusieurs position (mais bon c'est ok grace au forum de modélisme on y arrive, j'ai même 4 positions sur ma voie auxiliaire eh eh...... )

Oui donc soit j'utiliserai la sortie auxiliaire du récepteur, ou alors je prend une ou deux voies (droite gauche, et avant arrière) et je scrute la duré de l'impulsion, et quand elle est au neutre pendant par exemple 15/20 secondes, je déclenche l'animation lumineuse, et quand l'impulsion varié, je repasse on position de vol , avec les leds fixe (et peut être un point flash à l'avant par exemple pour bien repéré (et oui je vol en + et non en X)
Nb , j'ai oublier de dire que je vol souvent en soirée, et voir assez souvent de nuit, j'aime bien c'est jolie avec les leds qui clignotent ("cloune")
Pascal

Si j ai bien compris, avec ta voie auxiliaire et ses 4 positions et mon bout de code, tu peux largement t en sortir :wink:

voila les modes que j ai dans le code fournis:

void loop()  
{  //   On commence la boucle par la position du switch en ch6 pour la selection des 2 modes ou tout eteindre
  duch6 = pulseIn(ch6, HIGH); // duree a l etat haut ch6
  // lecture de la valeur ch6:
  int sensorReading = pulseIn(ch6, HIGH);
  // segmentation de la valeur en 3 positions:
  int range = map(sensorReading, sensorMin, sensorMax, 0, 2);

  // 3 positions possibles via l etat de ch6
  // 0: Off mode, 1: Navigation mode et 2: Ufo mode
  switch (range) {
    
 case 0:    // Off mode
 Serial.println("off");
    digitalWrite(ledPin1, LOW); // LED blanc OFF
    digitalWrite(ledPin2, LOW); // LED bleu OFF
    digitalWrite(ledPin3, LOW); // LED vert OFF
    digitalWrite(ledPin4, LOW); // LED orange OFF
    digitalWrite(ledPin5, LOW); // LED rouge OFF
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    digitalWrite(ledPin7, LOW); // LED blanc pleins phares OFF
    digitalWrite(ledPin8, LOW); // LED blanc strobe OFF
    digitalWrite(ledPin9, LOW); // LED rouge OFF
    digitalWrite(ledPin10, LOW); // LED vert OFF
    digitalWrite(ledPin11, LOW); // LED rouge OFF
    break;
    
 case 1:    // Navigation mode
 Serial.println("Navigation mode");
    {  //   On commence la boucle de la position du potar en ch5 pour la selection des 5 modes navigation
  duch5 = pulseIn(ch5, HIGH); // duree a l etat haut ch5
  // lecture de la valeur ch5:
  int sensorReading = pulseIn(ch5, HIGH);
  // segmentation de la valeur en 5 positions:
  int range = map(sensorReading, sensorMin, sensorMax, 0, 4);

  // 5 positions possibles via l etat de ch5
  // 0: Off mode, 1: Takeoff, 2:Flight, 3: Landing et 4: Parking
  switch (range) {
    
 case 0:    // Off mode
 Serial.println("off");
    digitalWrite(ledPin1, LOW); // LED blanc OFF
    digitalWrite(ledPin2, LOW); // LED bleu OFF
    digitalWrite(ledPin3, LOW); // LED vert OFF
    digitalWrite(ledPin4, LOW); // LED orange OFF
    digitalWrite(ledPin5, LOW); // LED rouge OFF
    break;
    
 case 1:    // Takeoff light mode
 Serial.println("Takeoff");
    digitalWrite(ledPin7, HIGH); // LED blanc pleins phares ON
    digitalWrite(ledPin9, LOW); // LED rouge ON
    digitalWrite(ledPin10, LOW); // LED vert ON
    digitalWrite(ledPin11, LOW); // LED rouge ON
    digitalWrite(ledPin8, LOW); // LED blanc OFF
    digitalWrite(ledPin6, HIGH); // LED blanc et rouge navigation ON
    delay (50);
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation ON
    delay (50);
    digitalWrite(ledPin6, HIGH); // LED blanc et rouge navigation ON
    delay (50);
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    delay (50);
    delay (200);
    break;
    
 case 2:    // Flight light mode
 Serial.println("Flight");
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    digitalWrite(ledPin7, LOW); // LED blanc pleins phares OFF
    digitalWrite(ledPin8, LOW); // LED blanc strobe OFF
    digitalWrite(ledPin9, LOW); // LED rouge OFF
    digitalWrite(ledPin10, LOW); // LED vert OFF
    digitalWrite(ledPin11, LOW); // LED rouge OFF
    digitalWrite(ledPin9, HIGH); // LED rouge ON
    digitalWrite(ledPin10, HIGH); // LED vert ON
    digitalWrite(ledPin6, HIGH); // LED blanc et rouge navigation ON
    delay (50);
    digitalWrite(ledPin8, HIGH); // LED blanc ON
    delay (50);
    digitalWrite(ledPin8, LOW); // LED blanc OFF
    delay (50);
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    delay (50);
    break;
    
 case 3:    // Landing light mode
 Serial.println("landing");
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    digitalWrite(ledPin7, LOW); // LED blanc pleins phares OFF
    digitalWrite(ledPin8, LOW); // LED blanc strobe OFF
    digitalWrite(ledPin9, LOW); // LED rouge OFF
    digitalWrite(ledPin10, LOW); // LED vert OFF
    digitalWrite(ledPin11, LOW); // LED rouge OFF
    digitalWrite(ledPin7, HIGH); // LED blanc pleins phares ON
    digitalWrite(ledPin9, HIGH); // LED rouge ON
    digitalWrite(ledPin10, HIGH); // LED vert ON
    digitalWrite(ledPin11, HIGH); // LED rouge ON
    digitalWrite(ledPin6, HIGH); // LED blanc et rouge navigation ON
    delay (50);
    digitalWrite(ledPin8, HIGH); // LED blanc ON
    delay (50);
    digitalWrite(ledPin8, LOW); // LED blanc OFF
    delay (50);
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    delay (50);
    break;
    
 case 4:    // Parking light mode
 Serial.println("Parking");
    digitalWrite(ledPin6, LOW); // LED blanc et rouge navigation OFF
    digitalWrite(ledPin7, LOW); // LED blanc pleins phares OFF
    digitalWrite(ledPin8, LOW); // LED blanc strobe OFF
    digitalWrite(ledPin9, LOW); // LED rouge OFF
    digitalWrite(ledPin10, LOW); // LED vert OFF
    digitalWrite(ledPin11, LOW); // LED rouge OFF
    digitalWrite(ledPin7, HIGH); // LED blanc pleins phares ON
    digitalWrite(ledPin9, HIGH); // LED rouge ON
    digitalWrite(ledPin10, HIGH); // LED vert ON
    
    break;
}
}
    break;
    
 case 2:    // Flight light mode
    Serial.println("UFO mode");
     {  //   On commence la boucle de la position du potar en ch5 pour la selection des 5 modes UFO
  duch5 = pulseIn(ch5, HIGH); //calcul de la duree a l etat haut
  // lecture de la valeur ch5
  int sensorReading = pulseIn(ch5, HIGH);
  // segmentation de la valeur en 5 positions:
  int range = map(sensorReading, sensorMin, sensorMax, 0, 4);

  // 5 positions possibles via l etat de ch5
  // 0: Off, 1: 01, 2: 02, 3: 03 et 4: 04
  switch (range) {
    
 case 0:    // ufo mode Off
 Serial.println("off");
    digitalWrite(ledPin1, LOW); // LED blanc OFF
    digitalWrite(ledPin2, LOW); // LED bleu OFF
    digitalWrite(ledPin3, LOW); // LED vert OFF
    digitalWrite(ledPin4, LOW); // LED orange OFF
    digitalWrite(ledPin5, LOW); // LED rouge OFF
    delay (500);
    digitalWrite(ledPin1, HIGH); // LED blanc ON
    digitalWrite(ledPin2, HIGH); // LED bleu ON
    digitalWrite(ledPin3, HIGH); // LED vert ON
    digitalWrite(ledPin4, HIGH); // LED orange ON
    digitalWrite(ledPin5, HIGH); // LED rouge ON
    delay (500);
    break;
    
 case 1:    // ufo mode 01
 Serial.println("01");
    digitalWrite(ledPin3, HIGH); // LED vert ON
    delay (400);
    digitalWrite(ledPin2, HIGH); // LED bleu ON
    digitalWrite(ledPin4, HIGH); // LED orange ON
    delay (400);
    digitalWrite(ledPin1, HIGH); // LED blanc ON
    digitalWrite(ledPin5, HIGH); // LED rouge ON
    delay (400);
    digitalWrite(ledPin3, LOW); // LED vert OFF
    delay (400);
    digitalWrite(ledPin2, LOW); // LED bleu OFF
    digitalWrite(ledPin4, LOW); // LED orange OFF
    delay (400);
    digitalWrite(ledPin1, LOW); // LED blanc OFF
    digitalWrite(ledPin5, LOW); // LED rouge OFF
    delay (400);
    break;

Bonjour, je viens de recevoir mes Arduino, j’ai pris un de chaque model, comme cela en fonction des besoins, j’aurais se qu’il faut sous la main :slight_smile:
Je rencontre un problème, le UNO fonctionne très bien :slight_smile: , mais le méga, je galère un max pour lui charger le programme, je suis obliger de jouer avec le bouton reset, et encore cela ne fonction, pas toujours !
Et je tombe en time out, j’ai bien choisi le bon model (le méga 2560, pour le pilote, j’ai pris le bon, le CH340, j’ai un programme de test tout simple (celui de l’exemple, avec 3 leds (pour tester les sorties en plus du méga) :confused:
Je ne comprends pas, j’ai tout arrêté, relancer, cela change rien, le méga prend le logiciel quand cela lui chante, ou alors je fais mal la manip ? :confused:
Merci d’avance pour vos conseils
Pascal

Bonsoir,
ton uno est équipé d'un ch340g ?