Aide Besoin de conseils pour programation Arduino

M

Mandrak

Apprenti
Re

Bon j'en est trouvé deux qui me conviendrait,
le 4.3"
Avec la librairie RA8875, il est indiqué "It supports 8080 6800 8-bit,16-bit parallel,3-wire,4-wire,I2C serial spi interface."
Dans le Datasheet - TFT LCD Display,Controller,Connector
I2C Interface
J9,J12,J13,J15 Open and
J10,J11,J14,J16 Short,
R1=0 OHM, R2=10K OHM, R3=10K OHM
Ce sont les jumps a ouvrir et fermé pour une liaison en I2c par contre pour R1, R2 et R3 je ne vois pas.
Il y a il d'autres connections a relier a l'Arduino, je suppose que oui mais lesquels?

Le 7"
Celui ci me plait bien pas besoin de loupe pour voir ce qui est écrit a l’écran, il a la même interface que le 4.3" et utilise la même librairie, et est vendu avec un shield ce qui me fait dire qu'il va utilisé un certain nombre de pin sur la Méga.

A ce sujet j'aurais une question, j'ai lu sur la toile (je ne retrouve plus le lien) que l'on pouvait faire communiqué des Arduino entre eux, c'est apparemment ce que jpbbricole fait
Tu vois, c'est surtout pour le fun!. le tout, tu pouvais t'en douter, avec des Arduino (2).
a moins qu'il ne fonctionne indépendamment, l'idée serait d'utilisé une Méga pour faire fonctionné l’écran et vu qu'il ne restera moins de pin in/out, serait d'utilisé un minipro afin d'y ajouté des in/out supplémentaire qui communiquait avec la Méga.:oops:
Es-ce envisageable.
Je sais ca na plus grand chose a voir avec le projet initiale, mais plus j’apprends et comprends le fonctionnement, plus il me viens des idées.. :-D

Vos avis sur c'est deux écrans seront les bienvenue.

Bonne soirée
@+Cordialement
 
V

vibram

Compagnon
Mais tu as quoi Comme gpio pour remplir un mega ? Car il y a un paquet de pin dedans !
Ce serait intéressant de voir Ce que tu as pour voir ce que tu peux réduire (notamment via un bus i2c mais aucun intérêt si t'as que L écran en i2c ce qui me semble être le cas)
Pour tes écrans je préfére ne pas m avancer mais un bon moyen de vérifier est de chercher sur Google des exemples où tutos Comme Ca tu vois rapidement si tu achètes quelque chose de répandu ou pas
 
J

jpbbricole

Compagnon
Salut Mandrak
je rejoins vibram, en principe i2C c'est 2 fils + l'alimentation, donc un Méga devrait suffire! A étudier.
mais plus j’apprends et comprends le fonctionnement, plus il me viens des idées.. :-D
T'as pas de frein à main pour ralentir les idées?
que l'on pouvait faire communiqué des Arduino entre eux
Comme tu as envie de "bouffer" de l'Arduino, (je te rassure je suis comme toi) je t'en toucherai 2 mots demain.

Bonne nuit
jpbbricole
 
J

jpbbricole

Compagnon
Salut Mandrak
on pouvait faire communiqué des Arduino entre eux
J'utilise essentiellement des communications série (comme la console de l'IDE Arduino) et ceci surtout pour les périfériques comme des claviers, touches et autres engins de saisie.
Par exemple, sur ma petite CNC, j'ai 7 touches sensor sur le moteur:
upload_2016-10-1_9-9-4.png
upload_2016-10-1_9-9-23.png
upload_2016-10-1_9-9-39.png

Celà simplifie grandement le câblage et évite d'avoir des torches de fils.
La communication série n'est certainement poas la solution la plus efficace, mais la plus simple. Le mieux serait de faire la même chose en i2C, la connexion est plus simple (la même pour tous car c'est un bus)

Cordialement
jpbbricole
 
P

Precis84

Compagnon
Bonjour à Tous
C'est super intéressant comme post :smt023
Par contre , ce qui est dommage , c'est d'avoir tout mélangé :sad:
Pour les recherches futures ...bon courage .
Bravo à Mandrak , pour sa rapidité de compréhension et d’exécution :smt038
claude
 
M

Mandrak

Apprenti
Bonjour a tous

Mais tu as quoi Comme gpio pour remplir un mega ? Car il y a un paquet de pin dedans !
je rejoins vibram, en principe i2C c'est 2 fils + l'alimentation, donc un Méga devrait suffire!
Ha.. la j'ai dit une bêtise...:confused:
Toujours par manque de connaissance il me semblais que pour le tactile, l’écran tft utilisais plus d'entrées, aprioris ce n'es pas le cas.

T'as pas de frein à main pour ralentir les idées?
Pas vraiment, souvient toi de ce que disait Forest Gump quand il courrait et avait franchie un état...:mrgreen:

Par exemple, sur ma petite CNC, j'ai 7 touches sensor sur le moteur:
:eek:, J'espère que tu détaillera dans ton post, je suis curieux de savoir a quoi peuvent bien servir les 7 sensors sur le moteur.:wink:

Precis84
ce qui est dommage , c'est d'avoir tout mélangé
Oui et non, ca reste toujours de la programmation au final.

Merci pour tes compliments.

Bonne journée.
@+Cordialement
 
J

jpbbricole

Compagnon
quoi peuvent bien servir les 7 sensors sur le moteur.:wink:
Oh pas de mystères, pour les déplacements manuels des axes, pour le homing par exemple, plus besoin de le faire sur l'écran du PC, il suffit de "pousser", d'un doigt, le moteur pour le déplacer. Le tout, bien sûr, en tenant à jour les positions du GRBL. Ce qui fait 3 axes x2 + une touche de déverrouillage et réglage de finesse =7.

Bonne après-midi
jpbbricole
 
M

Mandrak

Apprenti
Bonsoir a tous

J'ai utilisé aujourd’hui pour la premier fois une des pin "Analog in" pour y faire fonctionner un voltmètre au quel j'ai apporté quelques options (merci jpbbricole pour tes cours), tout fonctionne bien dans l'ensemble (voir Vidéo), il me reste a alléger le code, il y a juste deux, trois points qui me chagrine.
le premier point, dans le texte "Batt déchargé", quand j’écris "é" il m'affiche un drôle de symbole avant le "é" du coup c'est illisible, j'ai essayer plusieurs font de la librairie (U8glib) mais rien y fait je n'es pas trouvé le remède.
Le deuxième point, jai essayer de faire clignoté l’icône en même temps que la led, sachant qu'a terme la led disparaitra, avec la fonction millis, ca clignote mais bizarrement, c'est pas naturel, bref ca clignote pas comme la led, la aussi je séche.
Le dernier point, les deux chiffres après le point on la tremblotte, il y a il un moyen de les calmé ?



Bonne nuit
@+Cordialement
 
J

jpbbricole

Compagnon
Salut Mandrak
Alors là, tu est en pleine forme!
Tu as appliqué la loi d'Ohm en C!!!!!
vin = vout / (R2/(R1+R2));
Il y a plus simple avec une fonction,à mon avis, super dans l'Arduino c'est map().

quand j’écris "é" il m'affiche un drôle de symbole avant le "é"
Regarde ici mais pas simple.
Le dernier point, les deux chiffres après le point on la tremblotte
Est-il nécessaire d'afficher au centième de volt?
Est-il nécessaire d'afficher à chaque tour de void loop()?
Il est temps de restructurer ton programme de telle façon de mettre dans void draw() que ce qui est urgent et créer une autre routine pour les autres choses.
Tu peux éventuellement pondérer le delta de la mesure afin d'afficher seulement quand la variation vaut la peine.

ca clignote mais bizarrement
J'ai pas trouvé où tu fais clignoter l'icône, mais il faut bien te dire que c'est plus rapide d'allumer et d'éteindre 1 LED que ~20 pixels.

Bonne journée
jpbbricole
 
M

Mandrak

Apprenti
Bonjour a tous

jpbbricole

Tu as appliqué la loi d'Ohm en C!!!!! vin = vout / (R2/(R1+R2));
Je me suis documenté et mis en application, petit a petit l'oiseau fait son nid...

