Search Code

Ndenge ya kosalela I2C Scanner na Digispark mpo na koluka adresi ya I2C | Robojax

Ndenge ya kosalela I2C Scanner na Digispark mpo na koluka adresi ya I2C | Robojax

Lithu oyo elakisaka ndenge ya kosalela scanner ya I2C na carte ya développement Digispark mpo na koyeba ba adresse ya I2C ya ba appareils oyo esangani. Koyeba adresse ya I2C ezali malamu mingi mpo na kosolola na ba capteurs mpe ba modules ndenge na ndenge na protocole ya I2C. Mayele oyo ezali malamu mpo na misala mingi. Na ndakisa, okoki kosalela tekniki oyo mpo na:

  • Kosangisa ba capteurs I2C ebele na projet moko, lokola station ya kotala environnement.
  • Kokamba mikakatano ya communication I2C na koyeba adresse ya appareil oyo ezali na problème.
  • Koyeba mbala moko adresse ya I2C ya ba capteurs to ba modules oyo ozwaki sika.

Méthode oyo ezali malamu mingi mpo na ba appareils oyo adresse na bango ya I2C ekomami polele te.

Matériel/Ba composants

Mpo na kolanda lithu oyo, okolinga ba composants oyo:

  • Carte ya développement Digispark (oyo ya USB to Micro USB)
  • Ba appareils I2C (ba capteurs, ba modules, etc.) oyo okolinga koyeba ba adresse na bango
  • Ba fils ya kosangisa

Mokambi ya kosangisa ba fils

Kosangisa ba fils ezali na kosangisa ba lignes SDA mpe SLC na Digispark na ba pins oyo ekokani na ba appareils na yo ya I2C (na vidéo na 00:53). Pin ya SDA ya Digispark ezali pin digitale 0, mpe pin ya SCL ezali pin digitale 1 (na vidéo na 01:05). Tika ete ba pins VCC mpe GND ya ba appareils na yo ya I2C esangisami malamu na ba pins 5V mpe GND ya Digispark (na vidéo na 01:34). Kosangisa ba fils ezali ndenge moko mpo na ba modèles ndenge na ndenge ya Digispark (na vidéo na 01:44).

%%WIRING%%

Ndimbola ya code

Code ya Arduino oyo epesami esalelaka bibliothèque ya Wire mpo na koluka ba appareils I2C. Logique ya liboso ezali na kati ya fonction loop() (na vidéo na 02:38). Code ezali kotambola na ba adresse I2C nyonso (1 kino 127) mpe ezali komeka kosolola na adresse moko na moko na Wire.beginTransmission(address) mpe Wire.endTransmission(). Soki communication elongani (erreur == 0), code ezali kokoma adresse na moniteur ya série. Partie oyo ekoki kobongisama ezali mingi baud rate ya série, oyo ekomami na 9600 na ligne Serial.begin(9600). Okoki kobongola valeur oyo soki esengeli, kasi tika ete ekokani na baud rate ya moniteur ya série na yo.


#include <Wire.h>

void setup() {
  Wire.begin();
  Serial.begin(9600); // Ligne oyo ekomi baud rate ya série.
  while (!Serial);
  Serial.println("\nI2C Scanner");
}

void loop() {
  // ... (makambo mosusu ya code) ...
}

Projet/Démonstration ya bomoi

Vidéo ezali kolakisa processus ya koyeba ba adresse I2C mpo na ba appareils ebele (na vidéo na 03:46, 04:14, 05:17). Lithu ezali kolakisa ndenge ya kotia code na Digispark, kosangisa ba appareils I2C, mpe kotala ba adresse oyo ekomami na moniteur ya série (na vidéo na 03:11). Vidéo ezali kolakisa ete résultat ya série ekomonana na fenêtre nyonso oyo ezali ya kofungwama, lokola Notepad to Microsoft Word (na vidéo na 04:47). Ezali kolakisa ntina ya kosangisa appareil nsima ete processus ya kotia code ebanda, na kati ya fenêtre ya secondes 60 (na vidéo na 03:27, 04:22, 05:34).

Ba chapitres

  • [00:00] Introduction mpe Résumé ya projet
  • [00:24] Ndimbola ya adresse I2C
  • [00:53] Mikambi ya kosangisa ba fils
  • [01:48] Bokambi ya logiciel mpe installation
  • [02:35] Processus ya kotia code
  • [03:11] Koyeba adresse ya appareil ya liboso
  • [04:06] Koyeba adresse ya appareil ya mibale
  • [05:15] Koyeba adresse ya appareil ya misato
  • [05:58] Nsuká
179-Arduino code for an I2C scanner
Langue: C++
// --------------------------------------
//http://playground.arduino.cc/Main/I2cScanner
// 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 known.
// Version 2, June 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
//    http://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 addresses might not be seen properly.
// Watch Video explaining I2C address: https://www.youtube.com/watch?v=bqMMIbmYJS0
//
 
#include <Wire.h>
 
 
void setup()
{
  Wire.begin();
 
  Serial.begin(9600);
  while (!Serial);             // Leonardo: wait for serial monitor
  Serial.println("
I2C 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
");
  else
    Serial.println("done
");
 
  delay(5000);           // wait 5 seconds for next scan
}

Mokili na bisika

Fichiers📁

Mabala a mangwe

  • Digistump Drivers
    Driver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
    Digistump.Drivers.zip