Sida loo isticmaalo I2C Scanner-ka ee Digispark si loo helo ciwaanka I2C | Robojax
Tilmaantan waxay muujinaysaa sida loo isticmaalo scanner-ka I2C oo leh guddiga horumarinta Digispark si loo aqoonsado ciwaanada I2C ee qalabka ku xiran. Ogaanshaha ciwaanka I2C waa muhiimad weyn xagga isgaarsiinta dareemayaasha iyo modules-ka kala duwan ee isticmaalaya habka I2C. Xirfaddan waxay lama huraan u tahay mashruucyo kala duwan. Tusaale ahaan, waxaad u isticmaali kartaa farsamadan si aad:
- Ku daridda dareemayaal badan oo I2C ah hal mashruuc, sida xarun kormeerka deegaanka.
- Xallinta dhibaatooyinka isgaarsiinta I2C adoo hubinaya ciwaanka qalabka khaldan.
- Si dhakhso leh u aqoonsashada ciwaanka I2C ee dareemayaasha ama modules-ka cusub ee la helay.
Habkani wuxuu si gaar ah faa'iido ugu leeyahay qalabka aan si cad ugu qornayn ciwaankooda I2C.
Qalabka/Hardware
Si aad u raacdid tilmaantan, waxaad u baahan doontaa qalabkan soo socda:
- Guddiga horumarinta Digispark (nooca USB ama Micro USB)
- Qalabka I2C (dareemayaasha, modules-ka, iwm.) kuwaas oo aad rabto inaad aqoonsato ciwaankooda
- Fiilooyinka isku xirka
Hagaha Xirista
Habka xirista wuxuu ku lug leeyahay ku xirista khadadka SDA iyo SCL ee Digispark-kaaga ee kuwa u dhigma ee qalabkaaga I2C (fiidiyowga 00:53). Bintiga SDA ee Digispark waa sida caadiga ah bintiga dhijitaalka ah 0, bintiga SCL-na waa bintiga dhijitaalka ah 1 (fiidiyowga 01:05). Hubi in bintiimaha VCC iyo GND ee qalabkaaga I2C si sax ah loogu xiro bintiimaha 5V iyo GND ee Digispark-ka siday u kala horreeyaan (fiidiyowga 01:34). Xiristu waxay la mid tahay noocyada kala duwan ee Digispark (fiidiyowga 01:44).
%%WIRING%%
Sharaxaadda Koodhka
Koodhka Arduino ee la bixiyay wuxuu isticmaalaa maktabadda Wire si uu u baaro qalabka I2C. Macquulka asaasiga ah wuxuu ku dhex jiraa shaqada loop() (fiidiyowga 02:38). Koodhku wuxuu ku wareegayaa ciwaanada I2C ee suurtagalka ah (1 ilaa 127) wuxuuna isku dayaa inuu la xiriiro ciwaan kasta adoo isticmaalaya Wire.beginTransmission(address) iyo Wire.endTransmission(). Haddii isgaarsiintu guulaysato (error == 0), koodhku wuxuu daabacaa ciwaanka kormeerka taxanaha ah. Qaybta la hagaajin karo waxay inta badan tahay heerka baud-ka taxanaha ah, kaas oo lagu dejiyay 9600 ee xariiqda Serial.begin(9600). Waxaad beddeli kartaa qiimahan haddii loo baahdo, laakiin hubi inuu la mid yahay heerka baud-ka kormeerkaaga taxanaha ah.
#include <Wire.h>
void setup() {
Wire.begin();
Serial.begin(9600); // Xariiqdani waxay dejisaa heerka baud-ka taxanaha ah.
while (!Serial);
Serial.println("\nI2C Scanner");
}
void loop() {
// ... (intaa ka hadhay koodhka) ...
}
Mashruuca/Bandhigga Tooska ah
Fiidiyowgu wuxuu muujinayaa habka aqoonsashada ciwaanada I2C ee qalabka kala duwan (fiidiyowga 03:46, 04:14, 05:17). Tilmaantu waxay muujinaysaa sida loo geliyo koodhka Digispark-ka, loo xiro qalabka I2C, loona fiiriyo ciwaanada lagu daabacay kormeerka taxanaha ah (fiidiyowga 03:11). Fiidiyowgu wuxuu muujinayaa in wax soo saarka taxanaha ah uu ka soo bixi doono daaqad kasta oo firfircoon, sida Notepad ama Microsoft Word (fiidiyowga 04:47). Wuxuu xooga saarayaa muhiimadda ku xirista qalabka ka dib marka habka gelinta uu bilaabmo, gudaha 60-ilbidhiqsi (fiidiyowga 03:27, 04:22, 05:34).
Cutubyada
- [00:00] Hordhac iyo Dulmarka Mashruuca
- [00:24] Sharaxaadda Ciwaanka I2C
- [00:53] Tilmaamaha Xirista
- [01:48] Dejinta iyo Rakibaadda Software-ka
- [02:35] Habka Gelinta Koodhka
- [03:11] Helista Ciwaanka Qalabka Koowaad
- [04:06] Helista Ciwaanka Qalabka Labaad
- [05:15] Helista Ciwaanka Qalabka Saddexaad
- [05:58] Gabagabo
// --------------------------------------
//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
}
Waad u baahan tahay
-
AliExpressPurchase Digispark Attiny85 from AliExpresss.click.aliexpress.com
Kheyraadka & Tixraacyada
-
Dibedda
Faylasha📁
Faylal kale
-
Digistump DriversDriver package for Digistump boards, including the Digispark. Contains USB drivers required to program Digistump development boards from the Arduino IDE.
Digistump.Drivers.zip
