Show Posts
Pages: [1]
1  International / Français / Re: Aide problème LCD I2C on: November 15, 2012, 04:13:15 pm
Bonjour,
Merci pour le lien papybricol mais malheureusement je n'ai pas réussi à résoudre mon problème.
Par contre avec un code très légèrement modifié j'arrive à faire se rallumer le rétro-éclairage qui n'aurait jamais du s'éteindre avec la fonction lcd.backlight().
Je ne sais pas si tu arriveras à allumer le tien aussi nolimit60, voici le code:
Code:
#include <LiquidCrystal_I2C.h>
#include <Wire.h>

LiquidCrystal_I2C lcd(0x27,16,2);

void setup()
{
  lcd.init();
  lcd.cursor_on();
  lcd.blink_on();
  lcd.backlight();
  lcd.setCursor(0,0);
  lcd.print("Hello, world!");
  lcd.cursor_off();
  lcd.blink_off();
}

void loop()
{

}
Il ne manque plus que le plus important: les caractères  smiley
Ajuster le potentiomètre qui se trouve à l'arrière du lcd pourrait-il-servir à quelque chose.

Remarque: Si je penche mon écran LCD pour voir en dessous des carrées noir, je peux apercevoir un 0 dans l'angle supérieur droit.
2  International / Français / Re: Aide problème LCD I2C on: November 14, 2012, 03:05:37 pm
Bonsoir nolimit60
Merci je pense que je vais me procurer des 10k pour le montage.
En ce qui concerne l'adresse de l'écran il n'y a que lorsque je téléverse le programme sur la carte avec l'adresse normalement correct (0x27) que l'écran s'éteint. Si je change d'adresse il n'y a strictement aucune réaction donc l'adresse est probablement bonne, le problème doit venir d'ailleurs.
3  International / Français / Re: Aide problème LCD I2C on: November 14, 2012, 01:57:24 pm
Merci beaucoup pour ce sketch corrigé, je trouve une valeur à addr 39. Comment savoir à quelle adresse cela correspond ?
Savez-vous quelle doit êtres la valeur des résistances de pull-up ?
4  International / Français / Re: Aide problème LCD I2C on: November 14, 2012, 11:01:48 am
Bonsoir,
Je n'ai malheureusement pas réussi à le faire fonctionner, j'ai entré le code trouvé sur le lien mais il ne compile pas. Comment faut-il s'y prendre ?
Sinon j'ai entendu qu'il y avait possibilité de se servir d'un écran LCD I2C rien qu'avec la bibliothèque Wire.
5  International / Français / Re: Aide problème LCD I2C on: November 13, 2012, 03:39:25 pm
Je suis exactement dans la même situation que toi, je possède le même écran LCD qui a perdu son rétro-éclairage et sur lequel je suis incapable d'afficher quoi que ce soit.
Si quelqu'un saurait nous sortir de là smiley
6  International / Français / Re: [Non résolu] Un écran LCD avec un bus I2C on: November 13, 2012, 03:14:42 pm
Oui il me semble que celui-ci il y ressemble beaucoup, le LCD1602.
Merci pour le lien, je vais essayer de m'en sortir avec ça, je vous tiens au informé.
7  International / Français / Re: [Non résolu] Un écran LCD avec un bus I2C on: November 13, 2012, 02:50:50 pm
Justement je n'ai pas accès au dossier des librairies, ça doit être le côté un peu fermé de mac smiley . Le seul dossier qui a été créer lors de l'installation du logiciel est un dossier vide nommer Arduino où enregistrer mes fichiers.
Quote
Il nous faut déjà savoir sur quel matériel tu bosses.
.
Plus précisément ? la carte, le lcd (la référence n'est pas la bonne ?),  la version du logiciel ?
Désolé je débute j'ai commencé à apprendre Arduino dans le cadre de mes TPE.
8  International / Français / [Non résolu] Un écran LCD avec un bus I2C on: November 13, 2012, 02:19:30 pm
Bonjour,
Je cherche désespérément à faire fonctionner un écran LCD avec un bus I2C sur ma carte Arduino Uno (il me semble que la référence- si ça en ai bien une car j'ai un doute- est "IC I2C TWI 1602 Serial LCD"). J'ai fait énormément de recherche et les seuls utilisations que j'ai trouvé d'un écran LCD I2C se font avec des bibliothèques tiers comme LiquidCrystal_I2C. Mon principal ennui c'est que je n'arrive pas à ajouter de bibliothèques les rares informations que j'ai trouvé sont pour PC hors je suis sur MAC. Ma seul tentative a été infructueuses. J'ai entendu dire que l'on pouvait y parvenir en utilisant uniquement la librairie Wire et après de nouvelles recherche et quelques modifications sur ce que j'ai trouvé j'obtiens ceci:
Code:
#include <Wire.h>
#define LCD (0x27)

void setup() {
  Serial.begin(9600);
  Wire.begin();
  Wire.beginTransmission(LCD);
  Wire.write(254);
  Wire.write(88);
  Wire.endTransmission();
}
 
void loop() {
  if (Serial.available() > 0)
  {
    char c = Serial.read();
    Serial.print("c");
    Wire.beginTransmission(LCD);
    Wire.write(c);
    Wire.endTransmission();
  }
}
Il compile très bien mais lorsque que je le téléverse rien ne se passe. Je suis complètement perdu, je n'ai trouvé personne dans le même cas que moi. Si quelqu'un peut m'aider ce serrait très apprécier.

Merci d'avance à ceux qui auront pris le temps de me lire ou de me répondre.
9  International / Français / Re: Code erreur incompréhensible on: November 04, 2012, 01:56:17 pm
Merci à toi, ça faisait un moment que je cherchais. Je pensais que le else if ne s'utilisait que lorsqu'on avait besoin d'insérer plus de choix mais en fait c'était stupide de penser comme ça du moment qu'on plasse une condition le else ne suffit plus.
Merci beaucoup  smiley
10  International / Français / [RESOLU] Code erreur incompréhensible on: November 04, 2012, 12:39:45 pm
Bonjour tous le monde,
je suis actuellement bloqué sur trois codes erreur que je ne comprends pas du tout. Le premier se répète deux fois: error:statement cannot resolve address of overloaded function. J'ai essayé de chercher mais je ne trouve que des pages concernant le C++. Le deuxième à l'air de concerner une déclaration: error:'O' was not declared in this scope mais je n'ai aucune variable à déclarer. Enfin le troisième on me dit que j'ai oublié un point virgule alors que c'est à la fin d'une condition.
Voici le code:
Code:
#include "LiquidCrystal.h"

double coupParMinute=0.0;
double uSv=0.0;
int etatBouton=0;
int temps=0;
int impulsion=0;
int etat_geiger=0;
const int speaker=13;
int n=0;
double coupParMinuteTableau[9]={0};
const int bouton=11;
const int led=9;
const int entree_geiger=10;
const int contacteur=12;
LiquidCrystal lcd(3, 4, 5, 6, 7, 8);
int i=0;

void setup()
{
  pinMode(entree_geiger, INPUT);
  
  
  pinMode(led,OUTPUT);  
  digitalWrite(led, LOW);
  
  pinMode(bouton, INPUT);
  digitalWrite(bouton, HIGH);
  
  pinMode(contacteur, OUTPUT);
  digitalWrite (contacteur, LOW);
  
  pinMode(speaker, OUTPUT);
  digitalWrite(speaker, LOW);
  
  
  lcd.begin(16,2);
  lcd.clear;
  lcd.setCursor(O, O);
  lcd.print("TPE 2012-2013");
  lcd.setCursor(0, 1);
  lcd.print("Le compteur Geiger");
  delay(1000);
  lcd.clear;
  lcd.setCursor(0,0);
  lcd.print("CPM=");
  lcd.setCursor(4,0);
  lcd.print(coupParMinute);
  lcd.setCursor(0,1);
  lcd.print("uSv/h=");
  lcd.setCursor(6,1);
  lcd.print(uSv);
}

void loop()
{
  etatBouton= digitalRead(bouton);
  if (etatBouton==HIGH)
    digitalWrite(contacteur, LOW);
  else (etatBouton==LOW)
    digitalWrite(contacteur, HIGH);
  
  temps=millis();

  while (1000<=(millis()-temps))
    {
        n++;
        while(impulsion<=10 || (millis()-temps)<=5000)
            {
              temps=millis();
              etat_geiger=digitalRead(entree_geiger);
              if(etat_geiger==HIGH)
                impulsion++;
                digitalWrite(led, HIGH);
                digitalWrite(speaker, HIGH);
              while(entree_geiger==HIGH)
              {
                etat_geiger=digitalRead(entree_geiger);
                if(etat_geiger==LOW)
                {
                    digitalWrite(speaker, LOW);
                }
              }
            }          
        if((millis()-temps)>=2000)
            coupParMinute= impulsion/(millis()-temps);
        else
            coupParMinuteTableau[n]=10/(millis()-temps)  ;                    
      
     }
if(coupParMinute==10)
    if(n==1)
        coupParMinute=10/(millis()-temps);
    else
    {    
        coupParMinute= moyenneTableau(coupParMinuteTableau, 10);
    }

coupParMinute*=60;
uSv=coupParMinute*0,057;
}

double moyenneTableau (double tableau[], int tailleTableau)
    {
        double resultat= 0.0;
            
        for(i=0; i<tailleTableau; i++)
            {
                resultat=resultat+tableau[i];
            }
                
        resultat= resultat/i;                
        return 0;
    }

Merci d'avance à ceux qui auront pris le temps de me lire et de me répondre.
Pages: [1]