photocell to led matrix touch display

Dependencies:   mbed Adafruit_LEDBackpack USBDevice

Committer:
chessemaster5000
Date:
Wed Dec 05 22:18:09 2018 +0000
Revision:
0:c88ac8c87673
Never Eat Pears

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chessemaster5000 0:c88ac8c87673 1 #include "mbed.h"
chessemaster5000 0:c88ac8c87673 2 #include "Adafruit_LEDBackpack.h"
chessemaster5000 0:c88ac8c87673 3 #include "Adafruit_GFX.h"
chessemaster5000 0:c88ac8c87673 4
chessemaster5000 0:c88ac8c87673 5 I2C i2c(p9, p10); //declare led matrix 12c ports
chessemaster5000 0:c88ac8c87673 6
chessemaster5000 0:c88ac8c87673 7 Adafruit_8x8matrix matrix = Adafruit_8x8matrix(&i2c); //set up matrix
chessemaster5000 0:c88ac8c87673 8 //AnalogIn sensor0(p16);
chessemaster5000 0:c88ac8c87673 9 //AnalogIn sensor1(p17);
chessemaster5000 0:c88ac8c87673 10 //AnalogIn sensor2(p18); // declare photocells and their pins
chessemaster5000 0:c88ac8c87673 11 //AnalogIn sensor3(p19);
chessemaster5000 0:c88ac8c87673 12 //AnalogIn sensor4(p20);
chessemaster5000 0:c88ac8c87673 13 //DigitalOut pin8 (p8); //power
chessemaster5000 0:c88ac8c87673 14
chessemaster5000 0:c88ac8c87673 15 AnalogIn cell0(p15);
chessemaster5000 0:c88ac8c87673 16 AnalogIn cell1(p16);
chessemaster5000 0:c88ac8c87673 17 AnalogIn cell2(p17);
chessemaster5000 0:c88ac8c87673 18 AnalogIn cell3(p18);
chessemaster5000 0:c88ac8c87673 19 AnalogIn cell4(p19);
chessemaster5000 0:c88ac8c87673 20 AnalogIn cell5(p20);
chessemaster5000 0:c88ac8c87673 21 DigitalOut pin8(p8);
chessemaster5000 0:c88ac8c87673 22
chessemaster5000 0:c88ac8c87673 23 float threshold = 0.2; //Whatever makes a good sensitivity level
chessemaster5000 0:c88ac8c87673 24
chessemaster5000 0:c88ac8c87673 25 int leds[8][8];
chessemaster5000 0:c88ac8c87673 26 int row;
chessemaster5000 0:c88ac8c87673 27 int col;
chessemaster5000 0:c88ac8c87673 28
chessemaster5000 0:c88ac8c87673 29 int main() {
chessemaster5000 0:c88ac8c87673 30 matrix.begin(0x70);
chessemaster5000 0:c88ac8c87673 31 pin8=1; //power on
chessemaster5000 0:c88ac8c87673 32
chessemaster5000 0:c88ac8c87673 33 while(1) {
chessemaster5000 0:c88ac8c87673 34 for (row = 7; row >=1; row--)
chessemaster5000 0:c88ac8c87673 35 for (col = 0; col <=7; col++)
chessemaster5000 0:c88ac8c87673 36 leds[row][col] = leds[row+1][col]; // These nested loops move everything down one row, except the top row
chessemaster5000 0:c88ac8c87673 37
chessemaster5000 0:c88ac8c87673 38 leds[0][0] = (int)(cell0 + threshold); // These assignments fill the top row with the cell values
chessemaster5000 0:c88ac8c87673 39 leds[0][1] = (int)(cell1 + threshold); // Each value should be 0 or 1
chessemaster5000 0:c88ac8c87673 40 leds[0][2] = (int)(cell2 + threshold);
chessemaster5000 0:c88ac8c87673 41 leds[0][3] = (int)(cell3 + threshold);
chessemaster5000 0:c88ac8c87673 42 leds[0][4] = (int)(cell4 + threshold);
chessemaster5000 0:c88ac8c87673 43 leds[0][5] = (int)(cell5 + threshold);
chessemaster5000 0:c88ac8c87673 44
chessemaster5000 0:c88ac8c87673 45 printf("Value0 = %f\r\n", cell0.read());
chessemaster5000 0:c88ac8c87673 46 printf("Value1 = %f\r\n", cell1.read());
chessemaster5000 0:c88ac8c87673 47 printf("Value2 = %f\r\n", cell2.read());
chessemaster5000 0:c88ac8c87673 48 printf("Value3 = %f\r\n", cell3.read());
chessemaster5000 0:c88ac8c87673 49 printf("Value4 = %f\r\n", cell4.read());
chessemaster5000 0:c88ac8c87673 50 wait(1.0);
chessemaster5000 0:c88ac8c87673 51
chessemaster5000 0:c88ac8c87673 52 matrix.clear();
chessemaster5000 0:c88ac8c87673 53
chessemaster5000 0:c88ac8c87673 54 if(cell0 <= 0.2){
chessemaster5000 0:c88ac8c87673 55 matrix.drawPixel (0, 0, LED_ON);}
chessemaster5000 0:c88ac8c87673 56 else matrix.drawPixel (0, 0, LED_OFF);
chessemaster5000 0:c88ac8c87673 57
chessemaster5000 0:c88ac8c87673 58 if(cell1 <= 0.2){
chessemaster5000 0:c88ac8c87673 59 matrix.drawPixel (1, 0, LED_ON);}
chessemaster5000 0:c88ac8c87673 60 else matrix.drawPixel (1, 0, LED_OFF);
chessemaster5000 0:c88ac8c87673 61
chessemaster5000 0:c88ac8c87673 62 if(cell2 <= 0.2){
chessemaster5000 0:c88ac8c87673 63 matrix.drawPixel (2, 0, LED_ON);}
chessemaster5000 0:c88ac8c87673 64 else matrix.drawPixel (2, 0, LED_OFF);
chessemaster5000 0:c88ac8c87673 65
chessemaster5000 0:c88ac8c87673 66 if(cell3 <= 0.2){
chessemaster5000 0:c88ac8c87673 67 matrix.drawPixel (3, 0, LED_ON);}
chessemaster5000 0:c88ac8c87673 68 else matrix.drawPixel (3, 0, LED_OFF);
chessemaster5000 0:c88ac8c87673 69
chessemaster5000 0:c88ac8c87673 70 if(cell4 <= 0.2){
chessemaster5000 0:c88ac8c87673 71 matrix.drawPixel (4, 0, LED_ON);}
chessemaster5000 0:c88ac8c87673 72 else matrix.drawPixel (4, 0, LED_OFF);
chessemaster5000 0:c88ac8c87673 73
chessemaster5000 0:c88ac8c87673 74 matrix.writeDisplay(); // write the changes we just made to the display
chessemaster5000 0:c88ac8c87673 75 wait(0.2);
chessemaster5000 0:c88ac8c87673 76 }
chessemaster5000 0:c88ac8c87673 77 }