Bonjour,
Je suis en tain de me faire un petit GPS de rando et j'aimerais afficher la quantité de satellite reçus sur l'écran, sous forme d'une icône comme sur les téléphones portables :
J'ai réussi à coder cette affichage sans problème et lorsque le nombre de satellite change, mon icône suit sans soucis.
Mais ce code me prend une petite quarantaine de lignes et j’aimerais le diminuer (je travaille avec un Pro Mini 5V 16MHz) pour être sur d'avoir assez d'espace en mémoire pour finir le projet.
Donc lorsqu'il le GPS reçoit des satellites, il affiche l'antenne (qui fait aussi office de première barre = 1 ou 2 satellites reçus) et les autres barres en fonction du nombre de satellites, sachant que mon récepteur GPS peut recevoir 12 satellites en même temps, j'ai opté pour 6 barres : 1 barre = 2 satellites reçus.
S'il ne reçoit pas les 12 satellites, les barres disparaissent mais un point reste au "pied" de la barre pour avoir un aperçu rapide de la proportion de réception.
Lorsque je n'ai aucune réception, une croix s'affiche et les points bas de chaque barres aussi.
Pour minimiser le code j'ai essayé de faire deux boucles for.
La première :
for (int g = 0; g <= NbSat; g = g + 2) {
display.drawPixel(colonne + g, 6, BLACK);
}
Cette boucle me permet déjà d'afficher les points bas de chaque barres, c'est déjà pas mal
Mais le plus compliqué reste à venir. Afficher le reste des barres (hauteur des barres proportionnelle à leurs position > première barre = 1 pixel de haut, deuxième barre = 2 pixels de haut, ...).
J'ai donc essayé d'implanter une deuxième boucle for dans la première mais sans succès.
Auriez vous une idée du calcul à faire ?
Cette méthode, si elle peut marcher, me permettrait d'économiser un paquet de ligne de code....
Merci d'avoir lu ce pâté !
Et merci de votre future aide...