Skip to content

Instantly share code, notes, and snippets.

@alexdmejias
Created May 11, 2016 03:07
Show Gist options
  • Save alexdmejias/aa518158279184f6e8a2f27bb1a4e2b8 to your computer and use it in GitHub Desktop.
Save alexdmejias/aa518158279184f6e8a2f27bb1a4e2b8 to your computer and use it in GitHub Desktop.
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include "Wire.h"
extern "C" {
#include "utility/twi.h" // from Wire library, so we can do bus scanning
}
#define TCAADDR 0x70
void tcaselect(uint8_t i) {
if (i > 7) return;
Wire.beginTransmission(TCAADDR);
Wire.write(1 << i);
Wire.endTransmission();
}
Adafruit_SSD1306 displays[] = {
Adafruit_SSD1306(-1),
Adafruit_SSD1306(-1),
Adafruit_SSD1306(-1),
Adafruit_SSD1306(-1)
};
int pinsSelection[] = {0, 5, 7, 6};
int initPadding = 1;
void displayNumber(Adafruit_SSD1306* disp, int index) {
disp->clearDisplay();
disp->setTextSize(1);
disp->setTextColor(WHITE);
disp->setCursor(0, 0);
disp->println(String(index));
disp->display();
}
void setup() {
Wire.begin();
Serial.begin(9600);
for (int i = 0; i < 4; i++) {
tcaselect(pinsSelection[i]);
displays[i].begin(SSD1306_SWITCHCAPVCC, 0x3C, false);
displayNumber(&displays[i], i + 1);
}
initPadding += 1;
}
void loop() {
for (int i = 0; i < 4; i++) {
tcaselect(pinsSelection[i]);
displayNumber(&displays[i], i + initPadding);
}
initPadding += 1;
delay(5);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment