Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- https://www.facebook.com/photo.php?fbid=10207546406244684&set=a.3625799690043.2130107.1425549170&type=3&theater
- */
- int latchPin = 3;
- int dataPin = 4;
- int clockPin = 2;
- int pH_1=0;
- float pH_2=0;
- float pH=0;
- byte switchVar1 = 0;
- byte switchVar2 = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(latchPin, OUTPUT);
- pinMode(clockPin, OUTPUT);
- pinMode(dataPin, INPUT);
- }
- void loop() {
- digitalWrite(latchPin,1);
- delayMicroseconds(20);
- digitalWrite(latchPin,0);
- switchVar1 = shiftIn(dataPin, clockPin);
- switchVar2 = shiftIn(dataPin, clockPin);
- // Serial.println(switchVar1, BIN);
- //Serial.println(switchVar2, BIN);
- // Translating the first two digits
- switch (switchVar1) {
- case B00000110:
- pH_1=1;
- break;
- case B01011011:
- pH_1=2;
- break;
- case B01001111:
- pH_1=3;
- break;
- case B01100110:
- pH_1=4;
- break;
- case B01101101:
- pH_1=5;
- break;
- case B01111101:
- pH_1=6;
- break;
- case B00000111:
- pH_1=7;
- break;
- case B01111111:
- pH_1=8;
- break;
- case B01101111:
- pH_1=9;
- break;
- case B00111111:
- pH_1=0;
- break;
- case B10111111:
- pH_1=10;
- break;
- case B10000110:
- pH_1=11;
- break;
- case B11011011:
- pH_1=12;
- break;
- case B11001111:
- pH_1=13;
- break;
- case B11100110:
- pH_1=14;
- break;
- case B11101101:
- pH_1=15;
- break;
- case B11111101:
- pH_1=16;
- break;
- case B10000111:
- pH_1=17;
- break;
- case B11111111:
- pH_1=18;
- break;
- case B11101111:
- pH_1=19;
- default:
- pH_1=-1;
- }
- // Translating the digit after the decimal
- switch (switchVar2) {
- case B00000110:
- pH_2=0.1;
- break;
- case B01011011:
- pH_2=0.2;
- break;
- case B01001111:
- pH_2=0.3;
- break;
- case B01100110:
- pH_2=0.4;
- break;
- case B01101101:
- pH_2=0.5;
- break;
- case B01111101:
- pH_2=0.6;
- break;
- case B00000111:
- pH_2=0.7;
- break;
- case B01111111:
- pH_2=0.8;
- break;
- case B01101111:
- pH_2=0.9;
- break;
- case B00111111:
- pH_2=0.0;
- break;
- default:
- pH_2=-1;
- }
- // Calculating pH
- pH = pH_1+pH_2;
- // Avoiding garbage
- if (pH>0){
- Serial.print("pH Integer: ");
- Serial.print(pH_1);
- Serial.print(" pH Decimal: ");
- Serial.print(pH_2);
- Serial.print(" pH Measured: ");
- Serial.println(pH,1);
- } else {
- pH = 0;
- }
- delay(100);
- }
- byte shiftIn(int myDataPin, int myClockPin) {
- int i;
- int temp = 0;
- int pinState;
- byte myDataIn = 0;
- pinMode(myClockPin, OUTPUT);
- pinMode(myDataPin, INPUT);
- for (i=7; i>=0; i--)
- {
- digitalWrite(myClockPin, 0);
- delayMicroseconds(10);
- temp = digitalRead(myDataPin);
- if (temp) {
- pinState = 1;
- myDataIn = myDataIn | (1 << i);
- }
- else {
- pinState = 0;
- }
- digitalWrite(myClockPin, 1);
- }
- return myDataIn;
- }
Add Comment
Please, Sign In to add comment