kevinl7778         2021-02-23T18:17:17.459Z   0 Likes  Comments c_cpp #include <Wire.h>
int ledB[]{13,12,11,10,9,8,7,6,5};
int ledA[]{4,3,2, 1, 0, A0, A1, A2, A3};
int DelayTime = 50;
int comm1 = 4; 
void setup()
{
   for (int i; i<9; i++)
    {pinMode(ledB[i], OUTPUT); pinMode(ledA[i], OUTPUT);}
  for (int i = 0; i <= 8; i++) {digitalWrite(ledB[i], HIGH);}//remove for real world
  for (int i = 0; i <= 8; i++) {digitalWrite(ledA[i], HIGH);}//remove for real world
  Wire.begin(comm1);                
  Wire.onReceive(receiveEvent); 
  Serial.begin(9600);
}
void loop()
{
}
void receiveEvent(int howMany)
{int x = Wire.read(); Serial.println(x); 
 if (x==0)
 {digitalWrite(ledB[0],LOW);}
 else{digitalWrite(ledB[0],HIGH);}
}
//{for (int i=0; i<=9; i++)
 //	{a[i]= Wire.read(); Serial.println(a[i]); (a[i]==1){digitalWrite(ledB[i],LOW);}} kevinl7778         2021-02-23T17:59:32.487Z   0 Likes  Comments c_cpp ////////////////////////////////////////////////////////Include default libraries
#include <Wire.h>
////////////////////////////////////////////////////////Set up constants
int comm1 = 4; 
int comm2 = 5; 
int DelayTime = 250;
int FS[]{13,12,11,10,9,8,7,6,5};
int Knb[18];
int led[]{4,3,2,A2,A3};
int Group = 1;
int GroupLastState = 0;
int Knob = 0;
int comm = comm1;
////////////////////////////////////////////////////////Start ini proccess
void setup(){
    init1(); //Set pinmode for foot switches and leds
  	ledSet(); //Sweep through leds and set 0 on
 	Wire.begin();
  	Serial.begin(9600);}
////////////////////////////////////////////////////////////Set var's :Need to change to 0-17 all set to 0
int x = 0;
int y = 0;
////////////////////////////////////////////////////////////Main loop
void loop()
{
  Wire.beginTransmission(comm);
  //for (int i = 0; i <= 8; i++)
  //{digitalRead(FS[i]); if (digitalRead(FS[i]) == LOW)
  //{Serial.println(String("x = ")+ x);Serial.println(String("Bingo ") +FS[i]);};}
  Grouping();
  Switch(); 
  Knobs();  
  x=digitalRead(FS[0]);
  Wire.write(x);
  
  Wire.endTransmission(comm); 
  delay(100);
 // Wire.beginTransmission(comm); 
  //y=digitalRead(FS[1]);
  //Wire.write(y);
  //Serial.println(String("y = ")+ y);  
  //Wire.endTransmission(comm);
  delay(100);
}
//////////////////////////////////////////////////////////Init buttons and outputs
void init1(){
  for (int i=0; i<9; i++){pinMode(FS[i], INPUT_PULLUP);}
  for (int j=0; j<5; j++){pinMode(led[j],OUTPUT);}}
  
//////////////////////////////////////////////////////////////////////////////////////////////////////////Init Knight Rider lights
void ledSet(){ 
  for (int j = 0; j <= 4; j++) {digitalWrite(led[j], HIGH); delay(DelayTime);digitalWrite(led[j], LOW);Serial.println(String("J++") +j);}
  for (int j = 4; j >= 0; j--) {digitalWrite(led[j], HIGH); delay(DelayTime);digitalWrite(led[j], LOW);Serial.println(String("J--") +j);}
  digitalWrite(led[0], HIGH);}
//////////////////////////////////////////////////////////////////////////////////////////////////////Changing Comunication group
void Switch(){ 
  if (Group != GroupLastState){
  switch (Group) {
  case 1:
    comm = comm1;
    digitalWrite(led[1], HIGH);
    Serial.println(String("Group = ") +Group);
    Serial.println(String("comm = ") +comm);
    GroupLastState =1;
    break;
  case 2:
    comm = comm1;
    digitalWrite(led[2], HIGH);
    Serial.println(String("Group = ") +Group);
    Serial.println(String("comm = ") +comm);
    GroupLastState =2;
    break;
  case 3:
    comm = comm2;
    digitalWrite(led[3], HIGH);
    Serial.println(String("Group = ") +Group);
    Serial.println(String("comm = ") +comm);
    GroupLastState =3;
    break;
  case 4:
    comm = comm2;
    digitalWrite(led[4], HIGH);
    Serial.println(String("Group = ") +Group);
    Serial.println(String("comm = ") +comm);
    GroupLastState =4;
    break;}}}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////Switching groups
void Grouping(){if  (digitalRead(FS[1]) == LOW && digitalRead(FS[0]) == LOW) {Group += 1;if (Group > 4) {Group = 1;}for (int i=1; i<5; i++){digitalWrite(led[i], LOW);};}
               
               if  (digitalRead(FS[8]) == LOW && digitalRead(FS[7]) == LOW) {Group -= 1;if (Group < 1) {Group = 4;}for (int i=1; i<5; i++){digitalWrite(led[i], LOW);};}
               }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////Turning Knobs
void Knobs(){if  (digitalRead(FS[0,3,6]) == LOW){Knob += 1; Serial.println(String("Knob = ") +Knob);}
               else {Knob = 0;}
 }