Tableaux correspondance bornes Arduino
- likiki
- Site Admin
- Messages : 7200
- Enregistré le : 27 févr. 2021, 16:11
- Prénom : Christian
- LOCALISATION : Ile de France
- Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
- Echelle pratiquée : H0
- Âge : 57
- Pays :
France (fr)
nov. 2021
12
16:06
Tableaux correspondance bornes Arduino
Trois tableaux très pratique.
. .
. .
. .
Pour ne pas se perdre.
. .
. .
. .
Pour ne pas se perdre.
- likiki
- Site Admin
- Messages : 7200
- Enregistré le : 27 févr. 2021, 16:11
- Prénom : Christian
- LOCALISATION : Ile de France
- Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
- Echelle pratiquée : H0
- Âge : 57
- Pays :
France (fr)
nov. 2021
12
16:11
Re: Tableaux correspondance bornes Arduino
En ce qui concerne les shields i2C, ils ont tous des adresses d'origine données en usine.
Il arrive que certain ont la même adresse et là, ça coince. Pour cela, tout les appareils i2C disposent de points de soudure qu'il suffit de shunter pour en changer l'adresse.
Il y a aussi certain fabriquant qui mettent l'adresse i2C en 8 bits alors qu'il faut l'adresse i2C en 7 bits.
Il y a malheureusement des équipements où l'adresse i2C de fonctionnement ne figure pas, alors pour la connaitre il faut utiliser un petit programme qui vas chercher les adresses i2C des appareils connectés a l'Arduino et y répondant.
Je vais vous le mettre ici (le temps de le retrouver).
Scanner i2C (je ne l'ai pas testé)
Il arrive que certain ont la même adresse et là, ça coince. Pour cela, tout les appareils i2C disposent de points de soudure qu'il suffit de shunter pour en changer l'adresse.
Il y a aussi certain fabriquant qui mettent l'adresse i2C en 8 bits alors qu'il faut l'adresse i2C en 7 bits.
Il y a malheureusement des équipements où l'adresse i2C de fonctionnement ne figure pas, alors pour la connaitre il faut utiliser un petit programme qui vas chercher les adresses i2C des appareils connectés a l'Arduino et y répondant.
Je vais vous le mettre ici (le temps de le retrouver).
Scanner i2C (je ne l'ai pas testé)
Code : Tout sélectionner
#include <Arduino.h>
#include <Wire.h>
#define DISPLAY_ERROR false
#define LOOP_DELAY 10000
#define USER_PIN false
// Personnaliser les broches du bus I2C pour ESP8266 ou ESP32
// Customize I2C bus pins for ESP8266 or ESP32
const int PIN_SCL = D1;
const int PIN_SDA = D2;
String I2Ctest() {
byte error, address;
int nDevices;
String s;
s="Scanning...\n";
nDevices = 0;
for(address = 1; address < 127; address++ ) {
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0) {
s+="I2C device found at 0x";
if (address<16)
s+="0";
s+=String(address,HEX);
s+="\n";
nDevices++;
} else if ( error > 0 ) {
if ( DISPLAY_ERROR ) {
s+="Unknow error at 0x";
if (address<16)
s+="0";
s+=String(address,HEX);
s+="\n";
}
}
}
if (nDevices == 0)
s+="No I2C devices found\n";
else
s+="done\n";
return s;
}
void setup() {
Serial.begin(115200);
Serial.println("I2C scanner");
#if USER_PIN
Wire.begin(PIN_SDA, PIN_SCL);
#else
Wire.begin();
#endif
}
void loop() {
// put your main code here, to run repeatedly:
Serial.println(I2Ctest());
delay(LOOP_DELAY);
}
- herwat
- 2000 posts et +
- Messages : 4991
- Enregistré le : 11 mars 2021, 16:14
- Prénom : Hervé
- LOCALISATION : Creuse
- Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino - Echelle pratiquée : H0
- Âge : 77
- Pays :
France (fr)
nov. 2021
12
17:14
Re: Tableaux correspondance bornes Arduino
GÉNIAL !
, Christian
A toute fin utile, si ton scanner ne marche pas, (ce qui est peu probable) j'en ai un qui fonctionne .
, Christian
A toute fin utile, si ton scanner ne marche pas, (ce qui est peu probable) j'en ai un qui fonctionne .
- likiki
- Site Admin
- Messages : 7200
- Enregistré le : 27 févr. 2021, 16:11
- Prénom : Christian
- LOCALISATION : Ile de France
- Centres d'intérêts : Le train miniature (H0 3R), l'impression 3D
- Echelle pratiquée : H0
- Âge : 57
- Pays :
France (fr)
nov. 2021
12
18:00
Re: Tableaux correspondance bornes Arduino
Tu peut toujours le mettre, ça en fera deux.
- herwat
- 2000 posts et +
- Messages : 4991
- Enregistré le : 11 mars 2021, 16:14
- Prénom : Hervé
- LOCALISATION : Creuse
- Centres d'intérêts : Modélisme ferroviaire
Impression 3D
Arduino - Echelle pratiquée : H0
- Âge : 77
- Pays :
France (fr)
nov. 2021
12
19:01
Re: Tableaux correspondance bornes Arduino
A vos ordres !
Il est brut de décoffrage ! Dans son jus , sorti de je ne sais où sur le net :
Il est brut de décoffrage ! Dans son jus , sorti de je ne sais où sur le net :
Code : Tout sélectionner
// --------------------------------------
// i2c_scanner
//
// Version 1
// This program (or code that looks like it)
// can be found in many places.
// For example on the Arduino.cc forum.
// The original author is not know.
// Version 2, Juni 2012, Using Arduino 1.0.1
// Adapted to be as simple as possible by Arduino.cc user Krodal
// Version 3, Feb 26 2013
// V3 by louarnold
// Version 4, March 3, 2013, Using Arduino 1.0.3
// by Arduino.cc user Krodal.
// Changes by louarnold removed.
// Scanning addresses changed from 0...127 to 1...119,
// according to the i2c scanner by Nick Gammon
// https://www.gammon.com.au/forum/?id=10896
// Version 5, March 28, 2013
// As version 4, but address scans now to 127.
// A sensor seems to use address 120.
// Version 6, November 27, 2015.
// Added waiting for the Leonardo serial communication.
//
//
// This sketch tests the standard 7-bit addresses
// Devices with higher bit address might not be seen properly.
//
#include <Wire.h>
void setup()
{
Wire.begin();
Serial.begin(9600);
while (!Serial); // Leonardo: wait for serial monitor
Serial.println("\nI2C Scanner");
}
void loop()
{
byte error, address;
int nDevices;
Serial.println("Scanning...");
nDevices = 0;
for(address = 1; address < 127; address++ )
{
// The i2c_scanner uses the return value of
// the Write.endTransmisstion to see if
// a device did acknowledge to the address.
Wire.beginTransmission(address);
error = Wire.endTransmission();
if (error == 0)
{
Serial.print("I2C device found at address 0x");
if (address<16)
Serial.print("0");
Serial.print(address,HEX);
Serial.println(" !");
nDevices++;
}
else if (error==4)
{
Serial.print("Unknown error at address 0x");
if (address<16)
Serial.print("0");
Serial.println(address,HEX);
}
}
if (nDevices == 0)
Serial.println("No I2C devices found\n");
else
Serial.println("done\n");
delay(5000); // wait 5 seconds for next scan
}