Bonjour, j'ai essayé d'utilisé ce code mais j'arrive pas a compiler sur l'arduino, quelqu'un aurait une idée, j'ai cette erreur
Arduino : 1.8.18 (Windows 10), Carte : "Arduino Uno"
i2Cmaster:3:10: fatal error: I2CMaster.h: No such file or directory
#include <I2CMaster.h>
^~~~~~~~~~~~~
compilation terminated.
exit status 1
I2CMaster.h: No such file or directory
#include <I2CMaster.h>
#define uint16_t int non signé
structure de typedef
{
uint16_t Rouge;
uint16_t Vert;
uint16_t Bleu;
uint16_t Effacer;
} RVB;
caractère non signé Re_buf;
caractère non signé signe=0;
RVB RVB;
uint16_t CT=0,Lux=0;
octet couleur=0,rgb_data[3]={0};
configuration vide() {
Série.begin(115200);
i2c_init();
retard(1);
}
boucle vide() {
données non signées[9]={0};
si(!signe)
{
iic_read(0x00,données,8);
rgb.Red=(données[0]<<8)|données[1];
rgb.Vert=(données[2]<<8)|données[3];
rgb.Bleu=(données[4]<<8)|données[5];
rgb.Clear=(données[6]<<8)|données[7];
Serial.print("Rouge : ");
Serial.print(rgb.Rouge);
Serial.print(",Vert : ");
Serial.print( rgb.Vert);
Serial.print(",Bleu");
Serial.print( rgb.Bleu);
Serial.print(",Effacer");
Série.println(rgb.Clear);
iic_read(0x08,données,4);
Lux=(données[0]<<8)|données[1];
CT=(données[2]<<8)|données[3];
Série.print("CT : ");
Série.print(CT);
Série.print(",Lux:");
Série.println( Lux);
iic_read(0x0c,données,3);
rgb_data[0]=données[0];
rgb_data[1]=données[1];
rgb_data[2]=données[2];
Série.print("r:");
Série.print( rgb_data[0]);
Série.print(",g:");
Série.print( rgb_data[1]);
Série.print(",b:");
Série.println( rgb_data[2]);
iic_read(0x0f,données,1);
couleur=données[0];
Serial.print(",couleur : ");
Serial.println( couleur,HEX);
}
si(signe==1)
{
iic_read(0x10,&data[8],1);
i2c_start_wait(0xb4);
i2c_write(0x10);
i2c_write(0x31);
// i2c_write((données[8]|0x01));
i2c_stop();
signe=3;
}
retard(200);
}
void iic_read(add non signé,données non signées *,longueur non signée du caractère)
{
i2c_start_wait(0xb4);
i2c_write(ajouter);
i2c_start_wait(0xb5);
tandis que(len-1)
{
*données++=i2c_readAck();
len--;
}
*données=i2c_readNak();
i2c_stop();
}
void serialEvent() {
tandis que (Serial.available()) {
Re_buf=(unsigned char)Serial.read();
si (Re_buf=='a')
signe=0;
si (Re_buf=='b')
signe=1;
Re_buf=0;
}
pert
September 5, 2024, 11:14am
2
Post mis dans la mauvaise section, on parle anglais dans les forums généraux, je viens de déplacer le post dans la section francophone.
Merci de prendre en compte les recommandations listées dans "Les bonnes pratiques du Forum Francophone ".
La librairie n'est manifestement pas installée ou mal installée.
J'ai installé cette bibliothèque je ne sais pas si je me suis trompé de bibliothèque
Cette librairie ce nomme SoftI2CMaster pas I2CMaster
Je n'avais pas bien regardé le code la première fois, où l'as-tu pêché?
C'est un code traduit de l'anglais en français il ne peut pas fonctionner, tous les noms de fonction ainsi que les mots clefs du langage sont traduits.
désolé j'ai pas remarquer non plus mais même en mettant ça j'ai la même erreur, voila le lien ou je l'ai trouver mais je ne sais pas comment récupérer la bibliothèque <I2CMaster.h> GY-33 Color Recognition Sensor Module - Wiki
`#include <I2CMaster.h>
#define uint16_t unsigned int
typedef struct
{
uint16_t Red;
uint16_t Green;
uint16_t Blue;
uint16_t Clear;
} RGB;
unsigned char Re_buf;
unsigned char sign=0;
RGB rgb;
uint16_t CT=0,Lux=0;
byte color=0,rgb_data[3]={0};
void setup() {
Serial.begin(115200);
i2c_init();
delay(1);
}
void loop() {
unsigned char data[9]={0};
if(!sign)
{
iic_read(0x00,data,8);
rgb.Red=(data[0]<<8)|data[1];
rgb.Green=(data[2]<<8)|data[3];
rgb.Blue=(data[4]<<8)|data[5];
rgb.Clear=(data[6]<<8)|data[7];
Serial.print("Red: ");
Serial.print(rgb.Red);
Serial.print(",Green: ");
Serial.print( rgb.Green);
Serial.print(",Blue");
Serial.print( rgb.Blue);
Serial.print(",Clear");
Serial.println(rgb.Clear);
iic_read(0x08,data,4);
Lux=(data[0]<<8)|data[1];
CT=(data[2]<<8)|data[3];
Serial.print("CT:");
Serial.print(CT);
Serial.print(",Lux:");
Serial.println( Lux);
iic_read(0x0c,data,3);
rgb_data[0]=data[0];
rgb_data[1]=data[1];
rgb_data[2]=data[2];
Serial.print("r:");
Serial.print( rgb_data[0]);
Serial.print(",g:");
Serial.print( rgb_data[1]);
Serial.print(",b:");
Serial.println( rgb_data[2]);
iic_read(0x0f,data,1);
color=data[0];
Serial.print(",color:");
Serial.println( color,HEX);
}
if(sign==1)
{
iic_read(0x10,&data[8],1);
i2c_start_wait(0xb4);
i2c_write(0x10);
i2c_write(0x31);
// i2c_write((data[8]|0x01));
i2c_stop();
sign=3;
}
delay(200);
}
void iic_read(unsigned char add,unsigned char *data,unsigned char len)
{
i2c_start_wait(0xb4);
i2c_write(add);
i2c_start_wait(0xb5);
while(len-1)
{
*data++=i2c_readAck();
len--;
}
*data=i2c_readNak();
i2c_stop();
}
void serialEvent() {
while (Serial.available()) {
Re_buf=(unsigned char)Serial.read();
if (Re_buf=='a')
sign=0;
if (Re_buf=='b')
sign=1;
Re_buf=0;
}
}`
Merci de prendre quelques minutes pour lire ou relire "Les bonnes pratiques du forum francophone" et les appliquer.
QUELQUES RÈGLES SIMPLES À LIRE IMPÉRATIVEMENT AVANT DE POSTER
Elles faciliteront la vie de tous et contribueront à rendre votre expérience la plus enrichissante possible.
Bienvenue !!!
Vous rejoignez une communauté : nous incitons très fortement les nouveaux arrivants sur la partie francophone à rédiger dans ce fil de discussion une rapide présentation personnelle.
Aidez nous à vous aider : les réponses qui sont faites sur le forum francophone arduino sont majorit…
En particulier, la mise en forme du code avec des balises en cliquant sur l'icône <code/>
Il y a une librairie I2CMaster dans le github Arduino
Curieusement, elle n’apparaît pas dans le gestionnaire de librairies.
D'accord merci beaucoup je vais essayer cette bibliothèque
Comment rajouté une bibliothèque de cette façon j'ai crû savoir mais apparemment je doit avoir un fichier zip comment l'avoir sur github?
lesept
September 5, 2024, 9:01pm
11
Oui, elle apparait ici :
The Arduino programming language Reference, organized into Functions, Variable and Constant, and Structure keywords.
et son github donne des exemples qui contiennent :
#include <SoftI2CMaster.h>
Donc, soit tu adaptes ton code à cette bibliothèque, soit tu installes l'autre. Je pense que c'est celle-ci :
#ifndef _I2CMASTER_H
#define _I2CMASTER_H 1
/*************************************************************************
* Title: C include file for the I2C master interface
* (i2cmaster.S or twimaster.c)
* Author: Peter Fleury <pfleury@gmx.ch> http://jump.to/fleury
* File: $Id: i2cmaster.h,v 1.10 2005/03/06 22:39:57 Peter Exp $
* Software: AVR-GCC 3.4.3 / avr-libc 1.2.3
* Target: any AVR device
* Usage: see Doxygen manual
**************************************************************************/
#ifdef DOXYGEN
/**
@defgroup pfleury_ic2master I2C Master library
@code #include <i2cmaster.h> @endcode
@brief I2C (TWI) Master Software Library
Basic routines for communicating with I2C slave devices. This single master
This file has been truncated. show original
Instructions pour installer une bibliothèque :
https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries/