Show Posts
Pages: [1] 2 3 ... 23
1  International / Français / Re: ecran lcd 16x2 i2c avec attiny on: September 10, 2014, 11:30:12 am
de retour après moulte essaie
de mon coté je suis partie sur une base saine complète
une machine virtuelle avec l'IDE 1.0.5r2 récupérer sur arduino.cc
les librairies et fichier board que tu donne au dessus
et j'ai encore et toujours des erreurs
Code:
In file included from Tiny85_Temp_LCD.pde:18:
D:\dl\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\libraries\LiquidCrystal_I2C/LiquidCrystal_I2C.h:80: error: conflicting return type specified for 'virtual void LiquidCrystal_I2C::write(uint8_t)'
D:\dl\arduino-1.0.5-r2-windows\arduino-1.0.5-r2\hardware\arduino\cores\arduino/Print.h:48: error:   overriding 'virtual size_t Print::write(uint8_t)'

finalement je me demande si ya vraiment quelqu’un qui a déjà utilisé un attiny avec un écran i2c
je pense que je vais arrêter de me torturer avec ca et passer direct sur une nano ou une micro ca m'éviteras des emmerde mais
bon c'est dommage quand meme
2  International / Français / Re: ecran lcd 16x2 i2c avec attiny on: September 08, 2014, 11:26:54 am
apres plusieurs essaie je pense que je me suis mal exprimé
j'utilise la lib lcd i2c sans aucun problemes avec une uno, une mega et une nano
la dessus aucun soucis ca marche au poil

mon seul problemes est de la faire fonctionner sur un ATTINY 85
je pense a un problème sur le fichier board.txt mais c'est bizarre car la librairie tinywireM est censé fonctionner sans d'autre modif

concernant la lib adafruit ce n'est pas la lib complete qu'il fournissent mais le rajout a faire dans la lib originelle
car si je mets juste le fichier de adafruit il ne me la trouve pas

merci a vous
3  International / Français / Re: ecran lcd 16x2 i2c avec attiny on: September 07, 2014, 04:32:03 am
la librairie liquidcrystal date de trop loin je me rappel plus ou je les récupérer
j'aurais bien dit adafruit mais sur l'actuelle qu'il propose ce n'est pas les même fichier
https://github.com/adafruit/LiquidCrystal


j'ai essayer ton idée ca a changer le problème mais ca reste sur une erreur qui revient
Code:

C:\Program Files (x86)\arduino\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':
C:\Program Files (x86)\arduino\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal_I2C.h:154: error: 'int LiquidCrystal_I2C::init()' is private
Tiny85_Temp_LCD.pde:-1: error: within this context
toujours init() is private
4  International / Français / Re: ecran lcd 16x2 i2c avec attiny on: September 07, 2014, 02:56:47 am
oups j'oublie toujours une partie moi
os ==> win7
le attiny85 a été ajouté avec le fichier Arduino-Tiny fournit ( me semble car ca date ) sur le site arduino.cc
le code du sketch de le librairie tiny wire M
Code:
/* ATtiny85 as an I2C Master   Ex2        BroHogan                           1/21/11
 * I2C master reading DS1621 temperature sensor. Display to I2C GPIO LED.
 * SETUP:
 * ATtiny Pin 1 = (RESET) N/U                      ATtiny Pin 2 = (D3) N/U
 * ATtiny Pin 3 = (D4) to LED1                     ATtiny Pin 4 = GND
 * ATtiny Pin 5 = SDA on DS1621  & GPIO            ATtiny Pin 6 = (D1) to LED2
 * ATtiny Pin 7 = SCK on DS1621  & GPIO            ATtiny Pin 8 = VCC (2.7-5.5V)
 * NOTE! - It's very important to use pullups on the SDA & SCL lines!
 * DS1621 wired per data sheet. This ex assumes A0-A2 are set LOW for an addeess of 0x48
 * PCA8574A GPIO was used wired per instructions in "info" folder in the LiquidCrystal_I2C lib.
 * This ex assumes A0-A2 are set HIGH for an addeess of 0x3F
 * LiquidCrystal_I2C lib was modified for ATtiny - on Playground with TinyWireM lib.
 * TinyWireM USAGE & CREDITS: - see TinyWireM.h
 */

//#define DEBUG
#include <TinyWireM.h>                  // I2C Master lib for ATTinys which use USI
#include <LiquidCrystal_I2C.h>          // for LCD w/ GPIO MODIFIED for the ATtiny85

#define GPIO_ADDR     0x3F              // (PCA8574A A0-A2 @5V) typ. A0-A3 Gnd 0x20 / 0x38 for A
#define DS1621_ADDR   0x48              // 7 bit I2C address for DS1621 temperature sensor
#define LED1_PIN         4              // ATtiny Pin 3
#define LED2_PIN         1              // ATtiny Pin 6

int tempC = 0;                          // holds temp in C
int tempF = 0;                          // holds temp in F

LiquidCrystal_I2C lcd(GPIO_ADDR,16,2);  // set address & 16 chars / 2 lines


void setup(){
#ifdef DEBUG
  pinMode(LED1_PIN,OUTPUT);
  pinMode(LED2_PIN,OUTPUT);
  Blink(LED1_PIN,2);                    // show it's alive
#endif
  TinyWireM.begin();                    // initialize I2C lib
  Init_Temp();                          // Setup DS1621
  lcd.init();                           // initialize the lcd
  lcd.backlight();                      // Print a message to the LCD.
  lcd.print("Hello, Temp!");
  delay (2000);
}


void loop(){
  Get_Temp();                           // read current temperature
  lcd.clear();                          // display it
  lcd.print("C: ");
  lcd.print(tempC,DEC);
  lcd.setCursor(7,0);
  lcd.print("F: ");
  lcd.print(tempF,DEC);
#ifdef DEBUG
  Blink(LED1_PIN,tempC/10);             // blink 10's of temperature on LED 1
  delay (1000);
  Blink(LED2_PIN,tempC%10);             // blink 1's of temperature on LED 2
#endif
  delay (4000);                         // wait a few sec before next reading
}


void Init_Temp(){ // Setup the DS1621 for one-shot mode
  TinyWireM.beginTransmission(DS1621_ADDR);
  TinyWireM.send(0xAC);                 // Access Command Register
  TinyWireM.send(B00000001);            // Using one-shot mode for battery savings
  //TinyWireM.send(B00000000);          // if setting continious mode for fast reads
  TinyWireM.endTransmission();          // Send to the slave
}


void Get_Temp(){  // Get the temperature from a DS1621
  TinyWireM.beginTransmission(DS1621_ADDR);
  TinyWireM.send(0xEE);                 // if one-shot, start conversions now
  TinyWireM.endTransmission();          // Send 1 byte to the slave
  delay(750);                           // if one-shot, must wait ~750 ms for conversion
  TinyWireM.beginTransmission(DS1621_ADDR);
  TinyWireM.send(0xAA);                 // read temperature (for either mode)
  TinyWireM.endTransmission();          // Send 1 byte to the slave
  TinyWireM.requestFrom(DS1621_ADDR,1); // Request 1 byte from slave
  tempC = TinyWireM.receive();          // get the temperature
  tempF = tempC * 9 / 5 + 32;           // convert to Fahrenheit
}


#ifdef DEBUG
void Blink(byte led, byte times){ // poor man's GUI
  for (byte i=0; i< times; i++){
    digitalWrite(led,HIGH);
    delay (400);
    digitalWrite(led,LOW);
    delay (175);
  }
}
#endif

le lcd i2C ( juste le rajout sur un ecran qui trainer mais qui fonctionne sur une uno)
http://www.ebay.com/itm/130992878814?_trksid=p2059210.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

le même problème survient quand je sélectionne attiny peut importe le model

