Show Posts
Pages: [1] 2 3 ... 230
1  International / Français / Re: Relais statique du commerce on: Today at 10:13:00 am
Bien, je n'ai pas de modulation de puissance dans ce projet.

C'est en fait un transfo qui produit du 2,4 v pour une résistance chauffante.
Par contre, je dois utiliser un relais statique suite à son grand nombre de commutation qui est de +/- 1 x / sec pendant +/- une journée de travail.
Trouver un relais statique qui fonctionne avec 2,4V coté puissance c'est peut être pas évident.
Mais dans ce cas, il est peut être plus simple de redresser double alternance et de piloter avec un MosFet
2  International / Français / Re: Arduino et un environnement industrielle on: Today at 04:14:30 am
Dans cette idée de faible coût et pour une seule machine, il n'est pas possible de développer une carte spécifique.

Je me permet de ne pas être d'accord sur ce point.

Une petite mise au point d'abord sur le vocabulaire utilisé, lorsque je parle de spécifique, je parle d'une carte spécifique à toi et qui couvre tes besoins en général et non d'une carte spécifique à chaque nouvelle machine.

Le développement d'une carte spécifique sur base arduino ne reviens pas très cher. Le schéma existe déjà. Le circuit est simplissime et peut même être routé sur du simple face avec un minimum d'effort (encore que cela n'est pas souhaitable d'un point de vue CEM). On peut faire faire de circuits imprimés pour une poignée d'euros.
Cette solution t'offre la possibilité d'avoir sur la carte:
  • une alimentation plus robuste que celle des arduino du commerce, régulateur mieux implanté, technologie à découpage, ..
  • mettre en place des protections sur les entrées/sorties
  • peut être ajouter des fonctionnalités que tu utilises souvent pour t'éviter d'avoir à les placer sur une carte déportée
La carte spécifique te donne surtout un contrôle totale sur la qualité des composants utilisés.

J'ai jeté un coup d'oeil sur ton site. Au regard du temps que doit prendre la restauration des machines, je pense que le prix d'une carte processeur spécifique doit être relativement marginal.
3  International / Français / Re: capteur de contrainte on: Today at 03:55:12 am
Avant de tout remettre en cause, as-tu essayé de mettre un transistor comme indiqué dans la datasheet pour augmenter le courant de sortie?
A moins d'avoir tué le capteur il n'y a pas de raison de ne pas continuer avec celui-ci. Une jauge de contrainte c'est jamais que 4 résistances, c'est quand même assez robuste.
4  International / Français / Re: Commande on_for on: July 31, 2014, 03:09:25 pm
Je viens de tester chez moi sur une carte arduino et j'ai corrigé quelques erreurs que je n'avais vues.
J'ai corrigé le code dans le post précédent.
5  International / Français / Re: Commande on_for on: July 31, 2014, 02:45:05 am
Je te propose un code qui compile mais que je n'ai pas pas pu tester. J'espère n'avoir pas laissé trop d'erreurs.
Le système est non bloquant ce qui permet de faire d'autres actions pendant le déroulement des temporisations
Les temporisations ont été remontées au début dans des define pour pouvoir les modifier plus facilement.
Le code est commenté.

Code:
//CE QUE LE PROGRAMME DEVRAIT FAIRE
// Si personne dans ma cours arriere, la led verte installé sur ma remise flash sans arret.
//Si quelqu'un  penetre dans ma cours arriere et s'approche de ma remise la Led rouge flash.

#define Detecteur_mouvement  2    // Pins to connect to
#define ledRouge    11
#define ledVerte    10
#define TEMPS_VERT_ON 100L
#define TEMPS_VERT_OFF 4000L
#define TEMPS_ROUGE_ON 500L
#define TEMPS_ROUGE_OFF 100L
#define TEMPS_TEMPORISATION (30000L)
unsigned long time ; // durée du clignotement
unsigned long temporisation=0 ; // durée de l'alarme
// définition du nom des états de la machine à états
enum E_etat{rien_led_on, rien_led_off, alarme, alarme_en_cours_led_on, alarme_en_cours_led_off, fin_alarme};
byte etat; // mémorise l'état courant de la machine à état

