From 4971e86d05c714ff3630ada8851938614128b412 Mon Sep 17 00:00:00 2001 From: Abel Tim Date: Sat, 22 Jun 2024 09:17:50 +0200 Subject: update repo structure update poster add code flowchart --- OLD/sketch_apr16b.ino | 183 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 183 insertions(+) create mode 100644 OLD/sketch_apr16b.ino (limited to 'OLD/sketch_apr16b.ino') diff --git a/OLD/sketch_apr16b.ino b/OLD/sketch_apr16b.ino new file mode 100644 index 0000000..43d058e --- /dev/null +++ b/OLD/sketch_apr16b.ino @@ -0,0 +1,183 @@ +/** + * TCA9548 I2CScanner.ino -- I2C bus scanner for Arduino + * + * Based on https://playground.arduino.cc/Main/I2cScanner/ + * + */ + +#include "Wire.h" +#include "Adafruit_TCS34725.h" +#define PCAADDR 0x70 +#include + +Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_614MS, TCS34725_GAIN_1X); + +const byte SX1509_ADDRESS = 0x3E; // SX1509 I2C address +SX1509 io; // Create an SX1509 object to be used throughout +const byte SX1509_IR_SENS1 = 1; // ir sens 1 to SX1509's pin 1 +const byte SX1509_IR_SENS2 = 2; // ir sens 2 to SX1509's pin 2 +const byte SX1509_IR_SENS3 = 3; // ir sens 3 to SX1509's pin 3 +const byte SX1509_IR_SENS4 = 4; // ir sens 4 to SX1509's pin 4 +const byte SX1509_IR_SENS5 = 5; // ir sens 5 to SX1509's pin 5 +const byte SX1509_IR_SENS6 = 6; // ir sens 6 to SX1509's pin 6 +const byte SX1509_IR_SENS7 = 7; // ir sens 7 to SX1509's pin 7 +const byte SX1509_IR_SENS8 = 8; // ir sens 8 to SX1509's pin 8 + + + +int ir1 = 1; // IR sensor 1 +int ir2 = 2; // IR sensor 2 +int ir3 = 3; // IR sensor 3 +int ir4 = 4; // IR sensor 4 +int ir5 = 5; // IR sensor 5 +int ir6 = 6; // IR sensor 6 +int ir7 = 7; // IR sensor 7 +int ir8 = 8; // IR sensor 8 + +void pcaselect(uint8_t i) { + if (i > 7) return; + + Wire.beginTransmission(PCAADDR); + Wire.write(1 << i); + Wire.endTransmission(); +} + + +// standard Arduino setup() +void setup() +{ + delay(1000); + + Wire.begin(); + + Serial.begin(115200); + Serial.println("\nPCAScanner ready!"); + + + + for (uint8_t t=0; t<8; t++) { + pcaselect(t); + Serial.print("PCA Port #"); Serial.println(t); + + for (uint8_t addr = 0; addr<=127; addr++) { + if (addr == PCAADDR) continue; + + Wire.beginTransmission(addr); + if (!Wire.endTransmission()) { + Serial.print("Found I2C 0x"); Serial.println(addr,HEX); + } + } + } + Serial.println("\ndone"); + Serial.println("mark1"); + if (io.begin(SX1509_ADDRESS) == false){ + Serial.println("Failed to communicate. Check wiring and address of SX1509."); + while (1) + ; // If we fail to communicate, loop forever. + } + io.pinMode(SX1509_IR_SENS1, INPUT); + io.pinMode(SX1509_IR_SENS2, INPUT); + io.pinMode(SX1509_IR_SENS3, INPUT); + io.pinMode(SX1509_IR_SENS4, INPUT); + io.pinMode(SX1509_IR_SENS5, INPUT); + io.pinMode(SX1509_IR_SENS6, INPUT); + io.pinMode(SX1509_IR_SENS7, INPUT); + io.pinMode(SX1509_IR_SENS8, INPUT); + +} + +void loop() +{ + delay(1); + + Wire.begin(); + Serial.begin(115200); + Serial.println("\nPCAScanner ready!"); + + //port expander + Serial.println("port multiplier"); + ir1 = io.digitalRead(SX1509_IR_SENS1); + ir1 = io.digitalRead(SX1509_IR_SENS1); + ir2 = io.digitalRead(SX1509_IR_SENS2); + ir3 = io.digitalRead(SX1509_IR_SENS3); + ir4 = io.digitalRead(SX1509_IR_SENS4); + ir5 = io.digitalRead(SX1509_IR_SENS5); + ir6 = io.digitalRead(SX1509_IR_SENS6); + ir7 = io.digitalRead(SX1509_IR_SENS7); + ir8 = io.digitalRead(SX1509_IR_SENS8); + + // Define a string to store the collected data + String irsensdata = ""; + + // Read the digital state of each IR sensor pin and concatenate the data to the string + irsensdata += String(io.digitalRead(SX1509_IR_SENS1)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS2)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS3)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS4)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS5)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS6)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS7)); + irsensdata += String(io.digitalRead(SX1509_IR_SENS8)); + // Print the collected data + Serial.print("IR sensor data: ") + Serial.println(irsensdata); + + + + //collorsensor 1 + pcaselect(1); + Serial.println("PCA Port #1 collor sensor 1"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + //collorsensor 2 + pcaselect(2); + Serial.println("PCA Port #2 collor sensor 2"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + //collorsensor 3 + pcaselect(3); + Serial.println("PCA Port #3 collor sensor 3"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + //collorsensor 4 + pcaselect(4); + Serial.println("PCA Port #4 collor sensor 4"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + //collorsensor 5 + pcaselect(5); + Serial.println("PCA Port #5 collor sensor 5"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + //collorsensor 6 + pcaselect(6); + Serial.println("PCA Port #6 collor sensor 6"); + uint16_t r, g, b, c, colorTemp, lux; + tcs.getRawData(&r, &g, &b, &c); + colorTemp = tcs.calculateColorTemperature_dn40(r, g, b, c); + lux = tcs.calculateLux(r, g, b); + Serial.print("RGB: "); Serial.print(r, DEC); Serial.print(", "); Serial.print(g, DEC); Serial.print(", "); Serial.print(b, DEC); Serial.println(" "); + + + Serial.println("\ndone"); +} -- cgit v1.2.3