Indicateur de rapport engagé
Page 1 sur 1
Indicateur de rapport engagé
D'après le site ci après, il y a moyen de rajouter un indicateur de rapport engagé sur le SRAD !!
http://gsxr49.free.fr/technique.htm
El là d'autres infos fortes intéressantes :
https://www.sonelec-musique.com/electronique_realisations_indic_rapport_vitesse_002.html
C'est parti pour l'aventure !!
J'ai passé des heures à étudier ca...
puis j'ai vérifier sur la moto, qu'il y avait bien une tension différentes pour chaque rapport engagé
puis commandé un programmeur pickit3 (12 euros sur Ebay) puis les composants électroniques sur conrad.fr
prochaine étape : voir si cela fonctionne "en volant", avant de faire l'installation définitive et propre
http://gsxr49.free.fr/technique.htm
El là d'autres infos fortes intéressantes :
https://www.sonelec-musique.com/electronique_realisations_indic_rapport_vitesse_002.html
C'est parti pour l'aventure !!
J'ai passé des heures à étudier ca...
puis j'ai vérifier sur la moto, qu'il y avait bien une tension différentes pour chaque rapport engagé
puis commandé un programmeur pickit3 (12 euros sur Ebay) puis les composants électroniques sur conrad.fr
prochaine étape : voir si cela fonctionne "en volant", avant de faire l'installation définitive et propre
Ca marche !!!
Avec la solution PIC, je m'en sortais pas. Malgré les heures passées, je n'ai pas réussi à aboutir, même sur la maquette, malgré les forums, et les heures d'essais. Je ne suis pas assez électronicien pour comprendre ce qui se passé
Après j'ai cedé à la facilité, ecouté les geeks à mon boulot et j'ai explosé le budget, je me suis orienté vers la solution arduino nano (5€..)
Il y a un forum clair et net qui explique comment faire :
http://www.motopiste.net/t80762-tuto-afficheur-rapport-engag
Au bout de 2h, l'essai sur maquette marche nickel OUFF !!!!
Sur la moto, c'était une autre paire de manche. Au premier branchement ca n'a pas fonctionné, tension mesurée trop forte. Et le branchement direct de l'arduino biaise la tension issue du capteur de boite.
La solution a été de mettre une pont diviseur . avec la premier resistance à 2kohms et seconde à 4kohms.
Les réglages ensuite se sont fait à tâtons, mais ca a abouti. Tout au moins sur moteur non démarré. Dès que c'est roulable dehors, je teste en ultime réel... Tout n'est pas gagné car la tension risque d'être plus forte.... mais je suis confiant
Si cela interesse qqun les seuils de tension rentrées
Vit 1 : 1,00
N : 3,1
2 : 1,40
3 : 1,90
4 : 2,30
5 : 2,70
6 : 2,90
Après j'ai cedé à la facilité, ecouté les geeks à mon boulot et j'ai explosé le budget, je me suis orienté vers la solution arduino nano (5€..)
Il y a un forum clair et net qui explique comment faire :
http://www.motopiste.net/t80762-tuto-afficheur-rapport-engag
Au bout de 2h, l'essai sur maquette marche nickel OUFF !!!!
Sur la moto, c'était une autre paire de manche. Au premier branchement ca n'a pas fonctionné, tension mesurée trop forte. Et le branchement direct de l'arduino biaise la tension issue du capteur de boite.
La solution a été de mettre une pont diviseur . avec la premier resistance à 2kohms et seconde à 4kohms.
Les réglages ensuite se sont fait à tâtons, mais ca a abouti. Tout au moins sur moteur non démarré. Dès que c'est roulable dehors, je teste en ultime réel... Tout n'est pas gagné car la tension risque d'être plus forte.... mais je suis confiant
Si cela interesse qqun les seuils de tension rentrées
Vit 1 : 1,00
N : 3,1
2 : 1,40
3 : 1,90
4 : 2,30
5 : 2,70
6 : 2,90
Dernière édition par Hvaonly le Mar 4 Déc - 23:29, édité 2 fois
Re: Indicateur de rapport engagé
Oui c'est fait à l'arrache, avec un boitier d'un vieux moteur lego ..
Re: Indicateur de rapport engagé
Pour info, je n'ai pas choisi d'alimenter l'arduino directement avec le 12 v de la batterie, trop peur de mettre le feu
>>>>>>>>>>>>>>>> D'ailleurs si vous foutez le feu à votre bécane, ou que vous petez votre CDI ou que cela ne fonctionne pas : je ne suis pas responsable <<<<<<<<<<<<<<<<<<<<<<
Alors j'ai acheté un convertisseur 12v 5V USB. Ainsi j'alimente l'arduino
J'ai acheté ca :https://www.ebay.fr/itm/12V-24V-double-moto-Chargeur-USB-avec-Accessoires-de-montage-synthetique/253993956032?hash=item3b233832c0:g:t1kAAOSwEfBbYqnq:rk:490
Pour les plus pointus, j'ai mis un condensateur 100nF entre les deux fils qui aménent la tension mesurée sur l'arduino. Ainsi qu'une résistance de 1kohm en série sur le fil d'arivée. C'était des restes de mon étude avec la solution PIC.
Encore autre détail, je n'ai pas mis une resistance uniquement sur la cathode commune. idem que précedemment, c'était comme ca que j'avais concu avec le PIC. Et pour moi c'est indispensable si on veut garder une luminosité constante entre 1 segment et 6 segments allumés.
Pour info, j'ai mis l'arduino dans un vieux boitier de transfo. J'ai du bien le modifier à coup de fer à souder.
Entre l'arduino et l'afficheur 7 segments (via les resistances), j'ai mis une nappe.
J'ai tout entouré les ensemble avec du scotch d'électricien.
Le +12v, je l'ai pris dans la boite à fusible pret de la fourche. J'ai enquillé un fil dénudé avec une des pattes du fusible tail. Ainsi j'alimente le convertisseur 12v USB uniquement lorsque le contact est mis. On verra a fond de 6 six si cela tient
J'ai repris aussi une masse propre pour l'arduino avec une cosse mise sur le cadre juste sous l'avant du réservoir d'essence
>>>>>>>>>>>>>>>> D'ailleurs si vous foutez le feu à votre bécane, ou que vous petez votre CDI ou que cela ne fonctionne pas : je ne suis pas responsable <<<<<<<<<<<<<<<<<<<<<<
Alors j'ai acheté un convertisseur 12v 5V USB. Ainsi j'alimente l'arduino
J'ai acheté ca :https://www.ebay.fr/itm/12V-24V-double-moto-Chargeur-USB-avec-Accessoires-de-montage-synthetique/253993956032?hash=item3b233832c0:g:t1kAAOSwEfBbYqnq:rk:490
Pour les plus pointus, j'ai mis un condensateur 100nF entre les deux fils qui aménent la tension mesurée sur l'arduino. Ainsi qu'une résistance de 1kohm en série sur le fil d'arivée. C'était des restes de mon étude avec la solution PIC.
Encore autre détail, je n'ai pas mis une resistance uniquement sur la cathode commune. idem que précedemment, c'était comme ca que j'avais concu avec le PIC. Et pour moi c'est indispensable si on veut garder une luminosité constante entre 1 segment et 6 segments allumés.
Pour info, j'ai mis l'arduino dans un vieux boitier de transfo. J'ai du bien le modifier à coup de fer à souder.
Entre l'arduino et l'afficheur 7 segments (via les resistances), j'ai mis une nappe.
J'ai tout entouré les ensemble avec du scotch d'électricien.
Le +12v, je l'ai pris dans la boite à fusible pret de la fourche. J'ai enquillé un fil dénudé avec une des pattes du fusible tail. Ainsi j'alimente le convertisseur 12v USB uniquement lorsque le contact est mis. On verra a fond de 6 six si cela tient
J'ai repris aussi une masse propre pour l'arduino avec une cosse mise sur le cadre juste sous l'avant du réservoir d'essence
Dernière édition par Hvaonly le Mar 4 Déc - 23:32, édité 2 fois
Re: Indicateur de rapport engagé
Pour les copie colleur les plus acharnés ci après mon programme qui fonctionne (moteur arrété )
Pour info, j'ai mis qq caractéres en début de programme pour savoir quand l'arduino redémarre
//copiez a partir d'ici
int adcRead1 = 0;
int adcRead2 = 0;
int adcRead3 = 0;
int adcRead4 = 0;
int adcRead5 = 0;
int adcRead6 = 0;
int adcRead7 = 0;
int adcRead8 = 0;
float mesure = 0;
float temp = 0;
void setup(){ //configuration des pins en "sorties" et de la mesure en "entree"
DDRD=0b11111111;
DDRB=0b11111111;
pinMode(A0, INPUT); // pin 19 ?? modifier le "A0" en pin de votre choix
Serial.begin(9600);
delay(500);
CINQ();
delay(500);
O();
delay(500);
P();
delay(500);
H();
delay(500);
UN();
delay(500);
E();
delay(500);
ESP();
delay(1000);
}
void loop() {
delay(30); //70
adcRead1 = analogRead(A0); //lire la tension sur la broche A0, // modifier le "A0" en pin de votre choix
delay(10);
temp = (float)(adcRead1+adcRead2+adcRead3+adcRead4+adcRead5+adcRead6+adcRead7+adcRead8)/8; //utilise pour faire une moyenne glissante sur 8 mesures (permet de limiter les variations intempestives)
mesure = 5*temp/1023;
adcRead8=adcRead7;
adcRead7=adcRead6;
adcRead6=adcRead5;
adcRead5=adcRead4;
adcRead4=adcRead3;
adcRead3=adcRead2;
adcRead2=adcRead1;
Serial.println(mesure); // afficher sur le pC la valeur mesuree
//PORTD=0b00100000; // si aucune tension recueillie, on affiche le "point"
//PORTB=0;
ESP();
if(mesure>1.00){ // 1.3modifier les valeurs numeriques en accord avec celles mesurees sur votre moto IMPORTANT DE LAISSER DANS L ORDRE CROISSANT
UN();
}
if(mesure>1.40){
DEUX();
}
if(mesure>1.90){
TROIS();
}
if(mesure>2.3){
QUATRE();
}
if(mesure>2.7){
CINQ();
}
if(mesure>2.90){
SIX();
}
if(mesure>3.1){
O();
}
}
void N(){
PORTB = 0b00000000; ///modifier ici les valeurs des ports B et D en accord avec votre tableau precedemment cree cf post sur motopiste
PORTD = 0b01010100; // IL EST IMPORTANT DE LAISSER LES "0b" et les ";" (0b indique que c'est du binaire et le ; est pour signaler la fin de la ligne)
}
void UN(){
PORTB = 0b00000010;
PORTD = 0b01000000;
}
void DEUX(){
PORTB = 0b00000011;
PORTD = 0b00011100;
}
void TROIS(){
PORTB = 0b00000011;
PORTD = 0b01011000;
}
void QUATRE(){
PORTB = 0b00000010;
PORTD = 0b11010000;
}
void CINQ(){
PORTB = 0b00000001;
PORTD = 0b11011000;
}
void SIX(){
PORTB = 0b00000001;
PORTD = 0b11011100;
}
void O(){
PORTB = 0b00000011;
PORTD = 0b11001100;
}
void P(){
PORTB = 0b00000011;
PORTD = 0b10010100;
}
void H(){
PORTB = 0b00000010;
PORTD = 0b11010100;
}
void E(){
PORTB = 0b00000001;
PORTD = 0b10011100;
}
void ESP(){
PORTB = 0b00000000;
PORTD = 0b00001000;
}
void L(){
PORTB = 0b00000000;
PORTD = 0b10001100;
}
void U(){
PORTB = 0b00000010;
PORTD = 0b11001100;
}
//copiez jusque là
Pour info, j'ai mis qq caractéres en début de programme pour savoir quand l'arduino redémarre
//copiez a partir d'ici
int adcRead1 = 0;
int adcRead2 = 0;
int adcRead3 = 0;
int adcRead4 = 0;
int adcRead5 = 0;
int adcRead6 = 0;
int adcRead7 = 0;
int adcRead8 = 0;
float mesure = 0;
float temp = 0;
void setup(){ //configuration des pins en "sorties" et de la mesure en "entree"
DDRD=0b11111111;
DDRB=0b11111111;
pinMode(A0, INPUT); // pin 19 ?? modifier le "A0" en pin de votre choix
Serial.begin(9600);
delay(500);
CINQ();
delay(500);
O();
delay(500);
P();
delay(500);
H();
delay(500);
UN();
delay(500);
E();
delay(500);
ESP();
delay(1000);
}
void loop() {
delay(30); //70
adcRead1 = analogRead(A0); //lire la tension sur la broche A0, // modifier le "A0" en pin de votre choix
delay(10);
temp = (float)(adcRead1+adcRead2+adcRead3+adcRead4+adcRead5+adcRead6+adcRead7+adcRead8)/8; //utilise pour faire une moyenne glissante sur 8 mesures (permet de limiter les variations intempestives)
mesure = 5*temp/1023;
adcRead8=adcRead7;
adcRead7=adcRead6;
adcRead6=adcRead5;
adcRead5=adcRead4;
adcRead4=adcRead3;
adcRead3=adcRead2;
adcRead2=adcRead1;
Serial.println(mesure); // afficher sur le pC la valeur mesuree
//PORTD=0b00100000; // si aucune tension recueillie, on affiche le "point"
//PORTB=0;
ESP();
if(mesure>1.00){ // 1.3modifier les valeurs numeriques en accord avec celles mesurees sur votre moto IMPORTANT DE LAISSER DANS L ORDRE CROISSANT
UN();
}
if(mesure>1.40){
DEUX();
}
if(mesure>1.90){
TROIS();
}
if(mesure>2.3){
QUATRE();
}
if(mesure>2.7){
CINQ();
}
if(mesure>2.90){
SIX();
}
if(mesure>3.1){
O();
}
}
void N(){
PORTB = 0b00000000; ///modifier ici les valeurs des ports B et D en accord avec votre tableau precedemment cree cf post sur motopiste
PORTD = 0b01010100; // IL EST IMPORTANT DE LAISSER LES "0b" et les ";" (0b indique que c'est du binaire et le ; est pour signaler la fin de la ligne)
}
void UN(){
PORTB = 0b00000010;
PORTD = 0b01000000;
}
void DEUX(){
PORTB = 0b00000011;
PORTD = 0b00011100;
}
void TROIS(){
PORTB = 0b00000011;
PORTD = 0b01011000;
}
void QUATRE(){
PORTB = 0b00000010;
PORTD = 0b11010000;
}
void CINQ(){
PORTB = 0b00000001;
PORTD = 0b11011000;
}
void SIX(){
PORTB = 0b00000001;
PORTD = 0b11011100;
}
void O(){
PORTB = 0b00000011;
PORTD = 0b11001100;
}
void P(){
PORTB = 0b00000011;
PORTD = 0b10010100;
}
void H(){
PORTB = 0b00000010;
PORTD = 0b11010100;
}
void E(){
PORTB = 0b00000001;
PORTD = 0b10011100;
}
void ESP(){
PORTB = 0b00000000;
PORTD = 0b00001000;
}
void L(){
PORTB = 0b00000000;
PORTD = 0b10001100;
}
void U(){
PORTB = 0b00000010;
PORTD = 0b11001100;
}
//copiez jusque là
Dernière édition par Hvaonly le Mer 5 Déc - 18:43, édité 2 fois
Re: Indicateur de rapport engagé
Juste une astuce. Je me suis fait un petit programme test pour savoir la tension lue par l'arduino.
En effet, quand j'alimente l'arduino avec le pc (pour surveiller la tension lue via le moniteur série), les valeurs sont un peu biaisées.
Dans ce programme test, c'est bizarre car a chaque fois, la tension monte tout doucement entre chaque rapport (contrairement au programme précèdent (où il y a les rapport affichés) qui est presque instantané.)
Si au moment du roulage avec des vitesses folles, je vois que le programme précédent ne fonctionne pas, je remettrais celui ci, pour voir les valeurs mesurées par l'arduino dans ces nouvelles conditions
le programme fonctionne ainsi :
- message d'initialisation (et test des segments
(pour une tension exemple de 2,43 Volts)
- H
- 2
- .
- 4
- .
- 3
- rebellote
//copiez a partir d'ici
int adcRead1 = 0;
int adcRead2 = 0;
int adcRead3 = 0;
int adcRead4 = 0;
int adcRead5 = 0;
int adcRead6 = 0;
int adcRead7 = 0;
int adcRead8 = 0;
int digit1 = 0;
int digit2 = 0;
int digit3 = 0;
float mesure = 0;
float temp = 0;
void setup(){ //configuration des pins en "sorties" et de la mesure en "entree"
DDRD=0b11111111;
DDRB=0b11111111;
pinMode(A0, INPUT); // pin 19 ?? modifier le "A0" en pin de votre choix
Serial.begin(9600);
delay(500);
CINQ();
delay(500);
O();
delay(500);
P();
delay(500);
H();
delay(500);
UN();
delay(500);
E();
delay(500);
ESP();
delay(1000);
}
void loop() {
delay(70); //70
adcRead1 = analogRead(A0); //lire la tension sur la broche A0, // modifier le "A0" en pin de votre choix
delay(10);
temp = (float)(adcRead1+adcRead2+adcRead3+adcRead4+adcRead5+adcRead6+adcRead7+adcRead8)/8; //utilise pour faire une moyenne glissante sur 8 mesures (permet de limiter les variations intempestives)
mesure = 5*temp/1023; // http://0.9461*
adcRead8=adcRead7;
adcRead7=adcRead6;
adcRead6=adcRead5;
adcRead5=adcRead4;
adcRead4=adcRead3;
adcRead3=adcRead2;
adcRead2=adcRead1;
Serial.println("H");
Serial.println(mesure); // afficher sur le pC la valeur mesuree
//PORTD=0b00100000; // si aucune tension recueillie, on affiche le "point"
//PORTB=0;
H();
delay(500);
// premier chiffre
digit1 = int (mesure);
Serial.println(digit1);
if (digit1==1){
UN();
}
if (digit1==2){
DEUX();
}
if (digit1==3){
TROIS();
}
if (digit1==4){
QUATRE();
}
if (digit1==5){
CINQ();
}
if (digit1==6){
SIX();
}
if (digit1==7){
SEPT();
}
if (digit1=={
HUIT();
}
if (digit1==9){
NEUF();
}
if (digit1==0){
O();
}
delay(500);
///////////////////////////////////////////////////
PT();
delay(500);
// deuxieme chiffre
digit2 = int((mesure - int(mesure))*10);
Serial.println(digit2);
if (digit2 == 1) {
UN();
}
if (digit2 == 2) {
DEUX();
}
if (digit2 == 3) {
TROIS();
}
if (digit2 == 4) {
QUATRE();
}
if (digit2 == 5) {
CINQ();
}
if (digit2 == 6) {
SIX();
}
if (digit2 == 7) {
SEPT();
}
if (digit2 == {
HUIT();
}
if (digit2 == 9) {
NEUF();
}
if (digit2 == 0) {
O();
}
///////////////////////////////////////////////////
delay(500);
///////////////////////////////////////////////////
PT();
delay(500);
// 3e chiffre
digit3 = int(mesure*100) - (digit1*100) - (digit2*10);
//digit3 = int(mesure*100) - (int((mesure-int(mesure))*10)*10) - (int(mesure)*100);
Serial.println(digit3);
if (digit3 == 1) {
UN();
}
if (digit3 == 2) {
DEUX();
}
if (digit3 == 3) {
TROIS();
}
if (digit3 == 4) {
QUATRE();
}
if (digit3 == 5) {
CINQ();
}
if (digit3 == 6) {
SIX();
}
if (digit3 == 7) {
SEPT();
}
if (digit3 == {
HUIT();
}
if (digit3 == 9) {
NEUF();
}
if (digit3 == 0) {
O();
}///////////////////////////////////////////////////
delay(500);
}
void N(){
PORTB = 0b00000000; ///modifier ici les valeurs des ports B et D en accord avec votre tableau precedemment cree cf post sur motopiste
PORTD = 0b01010100; // IL EST IMPORTANT DE LAISSER LES "0b" et les ";" (0b indique que c'est du binaire et le ; est pour signaler la fin de la ligne)
}
void UN(){
PORTB = 0b00000010;
PORTD = 0b01000000;
}
void DEUX(){
PORTB = 0b00000011;
PORTD = 0b00011100;
}
void TROIS(){
PORTB = 0b00000011;
PORTD = 0b01011000;
}
void QUATRE(){
PORTB = 0b00000010;
PORTD = 0b11010000;
}
void CINQ(){
PORTB = 0b00000001;
PORTD = 0b11011000;
}
void SIX(){
PORTB = 0b00000001;
PORTD = 0b11011100;
}
void SEPT(){
PORTB = 0b00000011;
PORTD = 0b01000000;
}
void HUIT(){
PORTB = 0b00000011;
PORTD = 0b11011100;
}
void NEUF(){
PORTB = 0b00000011;
PORTD = 0b11011000;
}
void O(){
PORTB = 0b00000011;
PORTD = 0b11001100;
}
void P(){
PORTB = 0b00000011;
PORTD = 0b10010100;
}
void H(){
PORTB = 0b00000010;
PORTD = 0b11010100;
}
void E(){
PORTB = 0b00000001;
PORTD = 0b10011100;
}
void ESP(){
PORTB = 0b00000000;
PORTD = 0b00001000;
}
void L(){
PORTB = 0b00000000;
PORTD = 0b10001100;
}
void U(){
PORTB = 0b00000010;
PORTD = 0b11001100;
}
void PT(){
PORTB = 0b00000100;
PORTD = 0b00000000;
}
//copiez jusque là
En effet, quand j'alimente l'arduino avec le pc (pour surveiller la tension lue via le moniteur série), les valeurs sont un peu biaisées.
Dans ce programme test, c'est bizarre car a chaque fois, la tension monte tout doucement entre chaque rapport (contrairement au programme précèdent (où il y a les rapport affichés) qui est presque instantané.)
Si au moment du roulage avec des vitesses folles, je vois que le programme précédent ne fonctionne pas, je remettrais celui ci, pour voir les valeurs mesurées par l'arduino dans ces nouvelles conditions
le programme fonctionne ainsi :
- message d'initialisation (et test des segments
(pour une tension exemple de 2,43 Volts)
- H
- 2
- .
- 4
- .
- 3
- rebellote
//copiez a partir d'ici
int adcRead1 = 0;
int adcRead2 = 0;
int adcRead3 = 0;
int adcRead4 = 0;
int adcRead5 = 0;
int adcRead6 = 0;
int adcRead7 = 0;
int adcRead8 = 0;
int digit1 = 0;
int digit2 = 0;
int digit3 = 0;
float mesure = 0;
float temp = 0;
void setup(){ //configuration des pins en "sorties" et de la mesure en "entree"
DDRD=0b11111111;
DDRB=0b11111111;
pinMode(A0, INPUT); // pin 19 ?? modifier le "A0" en pin de votre choix
Serial.begin(9600);
delay(500);
CINQ();
delay(500);
O();
delay(500);
P();
delay(500);
H();
delay(500);
UN();
delay(500);
E();
delay(500);
ESP();
delay(1000);
}
void loop() {
delay(70); //70
adcRead1 = analogRead(A0); //lire la tension sur la broche A0, // modifier le "A0" en pin de votre choix
delay(10);
temp = (float)(adcRead1+adcRead2+adcRead3+adcRead4+adcRead5+adcRead6+adcRead7+adcRead8)/8; //utilise pour faire une moyenne glissante sur 8 mesures (permet de limiter les variations intempestives)
mesure = 5*temp/1023; // http://0.9461*
adcRead8=adcRead7;
adcRead7=adcRead6;
adcRead6=adcRead5;
adcRead5=adcRead4;
adcRead4=adcRead3;
adcRead3=adcRead2;
adcRead2=adcRead1;
Serial.println("H");
Serial.println(mesure); // afficher sur le pC la valeur mesuree
//PORTD=0b00100000; // si aucune tension recueillie, on affiche le "point"
//PORTB=0;
H();
delay(500);
// premier chiffre
digit1 = int (mesure);
Serial.println(digit1);
if (digit1==1){
UN();
}
if (digit1==2){
DEUX();
}
if (digit1==3){
TROIS();
}
if (digit1==4){
QUATRE();
}
if (digit1==5){
CINQ();
}
if (digit1==6){
SIX();
}
if (digit1==7){
SEPT();
}
if (digit1=={
HUIT();
}
if (digit1==9){
NEUF();
}
if (digit1==0){
O();
}
delay(500);
///////////////////////////////////////////////////
PT();
delay(500);
// deuxieme chiffre
digit2 = int((mesure - int(mesure))*10);
Serial.println(digit2);
if (digit2 == 1) {
UN();
}
if (digit2 == 2) {
DEUX();
}
if (digit2 == 3) {
TROIS();
}
if (digit2 == 4) {
QUATRE();
}
if (digit2 == 5) {
CINQ();
}
if (digit2 == 6) {
SIX();
}
if (digit2 == 7) {
SEPT();
}
if (digit2 == {
HUIT();
}
if (digit2 == 9) {
NEUF();
}
if (digit2 == 0) {
O();
}
///////////////////////////////////////////////////
delay(500);
///////////////////////////////////////////////////
PT();
delay(500);
// 3e chiffre
digit3 = int(mesure*100) - (digit1*100) - (digit2*10);
//digit3 = int(mesure*100) - (int((mesure-int(mesure))*10)*10) - (int(mesure)*100);
Serial.println(digit3);
if (digit3 == 1) {
UN();
}
if (digit3 == 2) {
DEUX();
}
if (digit3 == 3) {
TROIS();
}
if (digit3 == 4) {
QUATRE();
}
if (digit3 == 5) {
CINQ();
}
if (digit3 == 6) {
SIX();
}
if (digit3 == 7) {
SEPT();
}
if (digit3 == {
HUIT();
}
if (digit3 == 9) {
NEUF();
}
if (digit3 == 0) {
O();
}///////////////////////////////////////////////////
delay(500);
}
void N(){
PORTB = 0b00000000; ///modifier ici les valeurs des ports B et D en accord avec votre tableau precedemment cree cf post sur motopiste
PORTD = 0b01010100; // IL EST IMPORTANT DE LAISSER LES "0b" et les ";" (0b indique que c'est du binaire et le ; est pour signaler la fin de la ligne)
}
void UN(){
PORTB = 0b00000010;
PORTD = 0b01000000;
}
void DEUX(){
PORTB = 0b00000011;
PORTD = 0b00011100;
}
void TROIS(){
PORTB = 0b00000011;
PORTD = 0b01011000;
}
void QUATRE(){
PORTB = 0b00000010;
PORTD = 0b11010000;
}
void CINQ(){
PORTB = 0b00000001;
PORTD = 0b11011000;
}
void SIX(){
PORTB = 0b00000001;
PORTD = 0b11011100;
}
void SEPT(){
PORTB = 0b00000011;
PORTD = 0b01000000;
}
void HUIT(){
PORTB = 0b00000011;
PORTD = 0b11011100;
}
void NEUF(){
PORTB = 0b00000011;
PORTD = 0b11011000;
}
void O(){
PORTB = 0b00000011;
PORTD = 0b11001100;
}
void P(){
PORTB = 0b00000011;
PORTD = 0b10010100;
}
void H(){
PORTB = 0b00000010;
PORTD = 0b11010100;
}
void E(){
PORTB = 0b00000001;
PORTD = 0b10011100;
}
void ESP(){
PORTB = 0b00000000;
PORTD = 0b00001000;
}
void L(){
PORTB = 0b00000000;
PORTD = 0b10001100;
}
void U(){
PORTB = 0b00000010;
PORTD = 0b11001100;
}
void PT(){
PORTB = 0b00000100;
PORTD = 0b00000000;
}
//copiez jusque là
Dernière édition par Hvaonly le Mar 4 Déc - 23:27, édité 1 fois
Re: Indicateur de rapport engagé
J'ai eu aussi une galère un moment . Sur le deuxième rapport, même tension qu'au point mort ????
J'ai demonté la capteur, bien nettoyé les pins et c'est reparti.
peut etre qu'il y a avait un peu de limalle, ou bien lors de mes premiers test j'avais fait des arcs électriques qui ont marqués les pins de contact...
J'ai demonté la capteur, bien nettoyé les pins et c'est reparti.
peut etre qu'il y a avait un peu de limalle, ou bien lors de mes premiers test j'avais fait des arcs électriques qui ont marqués les pins de contact...
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|