Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



Problème de programmation ou optocoupleur


 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
Thibault
Débutant

Hors ligne

Inscrit le: 12 Mar 2014
Messages: 4
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Dim 23 Mar - 17:27 (2014)    Sujet du message: Problème de programmation ou optocoupleur Répondre en citant

PublicitéSupprimer les publicités ?
Bonjours à tous,

Voila mon problème:
Je réalise actuellement un kart hybride pour mon projet de fin d'étude et j'ai besoin d'aide.
Le démarreur du moteur essence s'actionne en fonction d'un programme arduino. Étant donné que ce moteur n'est pas très performant, il ne démarre pas toujours du premier coup.
J'ai donc programmé le démarreur électrique pour qu'il s'actionne pendant 4 secondes et si le moteur n'a pas démarré, on attend 4 secondes supplémentaire pour ne pas l'endommager  et il se ré-actionne pendant 4 secondes et ainsi de suite.
J'ai placé un optocoupleur (Omron, EE-SX1042) autour de la cloche du moteur essence. J'ai découpé plusieurs petits carré de métal de la cloche pour permettre à l'optocoupleur de détecter un changement de signal, pour avoir l'information que le moteur à bien démarrer.

Mais le problème est que lorsque le moteur tourne, le démarreur continue à s'enclencher toutes les 4 secondes. J'ai d'abord pensé que l'optocoupleur grillait à chaque démarrage du à une surtension,...
Après test avec un oscillo, multimètre,... ça ne peut pas être ça.

Pour moi il reste 2 solutions:

- Ou mon programme arduino n'est pas correct,

- Ou l'optocoupleur que j'utilise n'est pas assez rapide pour détecter le changement d'état, étant donné que la cloche tourne très vite.
(Un autre optocoupleur du même type détecte la vitesse des roues du kart et fonctionne très bien cependant le changement d'état se fait beaucoup moins souvent sur l'espace d'une seconde)

Quand pensez-vous ?

Voici mon programme:

#include "LiquidCrystal.h"
#define PULSE_PIN 0
#define PULSE_TIMEOUT 1000000
 
unsigned long rpm;
LiquidCrystal lcd(13,12,8,11,9,10);
const int led_demarreur = 7;
const int demarreur = 4;
const int moteur_tourne = 6;
const int bouton_demarreur = 1;
const int entree_thermique = 5;
int etat_bouton_demarreur;
int pin = 0;
int etat_entree_thermique;
 
void setup ()
{
  lcd.begin(16, 1);
  lcd.print("LCD OK");
  pinMode(PULSE_PIN, INPUT);
  digitalWrite(PULSE_PIN, HIGH);
  pinMode(led_demarreur, OUTPUT);
  digitalWrite(led_demarreur, LOW);
  pinMode(demarreur, OUTPUT);
  digitalWrite(demarreur, LOW);
  pinMode(moteur_tourne, OUTPUT);
  digitalWrite(moteur_tourne, LOW);
  pinMode(bouton_demarreur, INPUT);
  digitalWrite(bouton_demarreur, HIGH);
  pinMode(entree_thermique, INPUT);
  digitalWrite(entree_thermique, HIGH);
  etat_bouton_demarreur = HIGH;
  etat_entree_thermique = HIGH;
  delay(1000);
  lcd.clear();
  delay(500);
}
 
void loop ()
{
  rpm = pulseIn(PULSE_PIN, LOW, PULSE_TIMEOUT);
  rpm = 60 / (rpm / 1000000.0);
  lcd.print(rpm);
  etat_bouton_demarreur = digitalRead (bouton_demarreur);
  etat_entree_thermique = digitalRead (entree_thermique);
 
  if((rpm<700) && (etat_bouton_demarreur == HIGH) && (etat_entree_thermique == HIGH))
  {
    digitalWrite(demarreur, HIGH);
    delay(4000);
    digitalWrite (demarreur, LOW);
    delay(4000);
  }
  else
  {
    digitalWrite(demarreur,LOW);
  }
  if(rpm<700 &&  etat_entree_thermique == HIGH)
  {
    digitalWrite(demarreur, HIGH);
    delay(4000);
    digitalWrite (demarreur, LOW);
    delay(4000);
  }
  else
  {
    digitalWrite(demarreur,LOW);
  }
  delay(500);
}


Merci d'avance
Thibault
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 23:37 (2017)    Sujet du message: Problème de programmation ou optocoupleur

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Page 1 sur 1

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino