Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1542 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  115  116  117  ..  267  268  269  270  271  272
Auteur Sujet :

[arduino] Topic Unique blabla @ Arduino

n°135711
SuperSic
Posté le 22-05-2016 à 17:17:10  profilanswer
 

Reprise du message précédent :

dureiken a écrit :

bof non ? pour les non HFR ?


Les résultats Google renvoient souvent vers HFR et c'est moins contraignant à gérer qu'un blog.


---------------
"Les soldats vivent. Et se demandent pourquoi." Toubib (La Compagnie noire) | [TU] Pronomoo
mood
Publicité
Posté le 22-05-2016 à 17:17:10  profilanswer
 

n°135713
eeeinstein
Électricien au CERN
Posté le 22-05-2016 à 17:28:41  profilanswer
 

sinon wordpress, blogger.. mais je pense qu'un nouveau topic sera plus facile à géré, et surtout tu aura de la visite ^^

n°135808
nico_du_02
Posté le 23-05-2016 à 11:45:32  profilanswer
 

Kiveu a écrit :

Si.
En général, je change l'arduino de port usb (je change également le COM correspondant dans l'interface) et tout rendre dans l'ordre...jusqu'à la fois suivante...


 

rat de combat a écrit :

T'aurais pas un logiciel qui essaye d'accéder au ports COM? Eventuellement le logiciel portmon de chez sysinternals (racheté par MS) peut te renseigner la dessus.


 
 
non a pas d'autre logiciel, ça a bien fonctionner ce weekend end éventuellement débranchement du 5v et retranchement ça a l'air de régler le probleme.
 
du coup ce week end pas mal de tuto de fait,  Je penses partir sur un projet station meteo pour me faire la main, reste a trouver les différents composants surtout niveau anémomètre et pluviomètre... en tout cas tres intéressante cette petite cartes.
 
D'ailleurs question très con sur les shields (j'en ai aucun d’où la connerie de la question) un shield est fait pour un modele de carte precise ou c'est standard??? je m'explique j'ai une mega il faut un shield spécial mega ou les shields vont indifféremment sur tout les modèle d'arduino?


Message édité par nico_du_02 le 23-05-2016 à 11:51:43
n°135830
dureiken
Posté le 23-05-2016 à 16:05:34  profilanswer
 

Bonjour les gars
 
quelle est la façon la plus simple de faire une moyenne mobile avec l'arduino ? par exemple ma valeur de pH faire une mesure toutes les minutes et faire la moyenne des 10 dernières minutes ?
 
Merci

n°135839
M4vrick
Mad user
Posté le 23-05-2016 à 18:05:36  profilanswer
 

dureiken a écrit :

Bonjour les gars
 
quelle est la façon la plus simple de faire une moyenne mobile avec l'arduino ? par exemple ma valeur de pH faire une mesure toutes les minutes et faire la moyenne des 10 dernières minutes ?
 
Merci


 
Un simple tableau dans lequel tu stockes tes 10 valeurs et ensuite une moyenne sur le tableau.
Le tableau tu le remplis comme tu le veux, soit en fixe, soit en décalant tout si tu veux garder la dernière mesure à un bout du tableau.


---------------
--== M4vr|ck ==--
n°135847
dureiken
Posté le 23-05-2016 à 18:47:35  profilanswer
 

Oui c'est possible de faire glisser et avoir tjs la valeur la plus recente au debut et pousser les autres ds le tableau puis éjecter la plus ancienne ?
 Et faire la moyenne la dessus.
Merci

n°135849
SuperSic
Posté le 23-05-2016 à 19:03:02  profilanswer
 

dureiken a écrit :

Oui c'est possible de faire glisser et avoir tjs la valeur la plus recente au debut et pousser les autres ds le tableau puis éjecter la plus ancienne ?
 Et faire la moyenne la dessus.
Merci


C'est possible oui mais il te faut coder la fonction toi même (je doute qu'elle soit native sous Arduino).
 
Le plus simple, ça serait d'utiliser une variable en plus pour stocker l'index du tableau où se trouve la valeur la plus ancienne, ça fera moins d'opérations à chaque itération de loop().


---------------
"Les soldats vivent. Et se demandent pourquoi." Toubib (La Compagnie noire) | [TU] Pronomoo
n°135850
rat de com​bat
attention rongeur méchant!
Posté le 23-05-2016 à 19:07:06  profilanswer
 

Je plussoie SuperSic mais de manière générale, pour les histoires de glissements jeter un coup-d'oeil à memmove() (string.h). D'accord, on peut aussi simplement utiliser une boucle, sur un AVR ça ne doit pas faire de différence (?).

n°135851
dureiken
Posté le 23-05-2016 à 19:11:03  profilanswer
 

C'est du chinois pour moi lol ☺

n°135854
SuperSic
Posté le 23-05-2016 à 19:34:02  profilanswer
 

dureiken a écrit :

C'est du chinois pour moi lol ☺


Mon post ou celui de rat de combat ?


---------------
"Les soldats vivent. Et se demandent pourquoi." Toubib (La Compagnie noire) | [TU] Pronomoo
mood
Publicité
Posté le 23-05-2016 à 19:34:02  profilanswer
 

n°135857
M4vrick
Mad user
Posté le 23-05-2016 à 19:51:02  profilanswer
 

dureiken a écrit :

Oui c'est possible de faire glisser et avoir tjs la valeur la plus recente au debut et pousser les autres ds le tableau puis éjecter la plus ancienne ?
Et faire la moyenne la dessus.
Merci

 

Ça se fait en 3 lignes en arduino (en comptant une ligne avec le } :D )
Ensuite tu as juste a mettre ta donnée dans la première case


---------------
--== M4vr|ck ==--
n°135858
dureiken
Posté le 23-05-2016 à 19:56:49  profilanswer
 

Les 2 ☺
Si tu as les 3 lignes je prends ☺
 Merci

n°135859
rat de com​bat
attention rongeur méchant!
Posté le 23-05-2016 à 20:55:59  profilanswer
 

Ma méthode avec memmove(). Je vais éditer pour rajouter du code avec une variable.
 

Code :
  1. #include <string.h>
  2.  
  3. //pour le printf uniquement
  4. #include <stdio.h>
  5.  
  6. #define TAILLE_TABLEAU 10
  7.  
  8. int main(void)
  9. {
  10.    int tableau[10];
  11.    
  12.    int i;
  13.    for(i=0; i<TAILLE_TABLEAU; i++)
  14.        tableau[i]=i;
  15.    
  16.    for(i=0; i<TAILLE_TABLEAU; i++)
  17.        printf("%d ", tableau[i]);
  18.    printf("\n" );
  19.    
  20.    ////////////////////////////////////////////////
  21.    //deux lignes à répéter pour chaque nouvelle valeur (en boucle)
  22.    memmove(tableau, tableau+1, (TAILLE_TABLEAU-1)*sizeof(int)); //faire de la place
  23.    tableau[TAILLE_TABLEAU-1]=99; //mettre la nouvelle valeur tout au bout du tableau
  24.    /////////////////////////////////////////////////
  25.  
  26.    for(i=0; i<TAILLE_TABLEAU; i++)
  27.        printf("%d ", tableau[i]);
  28.  
  29.    return 0;
  30. }


 
Voici donc un exemple sur l'idée de SuperSic, on appelle ceci un buffer circulaire de mémoire. C'est une implémentation minimale qui peut contenir des erreurs. Ce genre de trucs a sa justification mais pour des petits tableaux je ne suis pas sûr que ce soit plus efficace qu'un memmove() et puis c'est plus de code à comprendre...
 

Code :
  1. #include <string.h>
  2.  
  3. //pour le printf uniquement
  4. #include <stdio.h>
  5.  
  6. #define TAILLE_TABLEAU 10
  7.  
  8. int tableau[10];
  9. int position=0; //position prochaine valeur
  10. int nb_elements=0;
  11.  
  12. //il faut obligatoirement utiliser ces fonctions, ne pas accéder directement à tableau! (sauf debug)
  13. void ajouter_valeur(const int val)
  14. {
  15.    tableau[position]=val;
  16.    position++;
  17.    if(position>=TAILLE_TABLEAU)
  18.        position=0;
  19.    if(nb_elements<TAILLE_TABLEAU)
  20.        nb_elements++;
  21. }
  22. int element(const int pos) // 0 = nombre le plus récent ..... TAILLE_TABLEAU-1 = nombre le plus ancien
  23. {
  24.    //!!supposition (éventuellement rajouter test): pos<nb_elements (et donc aussi <TAILLE_TABLEAU) !!
  25.    int index=position-pos-1;
  26.    if(index<0)
  27.        index+=TAILLE_TABLEAU;    
  28.    return tableau[index];
  29. }
  30.  
  31. int main(void)
  32. {
  33.    int i;
  34.  
  35.    //initialiser avec 0 pour que les printfs() de debuggage soient plus lisibles
  36.    for(i=0; i<TAILLE_TABLEAU; i++)
  37.        tableau[i]=0;
  38.    
  39.    //remplir
  40.    for(i=0; i<4; i++)
  41.    ajouter_valeur(i);
  42.    
  43.    //afficher pour debug
  44.    for(i=0; i<TAILLE_TABLEAU; i++)
  45.        printf("%d ", tableau[i]);
  46.    printf("\n" );
  47.    
  48.    //moyenne sur tout les nombres existants
  49.    float moyenne=0;
  50.    for(i=0; i<nb_elements; i++)
  51.        moyenne+=element(i);
  52.    moyenne/=nb_elements;  //faudrait vérifier que c'est !=0 si on veut être tout à fait correct/complet
  53.    printf("moyenne: %f (avec %d elements)\n", moyenne, nb_elements);
  54.    
  55.    //ici en principe tout est dit, le reste c'est de la répétition pour tester...
  56.    
  57.    ajouter_valeur(20);
  58.    ajouter_valeur(21);
  59.    ajouter_valeur(22);
  60.    ajouter_valeur(23);
  61.    ajouter_valeur(24);
  62.    ajouter_valeur(25);
  63.    ajouter_valeur(26);
  64.    ajouter_valeur(27);
  65.    ajouter_valeur(28);
  66.    ajouter_valeur(29);
  67.    ajouter_valeur(30);
  68.    ajouter_valeur(31);
  69.    ajouter_valeur(32);
  70.    ajouter_valeur(33);
  71.    ajouter_valeur(34);
  72.    
  73.    //afficher pour debug
  74.    for(i=0; i<TAILLE_TABLEAU; i++)
  75.        printf("%d ", tableau[i]);
  76.    printf("\n" );
  77.    
  78.    //moyenne sur tout les nombres existants
  79.    moyenne=0;
  80.    for(i=0; i<nb_elements; i++)
  81.        moyenne+=element(i);
  82.    moyenne/=nb_elements;  //faudrait vérifier que c'est !=0 si on veut être tout à fait correct/complet
  83.    printf("moyenne: %f (avec %d elements)\n", moyenne, nb_elements);
  84.  
  85.    ajouter_valeur(35);
  86.    ajouter_valeur(36);
  87.    ajouter_valeur(37);
  88.  
  89.    //afficher pour debug
  90.    for(i=0; i<TAILLE_TABLEAU; i++)
  91.        printf("%d ", tableau[i]);
  92.    printf("\n" );
  93.    
  94.    //moyenne sur tout les nombres existants
  95.    moyenne=0;
  96.    for(i=0; i<nb_elements; i++)
  97.        moyenne+=element(i);
  98.    moyenne/=nb_elements;  //faudrait vérifier que c'est !=0 si on veut être tout à fait correct/complet
  99.    printf("moyenne: %f (avec %d elements)\n", moyenne, nb_elements);
  100.  
  101.    return 0;
  102. }


 
Je précise aussi que l'Arduino étant basé sur le C++ il y a probablement plus élégant (mais plus efficace aussi?).


Message édité par rat de combat le 23-05-2016 à 21:50:24
n°135871
pyromanu
Posté le 23-05-2016 à 22:27:46  profilanswer
 

Si tu as pas envie de t'embêter, tu peux regarder par là, bien que ça consomme vite des ressources:
http://playground.arduino.cc/Code/Filters
 
Edit>corrigé


Message édité par pyromanu le 23-05-2016 à 23:02:16
n°135872
rat de com​bat
attention rongeur méchant!
Posté le 23-05-2016 à 22:30:01  profilanswer
 

Il manque un 's' au bout du lien.

n°135884
M4vrick
Mad user
Posté le 24-05-2016 à 00:16:33  profilanswer
 

ma version, tu fais une fonction dans laquelle tu passes ta nouvelle mesure et qui te renvoi la moyenne.
Le tableau doit être déclaré au niveau global.

 
Code :
  1. int MaFonction(int Mesure){
  2.    int Moyenne = 0;
  3.    for (int i=9; i>0; i--){
  4.       MonTableau[i]=MonTableau[i-1];
  5.       Moyenne = Moyenne+MonTableau[i];
  6.    }
  7.    MonTableau[0] = Mesure;
  8.    Moyenne = (Moyenne + Mesure)/10;
  9.    return Moyenne;
  10. }
 

C'est tout con mais ca devrait fonctionner.

Message cité 1 fois
Message édité par M4vrick le 24-05-2016 à 00:17:42

---------------
--== M4vr|ck ==--
n°135908
jemangedes​lolos
Posté le 24-05-2016 à 10:17:36  profilanswer
 

C'est toujours marrant qu'en hard comme en soft, pour une même fonction, deux cerveaux pondent deux solutions bien différentes !
 
 

n°135923
rat de com​bat
attention rongeur méchant!
Posté le 24-05-2016 à 13:36:36  profilanswer
 

M4vrick a écrit :

ma version, tu fais une fonction dans laquelle tu passes ta nouvelle mesure et qui te renvoi la moyenne.
Le tableau doit être déclaré au niveau global.
[...]
C'est tout con mais ca devrait fonctionner.


 
Ca revient à implémenter memmove() à la main, mais en profitant de la boucle pour faire le calcul de moyenne. Bien vû, mais il reste un petit problème: La moyenne renvoyée (int? J'aurais mis du float mais peu importe) ne sera correcte qu'au bout du 10eme appel de la fonction, autrement dit quand le tableau sera completement rempli.

n°135929
M4vrick
Mad user
Posté le 24-05-2016 à 14:25:59  profilanswer
 

rat de combat a écrit :


 
Ca revient à implémenter memmove() à la main, mais en profitant de la boucle pour faire le calcul de moyenne. Bien vû, mais il reste un petit problème: La moyenne renvoyée (int? J'aurais mis du float mais peu importe) ne sera correcte qu'au bout du 10eme appel de la fonction, autrement dit quand le tableau sera completement rempli.


 
Oui en effet, les 10 premières minutes la moyenne sera plus basse.
Comme on a pas toutes les caractéristiques du projet j'ai fait au plus simple, comme pour les types de variables. Pour qu'il ai au moins l'idée globale.


---------------
--== M4vr|ck ==--
n°135956
rat de com​bat
attention rongeur méchant!
Posté le 24-05-2016 à 18:55:39  profilanswer
 

M4vrick a écrit :

Oui en effet, les 10 premières minutes la moyenne sera plus basse.


Je me suis permis de régler ça. :o J'en ai profité pour mettre le 10 en #define, quant au style d'indentation c'est juste parce que j'ai l'habitude d'utiliser celui-là...

Code :
  1. #include <stdio.h>
  2.  
  3. #define TAILLE 10
  4.  
  5. int MonTableau[TAILLE];
  6.  
  7. int MaFonction(int Mesure)
  8. {
  9.    int Moyenne = 0;
  10.    static int NbValeurs=0;
  11.    if(NbValeurs<TAILLE)
  12.        NbValeurs++;
  13.    for(int i=NbValeurs-1; i>0; i--)
  14.    {
  15.        MonTableau[i]=MonTableau[i-1];
  16.        Moyenne = Moyenne+MonTableau[i];
  17.    }
  18.    MonTableau[0] = Mesure;
  19.    Moyenne = (Moyenne + Mesure)/NbValeurs;
  20.    return Moyenne;
  21. }
  22.  
  23. int main(void)
  24. {
  25.    int i;
  26.  
  27.    for(i=0; i<15; i++)
  28.    {
  29.        printf("%d\n", MaFonction(i));
  30.    }
  31.  
  32.    printf("%d\n", MaFonction(99));
  33.    
  34.    return 0;
  35. }


 
D'ailleurs on pourrait aussi mettre le tableau dans la fonction avec static.

n°136018
mrbrome
Posté le 25-05-2016 à 14:35:56  profilanswer
 

SuperSic a écrit :


Le plus simple, ça serait d'utiliser une variable en plus pour stocker l'index du tableau où se trouve la valeur la plus ancienne, ça fera moins d'opérations à chaque itération de loop().


J'aime bien cette méthode, elle me semble plus élégante car elle ne nécessite pas de recopie de mémoire.
 
Un truc du genre :
 

Code :
  1. int MonTableau[TAILLE];
  2. int indexDernierAjout=0;
  3. int lireTableau(int index)
  4. {
  5.     return MonTableau[(index+indexDernierAjout)%TAILLE];
  6. }
  7. int ajouterDansTableau(int valeur)
  8. {
  9.     MonTableau[indexDernierAjout++]=valeur;
  10.     if (indexDernierAjout>=TAILLE) indexDernierAjout=0;
  11. }

Message cité 2 fois
Message édité par mrbrome le 25-05-2016 à 14:36:46
n°136020
SuperSic
Posté le 25-05-2016 à 14:42:23  profilanswer
 

mrbrome a écrit :


J'aime bien cette méthode, elle me semble plus élégante car elle ne nécessite pas de recopie de mémoire.
 
Un truc du genre :
 

Code :
  1. int MonTableau[TAILLE];
  2. int indexDernierAjout=0;
  3. int lireTableau(int index)
  4. {
  5.     return MonTableau[(index+indexDernierAjout)%TAILLE];
  6. }
  7. int ajouterDansTableau(int valeur)
  8. {
  9.     MonTableau[indexDernierAjout++]=valeur;
  10.     if (indexDernierAjout>=TAILLE) indexDernierAjout=0;
  11. }



Oui qqc dans le style avec en plus la gestion des 1ers ajouts : calcule-t-on la moyenne glissante avant d'avoir 10 valeurs ?


---------------
"Les soldats vivent. Et se demandent pourquoi." Toubib (La Compagnie noire) | [TU] Pronomoo
n°136021
rat de com​bat
attention rongeur méchant!
Posté le 25-05-2016 à 14:47:59  profilanswer
 

mrbrome a écrit :

Un truc du genre :


Si on choisit une taille = 2**n pour le tableau on peut se passer du modulo probablement assez gourmand en temps de calcul. Dans le cas présent peu importe mais c'est une belle optimisation.
On ne peut pas dire que dureiken manque de choix... :)

n°136433
Mr Marron ​derriere
Proprio d'une mER-6uez !
Posté le 27-05-2016 à 23:04:01  profilanswer
 

Quelqu'un a testé le Arduino101/Genuino101 ? https://www.arduino.cc/en/Main/ArduinoBoard101

n°136487
dureiken
Posté le 28-05-2016 à 19:03:19  profilanswer
 

Salut les gars
 
merci pour vos explications pour la moyenne mobile. j'étais en déplacement pro je vais tester ça !
 
Comme je mets à jour mes données toutes les 10 minutes sur le site web et que je fais une acquisition toutes les 10 secondes de mes variables + maj LCD, c'est pas grave si j'ai du temps où la valeur est pas bonne au départ.

n°136503
dureiken
Posté le 29-05-2016 à 10:15:18  profilanswer
 

@rat : en gros dans ta fonction MonTableau tu rajoutes la valeur Mesure dans une case du tableau

 

et tu calcules la moyenne comme étant la moyenne précédente + la nouvelle / nombre valeurs ?

 

il ne faut pas mettre Moyenne = (Moyenne*(NbValeurs-1) + Mesure)/NbValeurs;

 

du coup ?

 

edit : mes valeurs sont des temperatures, donc avec 1 chiffre après la virgule, je mets du float à la place du INT du coup ?

 

edit2 : en fait en regardant bien ta fonction j'avoue que je n'ai pas trop compris comment tu fonctionnais, un detail ligne par ligne est possible ? :)

 

Merci encore !


Message édité par dureiken le 29-05-2016 à 10:18:31
n°136511
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 12:41:16  profilanswer
 

Hey,
 
une question d'électronique (vu que je suis un peu tout pourri sur cette partie là).
 
J'ai récupéré une télécommande filaire pour auto-radio, que j'aimerais bien utiliser pour des projets Arduino. J'ai maté comment c'était fait à l'intérieur : c'est juste des interrupteurs et des résistances. Donc je pense comprendre que la résistance "globale" va varier selon le bouton pressé.  
Par contre, là où je bloque, c'est pour mesurer ce signal. Il n'y a que deux broches (donc V+ et GND j'imagine). Comment je fais pour capter le "signal" avec une Arduino ?  
Et question subsidiaire : on est d'accord que je peux mettre n'importe quelle tension ? Donc le 5V de l'Arduino ?


---------------
If you think it could look good, then I guess it should
n°136512
eeeinstein
Électricien au CERN
Posté le 29-05-2016 à 13:14:08  profilanswer
 

Tu branche une borne sur le +5v et tu mesure au Multi entre l'autre borne et le gnd, puis tu presse les differents bouton et tu regarde ce qu'il ce passe,
 
Sinon tu peux mettre le Multi sur ohm-mètre et faire pareil avec les 2 borne du Multi sur les deux borne de ta télécommande


Message édité par eeeinstein le 29-05-2016 à 13:15:17
n°136513
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 14:36:32  profilanswer
 

Alors le ohm-mètre sur les deux bornes, j'ai déjà essayé, ça me donne des valeurs inconsistantes et pendant une demi-seconde seulement (avant de revenir à "discontinu" ). Donc je pense qu'il faut que ça soit alimenté.
 
Et si je l'alimente, je veux bien mesurer au multi, mais comment faire ensuite pour que ça soit l'Arduino qui mesure ? Avec trois broches (VCC, GND et data) je vois à peu près comment faire, mais là avec deux seulement ? Une broche sur le VCC et l'autre vers une entrée analogique ?


---------------
If you think it could look good, then I guess it should
n°136514
eeeinstein
Électricien au CERN
Posté le 29-05-2016 à 14:38:01  profilanswer
 

exactement, une broche sur vcc et l'autre qui mesure en continue


Message édité par eeeinstein le 29-05-2016 à 14:53:54
n°136516
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 14:48:49  profilanswer
 

;) Je vais tester ça.


---------------
If you think it could look good, then I guess it should
n°136518
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 15:24:25  profilanswer
 

Arf, ça fonctionne pas, je lis 1023 tout le temps en reliant une broche sur 5V et l'autre vers une entrée analogique [:fabien27]  
 
Et j'ai essayé aussi de relier une broche au 5V, et l'autre à la fois vers le GND et vers une entrée analogique, et là je lis tout le temps 0…
 
EDIT : Ha, quand je fais l'inverse c'est mieux : le 5V qui part à la fois vers une entrée analogique et vers la broche + de la télécommande, et la broche moins vers le GND. Là je lis des (faibles) écarts suivant les boutons pressés :)


Message édité par Turkleton le 29-05-2016 à 15:30:34

---------------
If you think it could look good, then I guess it should
n°136519
eeeinstein
Électricien au CERN
Posté le 29-05-2016 à 15:31:39  profilanswer
 

voila ta trouvé :)

n°136520
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 15:33:46  profilanswer
 

Les écarts restent faibles, et pas consistants d'une fois sur l'autre, mais ça devrait me permettre d'utiliser au moins certains boutons donc c'est cool. Merci de ton aide :jap:


---------------
If you think it could look good, then I guess it should
n°136521
eeeinstein
Électricien au CERN
Posté le 29-05-2016 à 15:36:11  profilanswer
 

sinon tu as la solution de démonter et de faire des changement interne pour avoir un fil/switch par exemple.. faut voir si c'est réalisable

n°136522
Turkleton
I don't quite understand you
Posté le 29-05-2016 à 15:44:33  profilanswer
 

Houla, déjà j'ai pas compris pourquoi ma mesure fonctionnait avec ce dernier branchement et pas avec les autres, je suis vraiment trop mauvais en électronique pour en plus bidouiller un fil de données :D


---------------
If you think it could look good, then I guess it should
n°136538
rat de com​bat
attention rongeur méchant!
Posté le 29-05-2016 à 17:52:15  profilanswer
 

Pardon, mais là c'est évident: Il faut utiliser une résistance extérieure pour faire un pont diviseur. :o  Les mesures seront bien plus utiles.

 

edit: Excusez-moi, en relisant ça me paraît un poil aggressif mon message...

Message cité 1 fois
Message édité par rat de combat le 29-05-2016 à 18:01:26
n°136539
dureiken
Posté le 29-05-2016 à 18:05:03  profilanswer
 

@rat : remonte un peu les posts stp :p

n°136540
Profil sup​primé
Posté le 29-05-2016 à 18:32:17  answer
 

salut!

 

j'ai ce starter kit ci: http://www.banggood.com/Arduino-Co [...] 08543.html

 

et j'essaye de faire joujou avec l'afficheur LCD, un (clone de) 1602 i2c
le contrôleur i2c est un PCA9554D et sa datasheet est ici: http://www.nxp.com/documents/data_ [...] _9554A.pdf

 

problème: y'a rien qui s'affiche :(

 

je suis ce tuto: http://arduino.stackexchange.com/q [...] wrong-pins
mon contrôleur i2c est différent de celui dans le forum (il a un PCF8574 http://www.nxp.com/documents/data_sheet/PCF8574.pdf) mais le wiring est identique

 

mon adresse est la bonne, c'est comme dans le tuto 0x27

 

je comprends pas. quelqu'un pour me guider? :jap: merci

 

edit:
- le code que j'utilise est le "Full code:" dans le tuto
- je ne comprends pas la logique du gars qui dit ça:

Citation :

The numbers 0-7 in the code refer to the P0-P7 pins on the PCF8574. If you look at the datasheet, P0 is on pin 4, P1 on 5, P2 on 6, P3 on 7, P4 on 9, P5 on 10, P6 on 11, P7 on 12. So in your case, P0 goes to RS, P1 to RW, P2 to E P3 to backlight, P4-P7 to D4-D7. So your numbers in the code you've given were correct (i.e. LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7, 3, POSITIVE);). So that wasn't the problem. Try reseating the headers in the breadboard, as there could be an improper connection. Also resolder the header on the LCD, as they aren't great solder joint (to little solder).


car si je fais une correspondance entre les pins sur le LCD (identique à l'image dans le tuto) et le datasheet, ça me donne ça:
En - pin 6 LCD - P2 chip
Rw - pin 5 LCD - P1 chip
Rs - pin 4 LCD - P0 chip
jusque là tout va bien, mais ensuite ça devient étrange:
D4 - pin 11 LCD - P6 chip
D5 - pin 12 LCD - P7 chip
D6 - pin 13 LCD - INT chip
D7 - pin 14 LCD - SCL chip
or le gars dit: P4-P7 to D4-D7
  :heink:

Message cité 1 fois
Message édité par Profil supprimé le 29-05-2016 à 18:41:32
n°136541
Natopsi
☄️Just end it already!☄️
Posté le 29-05-2016 à 18:33:57  profilanswer
 

T'as réglé le contraste? :D


---------------
ACH/VDSHFRCoin◈1435mm⚡
n°136542
Profil sup​primé
Posté le 29-05-2016 à 18:38:59  answer
 

Natopsi a écrit :

T'as réglé le contraste? :D


oui, je vois une ligne de carrés "blancs". j'ai edit mon message avec plus de détails

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  115  116  117  ..  267  268  269  270  271  272

Aller à :
Ajouter une réponse
 

Sujets relatifs
* Réparations de vos appareils électroniques & electromenager * 
Plus de sujets relatifs à : [arduino] Topic Unique blabla @ Arduino


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR