Question protection entrée arduino

  • Auteur de la discussion Titou16
  • Date de début
T

Titou16

Compagnon
Bonjour,

Dans le cadre de a réalisation d'un Go kart électrique pour mon fils : https://www.usinages.com/threads/fabrication-dun-go-kart-tous-terrain-pour-enfant.131615/

Je rouvre un post ici car j'ai un problème d'électronique. Je cherche à faire un limiteur de vitesse pour assurer que le kart ne dépassera pas cette 10km/h. Ce que ne peuvent pas faire les contrôleurs que j'ai. Leur bridage en vitesse s'accompagne d'une forte réduction de couple et ça n'avance plus. Pour palier ça je prévois donc un système suivant le schéma ci dessous :

Le potentiomètre de la pédale d’accelérateur ne sera plus relié au fil des gaz des contros mais à un pin analogique d'un arduino Uno. Une sortie analogique retransmettra la tension 0-5V du potard sur le fil des gaz du contro (en fait il y aura une sortie analogique pour controler les gaz de chaque contros, comme ça je pourrai aussi simuler un différentiel à l'aide d'un autre potard relié à la colonne de direction) mais dès que la vitesse max sera atteinte, la tension sur le fil des gaz sera réduite. Et pour connaître la vitesse de rotation des roues, et donc la vitesse du kart, je pense récupérer le signal d'un des capteurs Hall d'un des deux moteurs. Voilà comment je compte câbler le tout mais j'ai besoin d'aide pour savoir comment relier le capteur Hall à un pin analogique de l'arduino afin de pas le cramer (case avec le ?). Donc j'en appelle aux électroniciens.

Faut il mettre une résistance?
Ou une résistance et un condo entre le pin et le 0V pour éviter les pics?

schéma de cablage arduino - controleur.png
 
P

psemel

Ouvrier
Bonsoir,
Sur la valeur du potentiomètre de vitesse, tu peut limiter la tension envoyer au contrôleur. c'est à dire qu'a partir d'une certaine valeur du potentiomètre le signal envoyer au contrôleur ne pourra pas être supérieure. ce n'ai que de la programmation et pas besoins d'autre capteur hormis quelques essais de réglage.
concernant le potentiomètre de direction c'est plus délicat, cela veut dire qu'en marche tu ralentit un moteur et tu accélère l'autre pour tourner. c'est a dire que suivant l'angle de direction, tu augment un coefficient sur un moteur et réduit sur l'autre.

braquage à fond a gauche : Vitesse moteur gauche x 0,5 et Vitesse moteur droit x 1
tout droit : vitesse moteurgauche x1 et vitesse moteur droit x 1
braquage à fond a droit : vitesse moteur gauche x 1 et vitesse moteur droit x 0,5
le coefficient est fonction de l'angle de braquage et de la distance à parcourir pour chaque roue. La aussi c'est du programme.

Concernant les capteurs à effet Hall regarde il a des exemples concernant les anémomètres fait à partir d'une arduino.
les capteurs ont 3 fils voir 4 (+ - et signal )
regarde la documentation de l'arduino sur les entrées et sorties numériques de l'arduino ainsi que le PWM sur une sortie numérique

exemple de code capteur 3 fils brancher sur le pin 2 numérique de l'arduino

const int ledPin = 13;
const int hallPin = 2;// pin du capteur Hall
// value read from the pot

int sensorValue;
int outputValue;
void setup(){
Serial.begin(9600);
pinMode( ledPin, OUTPUT );
pinMode( hallPin, INPUT );// entrée numérique du capteur Hall
}

void loop() {
// lecture du capteur a Effet Hall
sensorValue = digitalRead( hallPin );

// senseurValue = HIGH sans aimant
// senseurValue = LOW quand POLE SUD aimant
sensorValue = not( sensorValue );

// Allumer eteindre la LED
digitalWrite( ledPin, sensorValue );
sensorValue = digitalRead( hallPin );
// change the analog out value:


// print the results to the serial monitor:
Serial.print("sensor = " );
Serial.println(sensorValue);
delay(100);



}
 
D

Djviper16

Compagnon
Salut,

Pour protéger ton arduino, tu peux intercaler un optocoupleur entre ton capteur effet hall et l'entrée du micro contrôleur.

Ca fera isolation galvanique.

Jérôme
 
T

Titou16

Compagnon
Bonsoir psemel, salut Jérôme,

Pour la partie programme arduino pas de problème, ça je sais faire. J'ai déjà une brique de compte tour que j'ai utilisé pour 2 projets. Là ça va compter non pas les tours mais les impulsions et comme les moteurs ont 30 aimant, ça fait 30 impulsions par tour. Vu que je veux limiter la vitesse à 10 km/h, et que les roues font 360mm de diamètre, ça fait sauf erreur de ma part 74 impulsions/seconde pour 10km/h.

Pour la fonction différentiel, elle n'y sera pas dans un premier temps. Un gars qui a fabriqué tout un tas de go kart et autres engins similaires sur base de moteurs d'overboard m'a dit qu'il y en avait pas besoin. Donc je verrai lors des essais ce qu'il en est et si j'estime qu'il y en a besoin je l'ajouterai par la suite. Pour le fonctionnement c'est exactement ça psemel.

Mon problème ne concernait pas la programmation, mais le cablage. En y réfléchissant, je pense que je peux directement brancher le fil signal du capteur hall sur un pin digital de la carte sans risque. J'avais pas pércuté que c'était un capteur alimenté. L’électronique et moi ça fait 2. Mais vu que le capteur est alimenté en 5V par le contrôleur, il renvoit soit 0V soit 5V. Un signal carré 0 - 5V donc. Pas de risque de flamber l'arduino. Et comme il sera alimenté par le 5V du contrôleur, ils auront leur 0V en commun aussi.

Donc finalement, pas de protection nécessaire.
 
G

gégé62

Compagnon
Bonjour,
j'avais fait un petit topo qui peut te rendre service, à tout hasard

je me souviens qu'il faut une resistance de tirage vers le +5V de 10 k, ou définir la pin en PULLUP.
 
T

tronix

Compagnon
Bonjour,
une résistance en série directement sur la carte Arduino est quand même conseillée, car il peut y avoir une erreur de branchement ou plus simplement des pics parasites récupérés par couplage sur les fils. Si on veut aller plus loin, on rajoute des diodes de clamp et un condensateur pour la HF. Il faut cependant vérifier que les niveaux de tension à l'entrée du processeur respectent bien les niveaux logiques avec la marge suffisante, en prenant en compte tout les composants en jeu.
 
P

psemel

Ouvrier
bonsoir,
ton calcul est bon. le capteur sur un pin numérique et pas analogique
tu peut mettre un afficheur lcd pour afficher la vitesse et la tension de la batterie.
 

Sujets similaires

Jacques T.
Réponses
133
Affichages
4 801
Père-Pendiculaire
Père-Pendiculaire
S
Réponses
10
Affichages
607
stefan531
S
wika58
Général Arduino Uno R4
Réponses
17
Affichages
15 256
furynick
furynick
2
Réponses
27
Affichages
1 233
jean-jacques
J
wika58
Réponses
261
Affichages
18 398
midodiy
midodiy
elias erwan
Réponses
16
Affichages
1 155
hazet
H
Plopiche
Réponses
112
Affichages
7 258
Plopiche
Plopiche
wika58
Réponses
122
Affichages
9 478
Philippe85
Philippe85
alex vintage parts
Réponses
15
Affichages
814
alex vintage parts
alex vintage parts
Haut