void setup()   /****** SETUP: RUNS ONCE ******/
{
  pinMode (ledRouge,OUTPUT) ;        // PIN 11 est une sortie   
  pinMode (ledVerte, OUTPUT) ;       // PIN 10 est une sortie
  pinMode (Detecteur_mouvement, INPUT) ;      // PIN 2 est relié au contact momentané du detecteur de mouvement
  etat = rien_led_on; // état initial de la machine à états
  time = millis(); // initialisation de la variable qui gère le clignotement
  }
 
void loop()   
{
  if  (digitalRead(Detecteur_mouvement)==HIGH){  // Si mouvement detecté
etat = alarme; // passage dans l'état alarme
  }
 
  // on peut ajouter d'autres portions de code qui modifient le déroulement de la machine à états
  // par exemple un arret de l'alarme par un bouton
  /*
  if (digitalRead(bouton Arret) == HIGH){
etat = fin_alarme;
  }
  */
 
  // Corps de la machine à état
  // les états ne sont pas bloquants à chaque itération de loop on évalue l'état actuel de la machine
  // et pour chaque état on teste si un temps est écoulé ou non
  // le dépassement d'un temps entraine un chagement d'état de la machine
  switch(etat){
// pas d'alarme on allume la LED verte pendant TEMPS_VERT_ON ms
// si la durée de clignotement est dépassée on passe à l'état rien_led_off
case rien_led_on:
digitalWrite(ledRouge, LOW) ; // éteint la led rouge
if ((time+TEMPS_VERT_ON) > millis()){
digitalWrite(ledVerte, HIGH) ;         // LA LED verte on pendant TEMPS_VERT_ON ms
} else {
time = millis();
etat = rien_led_off;
}
break;

// pas d'alarme on éteind la LED verte pendant TEMPS_VERT_ON ms
// si la durée de clignotement est dépassée on passe à l'état rien_led_on
case rien_led_off:
digitalWrite(ledRouge, LOW) ; // éteint la led rouge
if ((time+TEMPS_VERT_OFF) > millis()){
digitalWrite(ledVerte, LOW) ;         // LA LED verte off pendant TEMPS_VERT_OFF ms
} else {
time = millis();
etat = rien_led_on;
}
break;

// On arrive dans cette état au déclenchement de l'alarme et on y passe qu'une fois.
// initialisation du mode alarme
// on peut y ajouter des actions qui n'auront lieu qu'une fois au déclenchement de l'alarme
// l'état suivant est alarme_en_cours_led_on
case alarme:
digitalWrite(ledRouge, HIGH) ; // éteint la led rouge
digitalWrite(ledVerte, LOW) ;  // LA LED verte off
time = millis();
temporisation = time;
etat = alarme_en_cours_led_on;
break;

// on est en alarme et la LED rouge est allumée pendant TEMPS_ROUGE_ON ms
// si la durée de clignotement est dépassée on passe à l'état alarme_en_cours_led_off
// si la durée de temporisation est dépassée on passe à l'état fin_alarme
case alarme_en_cours_led_on:
if ((time+TEMPS_ROUGE_ON) > millis()){
digitalWrite(ledRouge, HIGH) ;         // LA LED rouge on pendant TEMPS_ROUGE_ON ms
} else {
time = millis();
etat = alarme_en_cours_led_off;
}
if ((temporisation + TEMPS_TEMPORISATION) < millis()){
etat = fin_alarme;
}
break;

// on est en alarme et la LED rouge est éteinte pendant TEMPS_ROUGE_OFF ms
// si la durée de clignotement est dépassée on passe à l'état alarme_en_cours_led_on
// si la durée de temporisation est dépassée on passe à l'état fin_alarme
case alarme_en_cours_led_off:
if ((time+TEMPS_ROUGE_OFF) > millis()){
digitalWrite(ledRouge, LOW) ;         // LA LED rouge off pendant TEMPS_ROUGE_OFF ms
} else {
time = millis();
etat = alarme_en_cours_led_on;
}
if ((temporisation + TEMPS_TEMPORISATION) < millis()){
etat = fin_alarme;
}
break;

// On arrive dans cette état à la fin de l'alarme et on y passe qu'une fois.
// finalisation du mode alarme
// on peut y ajouter des actions qui n'auront lieu qu'une fois à la fin de l'alarme
// l'état suivant est rien_led_on
case fin_alarme:
digitalWrite(ledRouge, LOW) ;         // LA LED rouge off
digitalWrite(ledVerte, HIGH) ;        // LA LED verte on
etat = rien_led_on;
                time = millis();
                break;
  } 

}//Fin de la boucle

edit : Correction de 2, 3 erreurs que je n'avais pas vues à la compilation.
testé sur  une carte. fonctionne comme attendu.
6  International / Français / Re: Commande on_for on: July 31, 2014, 01:44:11 am
En C les blocs de code doivent être placés entre accolades {}. Ainsi le code exécuté conditionnellement par un if .. else .. ou le code dans un while, ou un do .. while doit être mis entre accolades.

ainsi dans ce morceau de ton code le clignotement des LEDs ne se trouve pas dans ta boucle de temporisation
Code:
   while(millis()<(time+(5*60000)))
    digitalWrite(ledRouge, HIGH) ;          // lED rouge a on  flash on .5 sec puis 2 secondes off
    delay(500); // delai .5 sec
    digitalWrite(ledRouge, LOW) ;        
    delay(100); // delai 2sec

Il faudrait l'écrire comme-ça
Code:
   while(millis()<(time+(5*60000))){
    digitalWrite(ledRouge, HIGH) ;          // lED rouge a on  flash on .5 sec puis 2 secondes off
    delay(500); // delai .5 sec
    digitalWrite(ledRouge, LOW) ;        
    delay(100); // delai 2sec
}

Maintenant ce morceau de code devient bloquant et ce n'est peut être pas ce que tu cherches à faire.
7  International / Français / Re: Câbles on: July 30, 2014, 02:40:42 pm
En ce qui concerne la connectique (putain ! j'ai horreur d'employer ce mot qui ne figure même pas au dictionnaire de la langue française !)

Ouf, tu ne seras pas obligé de te laver la bouche au savon après l'avoir utilisé http://www.larousse.fr/dictionnaires/francais/connectique/18291.
8  International / Français / Re: Arduino et un environnement industrielle on: July 30, 2014, 02:33:51 pm
Si tu en utilises régulièrement, pourquoi ne pas faire ta carte à base d'ATmega328. C'est jamais qu'un processeur, un quartz et quelques condensateurs et résistances.
Si tu penses avoir besoin de plus d'entrées/sortie développes plutôt une carte à base d'ATmega1284P.
Tu pourras ainsi y mettre une connectique plus robuste et mieux adaptée à l'environnement où la carte sera utilisé. Même remarque pour la partie alimentation.

Tu dis que tu fait des cartes avec les circuits annexes. Dans ce cas tu peux aussi ajouter sur la même carte ton bloc "arduino" pour ne faire qu'un circuit imprimé.
9  International / Français / Re: utilisatiion d'un filtre pour capteur on: July 30, 2014, 10:30:57 am
Je dirais un capteur de gaz http://forum.arduino.cc/index.php?topic=247417.msg1768333#msg1768333
Mais on ne sait pas lequel....
10  International / Français / Re: "Puissance" du servomoteur on: July 30, 2014, 10:26:44 am
Si on raisonne d'un point de vue purement économique, le changement de l'interrupteur est sans doute moins coûteux que le changement du servo.