Il y a plus simple avec une fonction,à mon avis, super dans l'Arduino c'est map().
Vu et mis en application.

C'est claire pas simple, pas réussi d’ailleurs, quand a "Une autre solution est de recompiler l’IDE Arduino en mode UTF-8. Un peu moins évident…", j'oublie :ripeer:.
Sans indiscrétion, tu utilise quel soft pour compilé.

Est-il nécessaire d'afficher au centième de volt?
Non, les dixièmes serait suffisant.
Est-il nécessaire d'afficher à chaque tour de void loop()?
je ne saisi pas le sens de ta question??
Il est temps de restructurer ton programme
Oui, j'avoue... que c’était un peut le bor....:lol:, je l'ai même allégé.
Tu peux éventuellement pondérer le delta de la mesure afin d'afficher seulement quand la variation vaut la peine.
Désolé !, en clair?.:smt017
J'ai pas trouvé où tu fais clignoter l'icône,

Normale, j'ai déplacer u8g.drawXBM, je l'avais mis dans draw() avec: (voir code #128)
ledEtatVolt = digitalRead(ledVolt_pin);
ledEtatVolt = !ledEtatVolt;
clignotMillis = millis();
digitalWrite(ledVolt_pin, ledEtatVolt);
u8g.drawXBM(bla, bla,bla);

j'ai fait le ménage dans le code, peut être une ou deux poussières par ci par la.:mrgreen:


Bonne journée
@+Cordialement
 
J

jpbbricole

Compagnon
tu utilise quel soft pour compilé.
En fait j'utilise Atmel Studio avec le compléemnt (payant ~40€) Visual Studio pour éditer. Par rapport à l'IDE Arduino, c'est le jour et la nuit, ne serais-ce que la fonction d'autocompletion des commandes.
Cet interface s'adresse au compilateur Arduino pour compiler.

Est-il nécessaire d'afficher à chaque tour de void loop()?
et
Tu peux éventuellement pondérer le delta de la mesure afin d'afficher seulement quand la variation vaut la peine.


Faisaient référence à la tremblotte des 2 chiffres après la virguel, qui provient, en partie, au fait que tu rafraîchi l'affichage très fréquemment, en partie inutilement.
Ainsi, pour l'affichage des volts, si tu le fais toutes les secondes, ou mieux si tu pondère le delta (je suis assez content de ma formule!) ce qui veut dire que tu affiche une nouvelle valeur que s'il y a un changement (delta) de 0.3v par exemple, le rafraîchissement se fera que quand nécessaire. Ce qui me fais revenir siur la structure du programme, sépare les choses qui doivent avoir une certaine réactivité comme les clignoteur de choses plus peinardes comme l'affichage des volts.

Mais pour l'ensemble du programme, je suis entrain de me demander ce qui va t'arrêter! Arduino peut beaucoup!
Purée, je viens de me rendre compte qu'on en est déjà à 9 pages!!!

A bientôt
jpbbricole
 
M

Mandrak

Apprenti
Re

tu rafraîchi l'affichage très fréquemment, en partie inutilement.
Oui effectivement, un rafraichissement toute les 30 secondes me conviendrai.

une nouvelle valeur que s'il y a un changement (delta) de 0.3v par exemple
Je comprend ta théorie, mais j'ai des difficulté a la traduire en C, peut tu me mettre sur une piste.

sépare les choses qui doivent avoir une certaine réactivité comme les choses plus peinardes
Il me semble l'avoir fais dans le dernier code, ou tu veut dire que l'on peut faire mieux ou different?

je suis entrain de me demander ce qui va t'arrêter!
C'est bien la le problème, j'ai l'impression d’être dans une descente sans frein, mais plus j'avance plus ca me motive, je commence a comprendre le fonctionnement et d'avoir un résultat visible a ce que tu a imaginé, c'est génial.
Arduino peut beaucoup!
J'en ai bien conscience, j'ai lu des posts, blogs et autres, c'est no limit.
Un exemple Ici, j'ai pas fini de tout lire.

on en est déjà à 9 pages!!!
Normale, ce sont les codes qui prenne de la place :lol:

si tu pondère le delta
C'est :suisse27:comme expression, non...:jesors23:

Bonne soirée
@+Cordialement
 
V

vibram

Compagnon
J'ai fait le même genre de calcul mais pour une autre application.
Dans les grandes lignes
1. Lecture de la valeur, tu la stockes dans une variable valeur_debut
2. Tu fais un if dans lequel tu compares valeur_fin contre valeur debut, si vrai tu affiches valeur début (dernière valeur lue) si faux tu affiches valeur fin (valeur de la. Boucle précédente)
3.tu attribues la valeur début à la valeur fin

Ainsi, à chaque boucle, la nouvelle valeur va être comparée à la valeur lue lors de la lecture précédente.
Tu peux faire une variation en valeur absolue (par exemple si la. Différence entre les deux valeurs est supérieure à 0.5v, alors tu affiches la nouvelle valeur) ou en % de variation (variation = (valeur arrivée- valeur de début) /valeur debut)
C'est assez dangereux le %, dans le sens où il faut correctement le Comparer.
A ta place je garderais une seule décimale et je mets la valeur à jour lorsque la valeur change de 0.2v, c'est largement suffisant et assez précis
 
G

gégé62

Compagnon
bonsoir,
juste pour signaler que, même si peu de personnes écrivent ici (souvent les mêmes !), d'autres lisent régulièrement et s'instruisent...(enfin, essaient !).
En fait j'utilise Atmel Studio avec le compléemnt (payant ~40€) Visual Studio
j'ai atmel studio 6 (gratuit). Mais je ne l'utilise pas souvent et chaque fois j'ai oublié un peu la procédure....
pourquoi l'éditeur payant ?
 
V

vibram

Compagnon
(PS j'utilise Atom de platform.io qui est gratuit et très complet. Mais je ne peux pas comparer avec les autres n'ayant utilisé que notepad++ et l' ide arduino)
 
J

jpbbricole

Compagnon
Salut gégé62
L'éditeur n'est pas payant, c'est le plug-in spécifique pour Arduino. Bien que ce soit des processeurs Atmega, la syntaxe et la philisophie Arduino est Arduino!
Ce plug s'appelle
upload_2016-10-3_20-35-6.png

et il a entre autre avantage l'autocompletion
upload_2016-10-3_20-37-7.png

Qui liste, dans le contexte les options possibles et ceci pour quasiment tout, les variables les boucles....
upload_2016-10-3_20-38-51.png

Permet de retrouver la "copine" d'une accolade, et j'en passe et des meilleurs.

L'outil indispensable aux pros de l'Arduino que vous êtes ou en passe de l'être.

l'environnement de travail se présente comme ceci
upload_2016-10-3_20-42-9.png


Cordialement
jpbbricole
 
J

jpbbricole

Compagnon
Je comprend ta théorie, mais j'ai des difficulté a la traduire en C, peut tu me mettre sur une piste.
Voilà, je te mets un exemple, de pondération:

Ca peut paraître un peu sophistiqué mais comme tu est un petit doué, celà t'amène des nouveautés comme les variables statiques, abs() et le cast.
Et surtout, si ça pouvait te freiner dans ta descente, j'ai aussi un travail passionant à faire.:tumbsupe:

Cordialement
jpbbricole
 
G

gégé62

Compagnon
c'est le plug-in spécifique pour Arduino
OK j'y avais pensé mais n'étais pas certain. En fait, Atmel Studio ne comprend pas le langage Arduino....
L'outil indispensable aux pros de l'Arduino que vous êtes ou en passe de l'être
optimiste, mais encourageant :)
j'ai un peu mis de coté pour l'instant, pour d'autres travaux plus terre à terre...Mais je vais m'y remettre, promis. Je pointe ce sujet pour le retrouver facilement, il y a déjà des mines d'or dedans. Merci du temps que tu passes, ainsi que d'autres, au profit de la communauté, et avec une telle maestria !
je sais ça fait un peu :tatatata54:.....
 
M

M4vrick

Compagnon
De mon coté c'est uniquement notepad++ avec le complément Arduino et compilation dans l'IDE Arduino officiel.
J'utilise ce process principalement parce que l'IDE Arduino officiel me permet de compiler et uploader du code Arduino pour des Atmega standalone.
 
M

Mandrak

Apprenti
Bonsoir a tous
vibram
Merci beaucoup pour pour la piste a suivre, comme tu le dit une seule décimal est suffisante.
J'ai installer Atom, ca a l'air vraiment bien et conviviale.

gégé62
juste pour signaler que, même si peu de personnes écrivent ici (souvent les mêmes!)
A la base ce forum n'es pas a vocation Arduiniste si je peux dire, même si parmi ses membres il y en a qui ont de bonne connaissance en la matière, ce qui explique a mon sens le peu de participant.

jpbbricole
Ca peut paraître un peu sophistiqué mais comme tu est un petit doué, celà t'amène des nouveautés
Ca fait beaucoup pour une décimale qui a la bougeotte.
Rassure toi, je ne suis pas un petit doué plus qu'un autres.
Pour la énième fois merci pour le code, un lien vers un exemple m’aurais suffit.

Bonne soirée
Cordialement
 
G

gégé62

Compagnon
A la base ce forum n'es pas a vocation Arduiniste si je peux dire, même si parmi ses membres il y en a qui ont de bonne connaissance en la matière, ce qui explique a mon sens le peu de participant.
> 3170 affichages quand même....:wink:
tiens, ça en fera 1 de plus....:-D
 
M

Mandrak

Apprenti
Bonsoir a tous
Je continue ma progression, pour ceux qui suive j'ai rajouté une nouvelle fonction a mon montage,
la température moteur avec un sonde DS18B20 que l'on trouve sur labay pour 3€.
Cette sonde fonctionne de -55 a +125°C avec une résolution de 9 à 12 bits.
Précision : +0.0625°C en 12 bits, +0.125°C en 11 bits, +0.25°C en 10 bits et +0.5°C en 9 bits.
Pour utilisé cette sonde j'ai utilisé deux bibliothèques onewire.h et DallasTemperature.h.

Une petite vidéo pour la route et le code en Pj, le code est brut de pomme a amélioré.


Température.txt
Bonne soirée
@+Cordialement Voir la pièce jointe Température.txt
 
J

jpbbricole

Compagnon
Salut Mandrak, tu avances droit dans tes bottes, tu as bientôt epuisé tout les chapitres, peut-être encore l'inclinaison de la moto?

C'est toujours impeccable. Arrivé à ce stade, la LED utilisée est absolument INDIGNE du standing de ton montage!!!
C'est le moment de passer la vitesse supérieur et d'utiliser des nano LED basées sur le chip ws2811B que l'on trouve au kilomètre, à la pièce, à la douzaine....
Le principe est qu'elles se mettent sur un bus (3fils +- et dataIn>dataOut) fonctionnent avec la bibliothèque Adafruit_NeoPixel.h.
Elles sont RGB, tu règles l'intensité de chaque couleur de 0 à 255, tu peux commander chaque LED individuellement et tu peux même aller lire les données de chaque.
Le gros avantage de cette technologie,si tu veux mettre plusieurs LED dans ton installation, tu ne tires qu'un bus 3 fils et que celà n'utilise qu'un port de l'Arduino.
Personnellement j'utilises la version en vrac et fais le bus moi même.

Bonn soirée
jpbbricole
 
M

Mandrak

Apprenti
Bonsoir jpbbricole

tu as bientôt épuisé tout les chapitres
Non, il y en a beaucoup pour te donné une idée, va voir Ici je n'ai pas la prétention de faire pareil.
Ayant déjà utilisé leur produit, et vu ce que l'on peut faire avec un Arduino, je me dit qu'il y a moyen de faire quelque chose de sympa a moindre coût, certes pas aussi performant, on joue pas dans la même cours, mais pour les motos de piste des copains qui se tape la bourre le dimanche sur circuit, ca peut le faire.
chaque LED individuellement et tu peux même aller lire les données de chaque.
Intéressant cette led, j'en ai entendu parlé mais je mis suis jamais intéressé, je changerai cette bibliothèque pour y voir plus clair.
Quand tu dit que tu peut voir les données de chaque, entent tu par la que chaque led a une adresse?
et peuvent être piloté individuellement par trois fils pour une couleur différente? comme la sonde DS18B20 avec onewire.

Bonne soirée.

@+ Cordialement
 
J

jpbbricole

Compagnon
Salut Mandrak
comme la sonde DS18B20 avec onewire.
Non pas tout à fait.
Le câblage est comme ceci: 2 fils d'alimentation et un fil de Data qui entre dans la première Neo Pixel en Din et qui ressort en Dout et entre ensuite en Din de la suivante.....
Le première Neo Pixel prends automatiquement l'adresse 0.....
Tu dis à la bibliothèque le Nom_du_Bus, le nombre de leds et le nom du port.
Après, pour allumer une led

Nom_du_Bus.setPixelColor(3,0,80,0);

Allumera la led 3 (la 4ème) Vert intensité 80/255.

SetPixelColor permet de régler R G B.

Le reste tu le découvrira avec le matériel. Perso je n'utilises plus que ça.

Rien n'empêce de créer plusieurs instances de Nom_du_Bus (LedsAvant et LedsArriere par exemple)

Cordialement
jpbbricole
 
M

Mandrak

Apprenti
fil de Data qui entre dans la première Neo Pixel en Din et qui ressort en Dout et entre ensuite en Din de la suivante.....
Ok compris, je vais en prendre quelques une pour essayer, ca viens de me donné d'autres idées... je pense qu'un seul minipro ne suffira pas. :lol:
Merci pour l'info.
a bientôt.
Cordialement
 
M

Mandrak

Apprenti
Bonsoir a tous

J'ai reçus mon nouveau jouet :-D un écran 3.5" Nextion , il y a un soft pour le programmer,
c'est assez bien fait, il ma fallut quand même deux jours pour le faire fonctionner avec la Méga, en effet, il dise sur leur site qu'il est préférable d'avoir une alimentation séparer du a sa consommation, bon, ayant une alimentation de labo j'ai connecter l’écran a celle ci et les fils de transmission d'info a la Méga, charger un exemple Hmi dans l’écran et le fichier ino dans la Méga pour faire un essai.
Et la rien....:mad:, après moult recherche, je suis tombé sur un site néo-zélandais qui expliqué la démarche a suivre pour que ca fonctionne.

Donc pour les débutant comme moi, qui découvre cette écran sachez qu'il faut relier la Gnd de l'alimentation de l'écran au Gnd de la carte Arduino, et la oh miracle ca fonctionne.

Cette écran est très bien pour ceux qui touche leur billes avec Adobe Photoshop, on peut y faire des graphisme très intéressent.
Il existe plusieurs bibliothèque pour Arduino, mais je n'ai pas encore compris comment elle fonctionne.
jpbbricole j'aurais une question a te posé a ce sujet, mais plus tard je cherche encore un peu.

Un petite vidéo, le rendu de l’écran n'es pas terrible j'ai laisser le film de protection.


bonne soirée
@+Cordialement
 
J

jpbbricole

Compagnon
salut Mandrak
Si tu pouvais aussi connecter le Gnd à YouTube, ça rendrait ta vidéo publique:7dance:

Bonne soirée
jpbbricole
 

Sujets similaires

V
Réponses
3
Affichages
1 043
vibram
V
F
Réponses
6
Affichages
25 673
fraiddy
F
G
Réponses
88
Affichages
12 057
gaston83
G
G
Réponses
31
Affichages
45 347
gaston83
G
G
Réponses
123
Affichages
19 234
gaston83
G
G
Réponses
0
Affichages
609
gaston83
G
zygo4619
Réponses
34
Affichages
35 469
zygo4619
zygo4619
Moi33
Réponses
3
Affichages
47 993
speedjf37
S
V
Réponses
62
Affichages
5 384
vibram
V
Mcar
Réponses
65
Affichages
11 707
Mcar
R
Réponses
55
Affichages
53 093
jacounet
jacounet
U
Réponses
85
Affichages
7 266
Hubert86
H
2
Réponses
27
Affichages
1 236
jean-jacques
J
Haut