0
Offline
Newbie
Karma: 0
Posts: 26
Arduino rocks
|
 |
« on: December 11, 2011, 03:15:30 pm » |
Salut à tous!
Voila, j'utilise comme beaucoup je pense, la LiquidCrystal.h
J'ai fait un affichage d'une horloge comme ça : 00:00
Maintenant, je voudrais savoir si on peut faire clignoter les : ?
Merci d'avance!
|
|
|
|
|
Logged
|
|
|
|
|
Aix en Provence
Offline
Full Member
Karma: 0
Posts: 229
Arduino rocks
|
 |
« Reply #1 on: December 11, 2011, 04:43:49 pm » |
Je ne sais pas s'il existe une fonction directement implantée dans la puce de l'afficheur qui fait clignoter un caractère, pas à ma connaissance. Mais il suffit de faire une boucle, avec un indicateur (par exemple du type booléen) qui s'il est "vrai" affiche ":" puis tu changes l'indicateur en "faux" et lors du passage suivant dans la boucle, lorsque l'indicateur est "faux" tu fais afficher " " et tu changes l'indicateur en "vrai" etc, etc.. Je ne sais pas si j'ai été très clair. Sinon je peux soit te dessiner un petit algorythme, soit t'envoyer un bout code.
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4313
Arduino Hacker
|
 |
« Reply #2 on: December 12, 2011, 05:54:50 am » |
Bonjour, Il existe une fonction blink() mais elle n'est valable que pour le curseur et non pour un caractère. Pour faire clignoter un caractère il faut faire soit même un fonction blink() Exemple : void blink() { static uint8_t state = 0; // état du char - static -> initialisation une seul fois lors du 1er appel de la fonction lcd.setcursor(3,0); // on sélectionne le char (exemple: ici colonne 3, ligne 0) lcd.write(state ? ':' : ' '); // on affiche le char state = !state; // on inverse l'état du char }
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #3 on: December 12, 2011, 06:38:21 am » |
Il faut rajouter un temporisateur dans ton blink.
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4313
Arduino Hacker
|
 |
« Reply #4 on: December 12, 2011, 12:10:11 pm » |
Il faut rajouter un temporisateur dans ton blink.
of course  mais bon rajouter un delay(xxx) devrait être à la porté de n'importe qui 
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #5 on: December 12, 2011, 12:16:52 pm » |
Justement pas un delay(), mais je pensais à un truc avec millis() dont le paramètre serait passé en faisant blinkPoint(1000).... 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4313
Arduino Hacker
|
 |
« Reply #6 on: December 12, 2011, 12:43:10 pm » |
un truc comme ça  void blinkPoint(unsigned long interval) { static unsigned char state = 0; static unsigned long prevMillis = 0; unsigned long curMillis = millis(); if(curMillis - prevMillis > interval) { prevMillis = curMillis; lcd.setcursor(3,0); lcd.write(state ? ':' : ' '); state = !state; } }
|
|
|
|
|
Logged
|
|
|
|
|
Forum Moderator
Geneva
Online
Faraday Member
Karma: 22
Posts: 2878
Yoplait... le pt'it suisse
|
 |
« Reply #7 on: December 12, 2011, 02:43:03 pm » |
Tu sais que j'tadore 
|
|
|
|
|
Logged
|
MacBook intel core 2 duo os X snow Leopard 10.6 eMac PPc G4 os X Leopard 10.5 powerbook G4 os X Leopard 10.5 imac PPC G3 os X Panther 10.3.9 Arduino Diecimila Arduino Mega Arduino Standalone Arduino 1307.04 
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 26
Arduino rocks
|
 |
« Reply #8 on: December 13, 2011, 11:06:54 am » |
Salut!
Merci à vous!
Je vais essayer ça de suite!
Question bête, mais il clignote à quelle vitesse?
Car pour moi, l'idéal serait 1 clignotement à la seconde!
Bon je vais déja essayer ça!
|
|
|
|
|
Logged
|
|
|
|
|
0
Offline
Newbie
Karma: 0
Posts: 26
Arduino rocks
|
 |
« Reply #9 on: December 13, 2011, 11:14:52 am » |
Ah ! J'avais pas vu un truc! C'est que je peux pas choisir la position du : Car il est déjà intégrer dans un VOID : void printHMS () { if (hour() < 10){lcd.print("0");} lcd.print(hour()); lcd.print(":"); if (minute() < 10){lcd.print("0");} lcd.print(minute()); } qui en fonction des demande, se position à différent endroit du LCD!
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4313
Arduino Hacker
|
 |
« Reply #10 on: December 13, 2011, 02:20:42 pm » |
C'est que je peux pas choisir la position du : Car il est déjà intégrer dans un VOID :
qui en fonction des demande, se position à différent endroit du LCD!
No problem  // Retourne un char (: ou espace) suivant un delay de 1s char blinkPoint1s() { static unsigned char state = 0; static unsigned long prevMillis = 0; unsigned long curMillis = millis(); if(curMillis - prevMillis > 1000) { prevMillis = curMillis; state = !state; } return state ? ':' : ' '; } Appel : void printHMS () { if (hour() < 10) lcd.print("0"); lcd.print(hour()); lcd.print(blinkPoint1s()); if (minute() < 10) lcd.print("0"); lcd.print(minute()); }
|
|
|
|
|
Logged
|
|
|
|
|
Aix en Provence
Offline
Full Member
Karma: 0
Posts: 229
Arduino rocks
|
 |
« Reply #11 on: December 13, 2011, 04:02:46 pm » |
Génial ! Merci beaucoup skywodd, c'est bien plus propre que ce que j'avais fait avec delay et un flag. Je viens d'apprendre à utiliser la fonction millis qui est très interessante !
|
|
|
|
|
Logged
|
|
|
|
|
France
Offline
Faraday Member
Karma: 36
Posts: 4313
Arduino Hacker
|
 |
« Reply #12 on: December 14, 2011, 12:48:03 pm » |
Génial ! Merci beaucoup skywodd, c'est bien plus propre que ce que j'avais fait avec delay et un flag. Je viens d'apprendre à utiliser la fonction millis qui est très interessante !
Ya pas de quoi  Dans le même genre il y a micros(), une petite fonction bien pratique dans certain cas. http://www.arduino.cc/en/Reference/Micros
|
|
|
|
|
Logged
|
|
|
|
|
|