Autrement avec 2 morceaux de corde à piano tu le fais ton contact.
11  International / Français / Re: utilisatiion d'un filtre pour capteur on: July 30, 2014, 02:39:43 am
j'insiste il faut quantifier ce bruit et trouver sa source en premier.
Si le capteur est en cause il faut soigner le capteur si possible.
Si c'est une mesure sur N qui est mauvaise un simple filtre majoritaire sur une poignée de mesure fera l'affaire.
Si ....
12  International / Français / Re: utilisatiion d'un filtre pour capteur on: July 30, 2014, 01:31:55 am
Est-ce que les fluctuations sont du bruit de mesure dans la fourchette des caractéristiques du capteur?
Si non:
      La première chose c'est d'essayer de réduire au maximum les fluctuations au niveau du capteur avant d'aller plus loin.
      Soigner l'alimentation du capteur
      Soigner les connexions entre le capteur et l'arduino
Si oui:
      Mauvais choix de capteur
13  International / Français / Re: capteur de contrainte on: July 29, 2014, 06:32:53 am
si je branche le V+ du capteur sur le 10v de l'INA, la tension alors mesurée sur ce pin (16) n'est plus que de 5.6v et, la Vref 5v (pin 15) de 2.6

est ce normal ? par ce que du coups, l'Arduino ne reçoit pas du 5v sur l'AREF
Ton capteur présente une impédance assez faible. Peut être charge-t-il trop la référence.
Dans la doc de l'INA125 il est suggéré de mettre un transistor pour augmenter la sortance de Vref.
14  International / Français / Re: [Conseil] Montre = Arduino Pro Micro + RTC + Oled + Lipo => Connections/Code ? on: July 28, 2014, 08:29:26 am
Sans être un cador en programmation, si tu analyses un peu le code des 2 programmes que tu donnes, tu vois que:
  • pour le programme de l'OLED
    •  il n'y a rien dans le setup. Donc cette partie du programme dans ta montre sera vite faite
    • dans la boucle principale, le programme se contente de dessiner en boucle un logo. Donc cette partie ne t'intéresse pas non plus pour ton programme final.
    • tu noteras qu'il n'y a aucune déclaration de périphérique I²C ce qui donne à penser que la déclaration est caché (comprendre réalisée par la librairie)
  • pour le programme de la RTC
    • le setup ne contient que l'ouverture du port série. Donc cette partie ne t'intéresse pas pour ton application
    • il n'y a pas non plus de déclaration de périphérique I²C ce qui donne à penser que cette fois encore la déclaration est caché (comprendre réalisée par la librairie)
    • la boucle principale se contente de lire l'heure dans le DS1307 avec RTC.read() ensuite elle sépare heures, minutes, secondes et date pour les envoyer vers le port série. Dans ton cas, au lieu d'envoyer les valeurs à afficher vers Serial il faut que tu fasses appel aux fonctions d'affichage de texte de la librairie de ton afficheur.
Enfin de compte il n'y a quasiment rien à récupérer des 2 programmes. La partie la plus importante la gestion de l'affichage et sa mise en forme sont à faire en fonction de ce que tu veux obtenir au final.
Tu peux t'inspirer du programme de démonstration de l'afficheur pour voir comment dessiner un cadre et afficher du texte.
15  International / Français / Re: alimenter arduino avec 5 volts externe ? on: July 27, 2014, 12:52:22 pm
un 7805 avec radiateur peut fournir du 5 volts 1 ampere et surtout accepte jusqu'à 24 volts en entrée
Ces 2 affirmations ne sont généralement pas vraies en même temps.
Cela fait dissiper 19W dans le régulateur.

pour alimenter un arduino promini avec un sketch qui commande 4 servomoteurs (exemple), le regulateur de la carte n'en est pas capable

j'ai enviro 20 volts continu en entrée, 5 volts sort du 7805, je relie le + des servos, le gnd, et le +5 volts sur la pin +5 volts de l'arduino bypass le regulateur de la carte, je veux savoir si c'est sans danger pour la carte arduino ?
Je suppose que tu veux dire:
   - Je réunis tous les GND
   - Je réunis la sortie +5V du 7805 au +5V des servos et à l'entrée 5V de l'arduino.

A priori pas de problème à cette configuration.

Edit
Une précaution quand même, lors du téléchargement ne pas relier le +5V de la sonde de téléchargement sur la promini car il va y avoir un conflit.
Pages: [1] 2 3 ... 230