la librairie est une librairie annexe qui s'appel tiny wire M qui "normalement" est prévu pour ça

merci a vous
5  International / Français / ecran lcd 16x2 i2c avec attiny on: September 05, 2014, 01:55:05 pm
bonjour a tous
j'ai quelque problèmes pour afficher des infos sur un écran i2c 16x2
avec un attiny85 et l'IDE 1.0.1
j'ai tester la librairies tiny wire M mais malheureusement elle me sort de belles erreurs
j'ai gratter sur le site ardui mais rien de concluant même en changeant la libraires liquid crystal

voici les message d'erreur si vous avez une idée
Code:
Tiny85_Temp_LCD.pde:-1: error: invalid conversion from 'int' to 't_backlighPol'
Tiny85_Temp_LCD.pde:-1: error: initializing argument 3 of 'LiquidCrystal_I2C::LiquidCrystal_I2C(uint8_t, uint8_t, t_backlighPol)'
C:\Program Files (x86)\arduino\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal_I2C.h: In function 'void setup()':
C:\Program Files (x86)\arduino\arduino-1.0.1\libraries\LiquidCrystal/LiquidCrystal_I2C.h:154: error: 'int LiquidCrystal_I2C::init()' is private
Tiny85_Temp_LCD.pde:-1: error: within this context

un grand merci a vous
6  International / Français / Re: Problème de débutant on: August 14, 2014, 02:23:16 pm
autant pour moi je connaissait pas
merci
7  International / Français / Re: Problème de débutant on: August 14, 2014, 02:07:50 pm
ah daccord
merci pour l'infos
ca s'appliquer tout le temps ou que dans certains cas ?
8  International / Français / Re: Problème de débutant on: August 14, 2014, 01:41:24 pm
ensuite je voit dans ton loop que tu t'est tromper ^^
tu a écrit
  if (! RTC.isrunning()){
    Serial.println("RTC ne fonctionne pas !");
  }
  else{
    Serial.println("RTC fonctionne !");
  }

ce qui veut dire que
si RTC.isrunning alors j'écrit RTC ne fonctionne pas
sinon RTC fonctionne

ça sera plutôt si RTC.isrunning alors j'écrit RTC fonctionne

sinon même si ton RTC fonctionne jamais tu ne pourra t'en servir car tu croit qu'il ne fonctionne pas

9  International / Français / Re: arduino xpl on off on: August 03, 2014, 10:56:08 am
bonjour jeanphillipe
as tu seulement lit ton code ( la fin ) car ce que tu veux faire y est marquer le plus simplement du monde
je ne pense pas que tu est fait le code mais plutot un copier coller ( ca m'arrive aussi ) mais au moins lit le pour comprendre son fonctionnement et pouvoir modifier un tant sois peu
10  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 10:12:45 am
daccord ça me permet de rassembler les déclaration et variables en haut ce qui est pas plus mal
j'en est profiter pour remonter mon float temp

tout m'a l'air clean ma foi
j'ai rajouter quelque code pour le debug
genre si debug = 1 je lance la liaison série et envoie les valeurs
si debug = 0 j’exécute juste le code de gestion et roule

un grand merci a toi pour cette aide ou j'ai apprit pourquoi un static est nécessaire dans certains cas
11  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:54:53 am
ah ok je comprends
oui effectivement c'est bon a savoir qu'il faut penser a mettre des static pour des variables
pas réellement besoin de le mettre dans les globales mais après tu peux me montrer un exemples avec le getTemperature je suis preneur pour apprendre
merci beaucoup
12  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:21:01 am
saloperie de connerie la ca marche
hum merci a toi jlbechennec
par contre j'avoue que j'aimerais bien comprendre pourquoi pour un static ca bug
je rajoute dessus ce qu'il faut pour quand la temp = consigne
13  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:18:11 am
effectivement si j'enregistre pas mon code en faisant une modif ca marche moins bien
c'est rajouter
14  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 09:06:16 am
oui effectivement une petite variation ce fait sentir mais cela s'expliquer surement par la breadboard et par mes fils
je n'est pas mit pour le moment d’état stable quand la température est la même que la consigne
je rajoute ça après

je te mets le code actuel mais tu vérra qu'il n'y a vraiment pas grand chose de plus

Code:
#include <OneWire.h> // Inclusion de la librairie OneWire
#include <Servo.h>

#define DS18B20 0x28     // Adresse 1-Wire du DS18B20
#define BROCHE_ONEWIRE 7 // Broche utilisée pour le bus 1-Wire
#define max 179          //valeur max de consigne servo
#define min 1            //valeur min de servo


OneWire ds(BROCHE_ONEWIRE); // Création de l'objet OneWire ds

Servo myservo;  // creation de la variable servo

int potpin = 0;  // entrer du potar de consigne
int consigne;    // variable pour la pin de consigne
int pos = 90;

// Fonction récupérant la température depuis le DS18B20
// Retourne true si tout va bien, ou false en cas d'erreur
boolean getTemperature(float *temp){
  byte data[9], addr[8];
  // data : Données lues depuis le scratchpad
  // addr : adresse du module 1-Wire détecté

  if (!ds.search(addr)) { // Recherche un module 1-Wire
    ds.reset_search();    // Réinitialise la recherche de module
    return false;         // Retourne une erreur
  }
  
  if (OneWire::crc8(addr, 7) != addr[7]) // Vérifie que l'adresse a été correctement reçue
    return false;                        // Si le message est corrompu on retourne une erreur

  if (addr[0] != DS18B20) // Vérifie qu'il s'agit bien d'un DS18B20
    return false;         // Si ce n'est pas le cas on retourne une erreur

  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  
  ds.write(0x44, 1);      // On lance une prise de mesure de température
  delay(50);             // Et on attend la fin de la mesure
  
  ds.reset();             // On reset le bus 1-Wire
  ds.select(addr);        // On sélectionne le DS18B20
  ds.write(0xBE);         // On envoie une demande de lecture du scratchpad

  for (byte i = 0; i < 9; i++) // On lit le scratchpad
    data[i] = ds.read();       // Et on stock les octets reçus
  
  // Calcul de la température en degré Celsius
  *temp = ((data[1] << 8) | data[0]) * 0.0625;
  
  // Pas d'erreur
  return true;
}

// setup()
void setup() {
  Serial.begin(9600); // Initialisation du port série
    myservo.attach(9);  // attaches the servo on pin 9 to the servo object
    myservo.write(pos);                  // met le servo a la position de val
    delay(500);                           // attente de positionnement du servo
}

// loop()
void loop() {
  float temp;
 static  int tempok;
  
  // Lit la température ambiante à ~1Hz
  if(getTemperature(&temp)) {
    tempok = (int) temp;
    // Affiche la température
    Serial.print("Temperature: ");
    Serial.print(tempok);
    Serial.write(176); // caractère °
    Serial.write('C');
    Serial.println();
  }
  consigne = analogRead(potpin);            // lit la valeur du potar comprise entre 0 et 1023
  consigne = map(consigne, 0, 1023, 0, 100);     // converti cette valeur entre 0 et 100

  Serial.print("consigne: ");
  Serial.println(consigne);
  
  pos = constrain(pos, min, max);

  if (tempok <= consigne) {
    pos = pos - 1;
    myservo.write(pos);              
    delay(15);
  }
  else {    
    pos = pos + 1;
    myservo.write(pos);              
    delay(15);                      
  }
    Serial.print("position servo: ");
    Serial.println(pos);
   // delay(300);
}
15  International / Français / Re: gestion servo suivant temperature on: July 27, 2014, 06:33:59 am
effectivement çà aurais pu être ça mais ça a rien changer toujours le même problème
je laisse car c'est bon a savoir
Pages: [1] 2 3 ... 23