top of page
Search

4/3 - 4/5

  • Writer: Cormac Lynch
    Cormac Lynch
  • Apr 5, 2023
  • 1 min read

Updated: Apr 6, 2023

This week I worked more on code, I finally got the Breakbeam sensors to work with both the pins on the metro mini and the multiplexer, as well as using a display to show the number of sensors that have been activated. To do this I had to restore my code to an older version and add the multiplexer code one line at a time, in order to ensure that it wouldn't stop it from working. I also got the code to work with up to ten sensors, and even though I'm only using six sensors now, I will have more than that in the final product.




I also planned on finishing the PCB this week, but Fusion 360 wasn't working with PCBs or schematics so I was unable to finish that.






Jump Meter Code

#include <Wire.h> // Enable this line if using Arduino Uno, Mega, etc.

#include <Adafruit_GFX.h>

#include "Adafruit_LEDBackpack.h"

#include <Adafruit_SH110X.h>

#include <Fonts/FreeSans9pt7b.h>

#include <Adafruit_MCP23X17.h>





Adafruit_MCP23X17 mcp;

Adafruit_7segment matrix = Adafruit_7segment();

Adafruit_SH1107 display = Adafruit_SH1107(64, 128, &Wire);

#define SENSORPIN 3

#define SENSORPIN2 4

#define SENSORPIN3 5

#define SENSORPIN4 6

#define SENSORPIN5 7

#define SENSORPIN6 8

#define SENSORPIN7 9

#define SENSORPIN8 10

#define SENSORPIN9 11

// #define SENSORPIN10 11

// #define SENSORPIN11 12

// #define SENSORPIN12 1

// #define SENSORPIN13 2

// #define SENSORPIN14 3

// #define SENSORPIN15 4

// #define SENSORPIN16 5

// #define SENSORPIN17 6

// #define SENSORPIN18 7

//


int r = 0;

int sensor1 = 0;

int sensor2 = 0;

int sensor3 = 0;

int sensor4 = 0;

int sensor5 = 0;

int sensor6 = 0;

int sensor7 = 0;

int sensor8 = 0;

int sensor9 = 0;

// int sensor10 = 0;

// int sensor11 = 0;

// int sensor12 = 0;

// int sensor13 = 0;

// int sensor14 = 0;

// int sensor15 = 0;

// int sensor16 = 0;

// int sensor17 = 0;

// int sensor18 = 0;


// variables will change:

int sensorState = 0;

int sensorState2 = 0;

int sensorState3 = 0;

int sensorState4 = 0;

int sensorState5 = 0;

int sensorState6 = 0;


int sensorState7 = 0;

int lastState7 = 0;

int sensorState8 = 0;

int lastState8 = 0;

int sensorState9 = 0;

int lastState9 = 0;

// int sensorState10 = 0;

// int lastState10 = 0;

// int sensorState11 = 0;

// int lastState11 = 0;

// int sensorState12 = 0;

// int lastState12 = 0;


// int sensorState13 = 0;

// int lastState13 = 0;

// int sensorState14 = 0;

// int lastState14 = 0;

// int sensorState15 = 0;

// int lastState15 = 0;

// int sensorState16 = 0;

// int lastState16 = 0;

// int sensorState17 = 0;

// int lastState17 = 0;

// int sensorState18 = 0;

// int lastState18 = 0;




void setup() {

matrix.begin(0x70);

mcp.begin_I2C();


for (int i = 2; i <= 12; i++) {

pinMode(i, INPUT_PULLUP);

}


for (int i = 3; i <= 12; i++) {

digitalWrite(i, HIGH);

}

// for (int i = 0; i <= 15; i++) {

// mcp.pinMode(i, INPUT);

// }

// for (int i = 0; i <= 15; i++) {

// mcp.digitalWrite(i, HIGH);

// }

Serial.begin(9600);

}


void loop() {



sensorState = digitalRead(SENSORPIN);

sensorState2 = digitalRead(SENSORPIN2);

sensorState3 = digitalRead(SENSORPIN3);

sensorState4 = digitalRead(SENSORPIN4);

sensorState5 = digitalRead(SENSORPIN5);

sensorState6 = digitalRead(SENSORPIN6);

sensorState7 = digitalRead(SENSORPIN7);

sensorState8 = digitalRead(SENSORPIN8);

sensorState9 = digitalRead(SENSORPIN9);

// sensorState10 = digitalRead(SENSORPIN10);

// sensorState11 = digitalRead(SENSORPIN11);

// sensorState12 = mcp.digitalRead(SENSORPIN12);

// sensorState13 = mcp.digitalRead(SENSORPIN13);

// sensorState14 = mcp.digitalRead(SENSORPIN14);

// sensorState15 = mcp.digitalRead(SENSORPIN15);

// sensorState16 = mcp.digitalRead(SENSORPIN16);

// sensorState17 = mcp.digitalRead(SENSORPIN17);

// sensorState18 = mcp.digitalRead(SENSORPIN18);



if (sensorState == LOW) { // &&

sensor1 = 4;

}


if (sensorState2 == LOW) { //&&

sensor2 = 2;

}



if (sensorState3 == LOW) {

sensor3 = 1;

}



if (sensorState4 == LOW) {

sensor4 = 16;

}


if (sensorState5 == LOW) {

sensor5 = 8;

}


if (sensorState6 == LOW) {

sensor6 = 32;

}

if (sensorState7 == LOW) { // &&

sensor7 = 4;

}

if (sensorState8 == LOW) { //&&

sensor8 = 2;

}



if (sensorState9 == LOW) {

sensor9 = 1;

}


// if (sensorState10 == LOW) {

// sensor10 = 16;

// }


// if (!sensorState11) {

// sensor11 = 8;

// }


// if (!sensorState12) {

// sensor12 = 32;

// }

// if (!sensorState13) { // &&

// sensor13 = 4;

// }


// if (!sensorState14) { //&&

// sensor14 = 2;

// }


// if (!sensorState15) {

// sensor15 = 1;

// }


// if (sensorState16) {

// sensor16 = 16;

// }


// if (!sensorState17) {

// sensor17 = 8;

// }


// if (!sensorState) {

// sensor18 = 32;

// }



r = sensor1 | r;

r = sensor2 | r;

r = sensor3 | r;

r = sensor4 | r;

r = sensor5 | r;

r = sensor6 | r;

r = sensor7 | r;

r = sensor8 | r;

r = sensor9 | r;

// r = sensor10 | r;

// r = sensor11 | r;

// r = sensor12 | r;


// r = sensor13 | r;

// r = sensor14 | r;

// r = sensor15 | r;

// r = sensor16 | r;

// r = sensor17 | r;

// r = sensor18 | r;

Serial.println(r);



if (r == 4) {

Serial.println("1 IN");

matrix.println("1 IN");

matrix.writeDisplay();

}

if (r == 6) {

// Serial.println("2 IN");

matrix.println("2 IN");

matrix.writeDisplay();

}

if (r == 7) {

// Serial.println("3 IN");

matrix.println("3 IN");

matrix.writeDisplay();

}

if (r == 23) {

Serial.println("4 IN");

matrix.println("4 IN");

matrix.writeDisplay();

}

if (r == 31) {

Serial.println("5 IN");

matrix.println("5 IN");

matrix.writeDisplay();

}

if (r == 63) {

Serial.println("6 IN");

matrix.println("6 IN");

matrix.writeDisplay();

}

if (r == 67) {

Serial.println("7 IN");

matrix.println("7 IN");

matrix.writeDisplay();

}

if (r == 69) {

Serial.println("8 IN");

matrix.println("8 IN");

matrix.writeDisplay();

}

if (r == 70) {

Serial.println("9 IN");

matrix.println("9 IN");

matrix.writeDisplay();

}

// if (r == 86) {

// Serial.println("4 IN");

// matrix.println("4 IN");

// matrix.writeDisplay();

// }

// if (r == 94) {

// Serial.println("5 IN");

// matrix.println("5 IN");

// matrix.writeDisplay();

// }

// if (r == 126) {

// Serial.println("6 IN");

// matrix.println("6 IN");

// matrix.writeDisplay();

// }

// if (r == 130) {

// Serial.println("1 IN");

// matrix.println("1 IN");

// matrix.writeDisplay();

// }

// if (r == 132) {

// Serial.println("2 IN");

// matrix.println("2 IN");

// matrix.writeDisplay();

// }

// if (r == 133) {

// Serial.println("3 IN");

// matrix.println("3 IN");

// matrix.writeDisplay();

// }

// if (r == 149) {

// Serial.println("4 IN");

// matrix.println("4 IN");

// matrix.writeDisplay();

// }

// if (r == 157) {

// Serial.println("5 IN");

// matrix.println("5 IN");

// matrix.writeDisplay();

// }

// if (r == 189) {

// Serial.println("6 IN");

// matrix.println("6 IN");

// matrix.writeDisplay();

// }


delay(150);

}






 
 
 

Recent Posts

See All

Comentarios


Cormac Fan Club

©2022 Cormac Fan Club. 

bottom of page