Page 1 sur 3

[AIDE] Arduino

Posté : dim. 8 févr. 2015 11:58
par willmodelisme
Je cherche de l'aide sur un projet Arduino.
J'aimerai déclencher une séquence de clignotement définie au préalable par une voie de la radio.
J'arrive a allumer une LED en fixe via une voie radio avec ce code (signal d'une voie du receteur en pin 3 et LED en pin 13)
mais je n'arrive pas a intégrer cela avec le code BLINK
Y a t'il des PRO de Arduino qui pourraient y jeter un oeil ?

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 12:20
par Tomdu38
Salut,

Essaie ça :

Code : Tout sélectionner

int led = 13;
int inputPin = 3;
int InputStatut = LOW;

int RCvalue = 1500; 

// the setup routine runs once when you press reset:
void setup() {                
  // initialize the digital pin as an output.
  pinMode(led, OUTPUT);  
  pinMode(inputPin, INPUT);  
  Serial.begin(9600); // to display value on the monitor
}

void loop() {
  
  InputStatut = pulseIn(inputPin,HIGH);
  
  Serial.println(InputStatut);
  
  if (InputStatut > RCvalue){
  
  digitalWrite(led, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(1000);               // wait for a second
  digitalWrite(led, LOW);    // turn the LED off by making the voltage LOW
  delay(1000);  

  }          
}
J'ai mis une ligne pour afficher la valeur lu par l'arduino cf le moniteur serie, comme ça tu peux ajuster la RcValue.

Suivant ce que tu veux faire, ce n'est pas conseillé d'utiliser le delay, car ça stop le programme... il faut utiliser la fonction millis().

A+

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 12:36
par Tomdu38
Je viens de rééditer, le programme ! A+

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 12:59
par willmodelisme
Merci Tom.
Ca marche :super: :amen:
Je test ce soir (je vais bosser là) pour voir si je peux programmer mes propres séquences de flash avec des variations de temps d'allumage et d’extinction sans que cela ne pose de pb.

Je veux faire un truc du genre peu de position, flash/flash/flash/flash, puis pose 500ms et rebelote.

A+

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 14:44
par Tomdu38
Dac ! travaille bien alors ! tu feras une petite vidéo pour voir ta guirlande finie :hehe:

A+

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 14:52
par willmodelisme
Absolument.
Le but est de porter le code sur ATtiny pour embarquer sur un modèle et activer une ou plusieurs LED haute puissance, feu de NAV, alarme visuel avec la Taranis etc...
Cette partie est déjà au point et fonctionne.
Si tu veux un module fini pour un modèle a toi dis-le moi ;)

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 17:16
par Tomdu38
Merci pour la proposition Mr Will ;) je prends note.

De mon côté je m'oriente vers les neopixels autrement dit les leds WS2812B, je suis fan ! 3 fils et on pilote plein de leds RGB !

Cet aprem, je viens de finir le dessin du pcb (jusqu'à la prochaine modification) avec 6 leds réparties sur 2 bandes de 3 leds.

Il va falloir que je prenne le temps d'usiner tout ça, avec l'occasion d'utiliser ma cnc pour de la gravure de CI ...

Dans l'attente de tes vidéos... si tu as besoin d'un coup de pouce, n'hésite pas !

A+

Re: [AIDE] Arduino

Posté : dim. 8 févr. 2015 22:48
par willmodelisme
Je viens de tester avec une séquence de flash rapide, ça marche du tonnerre.
Bravo Tomdu38. Je vais inclure ton nom dans le sketch :super:
Reste à porter le tout sur Attiny et tester sur un modèle si je n'ai pas d’interférence.
A suivre.

Re: [AIDE] Arduino

Posté : lun. 9 févr. 2015 18:00
par willmodelisme
Voici un nouveau code pour pouvoir éditer 3 zones et 3 fonction de LED pour une voie (on peut faire plus, c'est possible).
Je l'ai adapté d'un code que j'ai trouvé sur le net.
Il permet tout les réglages pour contrôler une led sur un inter 3P:

Code : Tout sélectionner

/*
 RC LED CONTROL
 Contrôlez une LED via une voie de la radiocommande
 3 états: OFF/ON Blink/ON full
 Jouez avec les valeurs ch1 (entre 1000 et 2000) pour déterminer la position des 3 états sur la voie
 Jouez avec les valeurs de délais pour modifier l'état ON Blink (séquence de flash)

 DATE 09/02/2015
 */

int ch1; 
int led = 13;

void setup() {

pinMode(3, INPUT);
pinMode(13, OUTPUT);
Serial.begin(9600); 

}

void loop() {
  
  ch1 = pulseIn(3, HIGH, 25000); // Read the pulse width of 
  
  Serial.print("Channel 1:"); // Print the value of 
  Serial.println(ch1);        // each channel //affiche les valeurs de la voie pour les réglages

//Règle les valeurs du secteur bas et haut de votre voie radio pour la séquence de flash, définie ici pour un centre sur un inter 3 voies
 
  if ((ch1>1300)&&(ch1<1600)){

//séquence de flash, jouez a modifiez les valeurs de delay du ON et du OFF 
    digitalWrite(led, HIGH); 
    delay(30); 
    digitalWrite(led, LOW); 
    delay(40);
    digitalWrite(led, HIGH); 
    delay(30); 
    digitalWrite(led, LOW); 
    delay(40);
    digitalWrite(led, HIGH); 
    delay(30); // wait for a second
    digitalWrite(led, LOW); 
    delay(700);}

//règle la position de la voie pour un autre état de la led, ici ON et inter 3P en position haute
 else if (ch1>1600){
    digitalWrite(led, HIGH);
 }

//règle la position de la voie pour un autre état de la led, ici OFF et inter 3P en position basse
  else {}


}

Et voici le code pour ATtiny85 pour ceux qui veulent tester:

Code : Tout sélectionner

/*
 RC LED CONTROL
 Contrôlez une LED via une voie de la radiocommande
 3 états: OFF/ON Blink/ON full
 Jouez avec les valeurs ch1 (entre 1000 et 2000) pour déterminer la position des 3 états sur la voie
 Jouez avec les valeurs de délais pour modifier l'état ON Blink (séquence de flash)
 Sketch pour ATtiny85
 DATE 09/02/2015
 */

int ch1; 
int led = 0;

void setup() {

pinMode(1, INPUT); 
pinMode(0, OUTPUT);

}

void loop() {
  
  ch1 = pulseIn(1, HIGH, 25000); 
   
//Règle les valeurs du secteur bas et haut de votre voie radio pour la séquence de flash, définie ici pour un centre sur un inter 3 voies
  if ((ch1>1300)&&(ch1<1600)){

//séquence de flash, jouez a modifiez les valeurs de delay du ON et du OFF
    digitalWrite(led, HIGH);  
    delay(30); 
    digitalWrite(led, LOW); 
    delay(40);
    digitalWrite(led, HIGH); 
    delay(30); 
    digitalWrite(led, LOW); 
    delay(40);
    digitalWrite(led, HIGH); 
    delay(30); 
    digitalWrite(led, LOW); 
    delay(700);}

//règle la position de la voie pour un autre état de la led, ici ON et inter 3P en position haute
  else if (ch1>1600){
    
    digitalWrite(led, HIGH);
 }
//règle la position de la voie pour un autre état de la led, ici OFF et inter 3P en position basse (boucle vide led éteinte)
  else {}
}

Re: [AIDE] Arduino

Posté : lun. 9 févr. 2015 20:01
par Dehas
Ça sert a quoi que Denis se décarcasse a faire un tag code !! :mdr3:

Re: [AIDE] Arduino

Posté : lun. 9 févr. 2015 20:37
par willmodelisme
Cool, merci Denis [yahoo.gif]
J'ai édité celui de Tom aussi :super:
Ben j'aurais appris plein de chose aujourd'hui moi :mdr3: :mdr3:

Re: [AIDE] Arduino

Posté : lun. 9 févr. 2015 22:15
par Tomdu38
Oops dsl coatch pour le "code" !!!

@willmodelisme : dans le code généralement, on évite de mettre des valeurs en dur direct dans les boucles, c'est un peu galère à changer après, imagine que tu ais envie de changer sur l'Attiny par exemple la pin 0 en pin 1 ... tu es obligé de te taper tout le code ... Dans la mesure du possible (= à chaque fois !!!) faut les mettre en début de code dans des variables.

Pareil pour les délais..etc...... d’ailleurs je me demande comment tu arrives à faire la différence entre 30 et 40 milliseconde loool !

En attente des vidéos.

A+

Re: [AIDE] Arduino

Posté : lun. 9 févr. 2015 22:33
par willmodelisme
Ok pour les valeurs dures.
Je vais regarder ça.
Pour les ms, et bien je vois une différence :gene:
En fait sur une Strip LEd de 3W, cela donne un scintillement rapide.
Et avec un 40ms OFF au lien d'un 30ms OFF, le scintillent devient plus.... scintillant :hehe:

En tous cas Arduino c'est génial, je m'éclate comme un fou.

Re: [AIDE] Arduino

Posté : mar. 10 févr. 2015 18:33
par willmodelisme
Voilà, le micro module est terminé et ça marche super bien:



Je vais revoir le CI car c'est chiadé à souder quand même, je vais faire des pads plus gros pour les connexions lipo et LED et déplacer l'entrée de la voie radio.
Le module sera un poile plus grand mais ce sera plus facile à souder.
Bientôt le typon.

Re: [AIDE] Arduino

Posté : mar. 10 févr. 2015 19:02
par Dehas
J'achéééééééééééééte :super:

Re: [AIDE] Arduino

Posté : mar. 10 févr. 2015 19:30
par artdeschoix
Bonsoir ,
qu'est-ce que c'est formidable l'Arduino !
J'entame l'apprentissage de ce type de programmation .
J'ai un projet qui me tiens à cœur mais je ne sais pas si j'y arriverais !
A suivre !!!!

@+ René 8|

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 10:05
par willmodelisme
Image

Dis moi quelle séquence de flash tu veux: Comme sur la vidéo ou autre chose, tout est faisable sauf le Dimlight (2 position, 3 positions etc... durée du flash, ON ou OFF...)

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 10:35
par Dehas
La même chose, c'est nickel :super:

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 12:04
par willmodelisme
D'ici début mars car il me maque des connecteurs JST et JST-XH, un pour le strip led et un pour prendre le 12V sur une lipo 3S.

Image

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 13:48
par Dehas
Pour moi juste des fils avec un repaire, car je soude direct sur la carte de distribution et sur le bandeau de led.

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 16:34
par willmodelisme
Ça c'est bon. Je te le fais de suite.

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 17:12
par Dehas
Merci :super:
Tu pourrais faire un "retrouve modèle" avec un buzzer.

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 17:55
par Tomdu38
ça flash ! j'ai perdu 4 points rien qu'en regardant ta vidéo lol !!!

Sympa le montage, tu pourrais optimiser tout ça en passant par un attiny smd, avec un ptit programmer à côté, tu gagnerais en place. Sinon, je pense que tu dois pouvoir trouver des mini cartes arduino

http://www.gizmag.com/digispark-micro-c ... ino/23763/" onclick="window.open(this.href);return false;

https://learn.adafruit.com/introducing- ... troduction" onclick="window.open(this.href);return false;

Bonne continuation !

Tom

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 18:06
par willmodelisme
Merci Tom. Je regarde ça avec intérêt.
Effectivement c'est super quand tu as besoin de plus de puissance.

Sinon je suis à 8 grammes au total (câble et gaines thermo) pour le Attiny-flash soit a peu près le poids d'un strip LED 3W.
C'est vrai que ce n'est pas négligeable sur de petits modèles (au départ c'est pour mon planeur donc pas de pb. :] )
Mais les SMD me font peur....
Ça doit pas être facile à souder ces trucs.....

Denis, un "retrouve modèle " qui déclenche sur une voie et aussi en cas de coupure radio ?

Re: [AIDE] Arduino

Posté : mer. 11 févr. 2015 18:25
par obelix de savoie
Sympa tous sa :super: :super: il existe des tuto pour se lancé (savoir le matos qu'il faut et pour le code??)