Go Down

Topic: Binary Input Signal (Read 1 time) previous topic - next topic

GuusT

Jun 28, 2007, 09:12 am Last Edit: Jun 28, 2007, 09:16 am by GuusT Reason: 1
Hi Guys,

I've been working with a QT-1080 sensor which has a binary output mode. It uses 3 pins for the first 3 binary numbers and a detect pin, that fires upon any contact, to make 8 combinations possible. I want to do a simple thing: light up LED's that correspond to each of the 8 touch channels.

I'm very new to arduino, so can somebody tell if this code makes any sense? or if I'm overloading the arduino with unnecessary commands?

Thanks in advance

Code: [Select]

int binPin1 = 12; //Inputs
int binPin2 = 11;
int binPin4 = 10;
int detPin = 13;

int ledPin1 = 9; //Outputs
int ledPin2 = 8;
int ledPin3 = 7;
int ledPin4 = 6;
int ledPin5 = 5;
int ledPin6 = 4;
int ledPin7 = 3;
int ledPin8 = 2;

int bin1 = 0;                    // variable for reading the pin status
int bin2 = 0;                    // variable for reading the pin status
int bin4 = 0;                    // variable for reading the pin status
int det = 0;                    // variable for reading the pin status

void setup() {
 pinMode(binPin1, INPUT);
 pinMode(binPin2, INPUT);
 pinMode(binPin4, INPUT);
 pinMode(detPin, INPUT);
 
 pinMode(ledPin1, OUTPUT);
 pinMode(ledPin2, OUTPUT);
 pinMode(ledPin3, OUTPUT);
 pinMode(ledPin4, OUTPUT);
 pinMode(ledPin5, OUTPUT);
 pinMode(ledPin6, OUTPUT);
 pinMode(ledPin7, OUTPUT);
 pinMode(ledPin8, OUTPUT);
 
}

void loop(){
 bin1 = digitalRead(binPin1);  // read input value
 bin2 = digitalRead(binPin2);  // read input value
 bin4 = digitalRead(binPin4);  // read input value
 det = digitalRead(detPin);  // read input value
 
if (det == HIGH) {
  if (bin4 == HIGH) {
    if (bin2 == HIGH) {
      if (bin1 == HIGH) {
        digitalWrite (ledPin8, HIGH);
      } else { //bin1 == LOW
        digitalWrite (ledPin7, HIGH);
      }      
    } else { //bin2 == LOW
      if (bin1 == HIGH) {
        digitalWrite (ledPin6, HIGH);
      } else { //bin1 == LOW
        digitalWrite (ledPin5, HIGH);
      }  
    }
  } else { //bin4 == LOW
    if (bin2 == HIGH) {
      if (bin1 == HIGH) {
        digitalWrite (ledPin4, HIGH);
      } else { //bin1 == LOW
        digitalWrite (ledPin3, HIGH);
      }      
    } else { //bin2 == LOW
      if (bin1 == HIGH) {
        digitalWrite (ledPin2, HIGH);
      } else { //bin1 == LOW
        digitalWrite (ledPin1, HIGH);
      }  
    }
  }
   
} else {
  digitalWrite(ledPin1, LOW);
  digitalWrite(ledPin2, LOW);
  digitalWrite(ledPin3, LOW);
  digitalWrite(ledPin4, LOW);
  digitalWrite(ledPin5, LOW);
  digitalWrite(ledPin6, LOW);
  digitalWrite(ledPin7, LOW);
  digitalWrite(ledPin8, LOW);  
}
               
}

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy