Pages: 1 [2]   Go Down
Author Topic: tachymètre sur ELCD série  (Read 1562 times)
0 Members and 1 Guest are viewing this topic.
Lausanne
Offline Offline
Full Member
***
Karma: 1
Posts: 116
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Un delay ? avant la boucle mais le reste de ma boucle ne doit pas être impactée car il n 'y a pas que le tachymètre qui tourne.
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Avec millis()
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Lausanne
Offline Offline
Full Member
***
Karma: 1
Posts: 116
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ah oui, je vais essayé, as tu un exemple ?
Logged

Forum Moderator
Geneva
Offline Offline
Faraday Member
*****
Karma: 30
Posts: 3228
Yoplait... le pt'it suisse
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ici :

http://arduino.cc/en/Tutorial/BlinkWithoutDelay

Dans le 1er if, tu remplaces le traitement de l'état de la led par l'affichage  de ton écran.
Logged

MacBook intel core 2 duo  os X snow Leopard 10.6<br/> eMac PPc G4  os X Leopard 10.5<br/>powerbook G4 os X Leopard 10.5
imac PPC G3 os X Pa

Lausanne
Offline Offline
Full Member
***
Karma: 1
Posts: 116
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bonjour à tous, voilà j'utilise ce code pour afficher la vitesse de rotation rpm (0 à 99000 tr.min) d'un moteur (capteur magnétique), la valeur est correcte est stable en liaison série sur le monitor, mais lorsque je souhaite afficher la valeur sur mon afficheur, toous les chiffres défilent trop vite, rien n'est stable.

Comment faire, merci pour votre aide.

Code:

// Tachymetre
if (rpmcount >= 40 ){
  rpm = 60*1000/(millis() - timeold)*rpmcount;
  timeold = millis();
  rpmcount = 0;
  rpm1 = (String(rpm));
  ELCD_Cursor_Position(5, 1);
  ELCD_put_chr(rpm1.charAt(0));
  ELCD_Cursor_Position(6, 1);
  ELCD_put_chr(rpm1.charAt(1));
  ELCD_Cursor_Position(7, 1);
  ELCD_put_chr(rpm1.charAt(2));
  ELCD_Cursor_Position(8, 1);
  ELCD_put_chr(rpm1.charAt(3));
  ELCD_Cursor_Position(9, 1);
  ELCD_put_chr(rpm1.charAt(4));
}


Logged

France
Offline Offline
Faraday Member
**
Karma: 36
Posts: 3442
There is an Arduino for that
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mike74 on te l'a déjà dit sur l'autre topic que tu avais ouvert si tu ne mets que des bouts de code on ne peut rien comprendre à ton problème.
On est dans l'impossibilité de juger de l'enchainement des tâches dans ton code et on ne peut donc pas savoir pourquoi un morceau de code ne s'exécute pas ou pourquoi un morceau de code s'exécute trop rapidement ou retourne des valeurs erronées.

Sorti de son contexte le code que tu nous montres est correct, mais s'il est appelé 100 fois par seconde les chiffres vont se brouiller. Si ce morceau de code est appelé de manière asynchrone par rapport à la mise à jour de la variable rpmcount les chiffres vont changer en permanence. Tu vois cela appelle déjà beaucoup de questions.

Donc si tu veux de réponses utiles il va falloir en dire un peu plus.
Logged

Lausanne
Offline Offline
Full Member
***
Karma: 1
Posts: 116
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oui désolé, je sais , je me répète mais j'arrive pas à trouver de solution pour cette partie, tout le code est en ouverture de ce topic.

merci pour votre aide
Logged

Pages: 1 [2]   Go Up
Jump to: