Skip to content

Commit

Permalink
Adding I2C Scanner for faster config
Browse files Browse the repository at this point in the history
  • Loading branch information
WonITKorea committed Aug 8, 2024
1 parent 444b408 commit 33cbda4
Show file tree
Hide file tree
Showing 3 changed files with 85 additions and 14 deletions.
2 changes: 1 addition & 1 deletion .vscode/arduino.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"sketch": "code\\Testing_Crate\\TestCode\\TestCode.ino",
"sketch": "code\\Testing_Crate\\I2C_Scanner\\I2C_Scanner.ino",
"board": "rp2040:rp2040:rpipico",
"port": "COM4",
"output": "../build",
Expand Down
14 changes: 1 addition & 13 deletions code/SKIDAQ_Main/SKIDAQ_Main.ino
Original file line number Diff line number Diff line change
Expand Up @@ -40,23 +40,11 @@
#include <Adafruit_ADS1X15.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_ADXL345_U.h>
#include <DHT.h>
#include <DHT_U.h>
#include <SoftwareSerial.h>
#include "DFRobot_MCP2515.h"
#include <SPI.h>

#include <Wire.h>

// ——————————————————————————————————————————————————————————————————————————————
// DHT Temp/Humidity Sensor Configuration
// ——————————————————————————————————————————————————————————————————————————————
#define DHTPIN 10 // DHT Signal Pin
#define DHTTYPE DHT22 // DHT Sensor type: DHT22
DHT_Unified dht(DHTPIN, DHTTYPE);
uint32_t delayMS;
float temperature = 0.0; // defining global variable for using on CAN network
float humidity = 0.0;

// ——————————————————————————————————————————————————————————————————————————————
// CAN Interface Configuration
Expand Down Expand Up @@ -572,7 +560,7 @@ void ADS1115_Init(void)
// ads.setGain(GAIN_FOUR); // 4x gain +/- 1.024V 1 bit = 0.5mV 0.03125mV
// ads.setGain(GAIN_EIGHT); // 8x gain +/- 0.512V 1 bit = 0.25mV 0.015625mV
// ads.setGain(GAIN_SIXTEEN); // 16x gain +/-
if (!ads.begin())
if (!ads.begin(0x))
{
Serial.println("Error: Check ADS1115 Wiring");
while (1)
Expand Down
83 changes: 83 additions & 0 deletions code/Testing_Crate/I2C_Scanner/I2C_Scanner.ino
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
// --------------------------------------
// 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
}

0 comments on commit 33cbda4

Please sign in to comment.