File tree Expand file tree Collapse file tree 2 files changed +65
-0
lines changed
PiCowbell_Proto/arduino_i2c_scan Expand file tree Collapse file tree 2 files changed +65
-0
lines changed Original file line number Diff line number Diff line change
1
+ // SPDX-FileCopyrightText: 2021 Carter Nelson for Adafruit Industries
2
+ // SPDX-FileCopyrightText: 2022 Kattni Rembor for Adafruit Industries
3
+ //
4
+ // SPDX-License-Identifier: MIT
5
+ // --------------------------------------
6
+ // PiCowbell Proto and Pico I2C scan code.
7
+ //
8
+ // Modified from https://playground.arduino.cc/Main/I2cScanner/
9
+ // --------------------------------------
10
+
11
+ #include < Wire.h>
12
+
13
+ // Wire uses GPIO4 (SDA) and GPIO5 (SCL) automatically.
14
+ #define WIRE Wire
15
+
16
+ void setup () {
17
+ WIRE.begin ();
18
+
19
+ Serial.begin (9600 );
20
+ while (!Serial)
21
+ delay (10 );
22
+ Serial.println (" \n PiCowbell Proto Pico I2C Scanner" );
23
+ }
24
+
25
+
26
+ void loop () {
27
+ byte error, address;
28
+ int nDevices;
29
+
30
+ Serial.println (" Scanning..." );
31
+
32
+ nDevices = 0 ;
33
+ for (address = 1 ; address < 127 ; address++ )
34
+ {
35
+ // The i2c_scanner uses the return value of
36
+ // the Write.endTransmission to see if
37
+ // a device did acknowledge the address.
38
+ WIRE.beginTransmission (address);
39
+ error = WIRE.endTransmission ();
40
+
41
+ if (error == 0 )
42
+ {
43
+ Serial.print (" I2C device found at address 0x" );
44
+ if (address<16 )
45
+ Serial.print (" 0" );
46
+ Serial.print (address,HEX);
47
+ Serial.println (" !" );
48
+
49
+ nDevices++;
50
+ }
51
+ else if (error==4 )
52
+ {
53
+ Serial.print (" Unknown error at address 0x" );
54
+ if (address<16 )
55
+ Serial.print (" 0" );
56
+ Serial.println (address,HEX);
57
+ }
58
+ }
59
+ if (nDevices == 0 )
60
+ Serial.println (" No I2C devices found\n " );
61
+ else
62
+ Serial.println (" done\n " );
63
+
64
+ delay (5000 ); // wait 5 seconds for next scan
65
+ }
You can’t perform that action at this time.
0 commit comments