#include <OneWire.h>#include <Stepper.h>#include <Wire.h>#define address 0x44 // A0 = L (I2C address)const int steps = 200; //3200; // change this to fit the number of steps// initialize the stepper library on pinsStepper myStepper(steps, 9,10,11,12);// DS18S20 Temperature chipOneWire ds(1); // 1-Wirebyte addr[8]; // Addresvoid setup(){pinMode(13, OUTPUT); // LEDdigitalWrite(13, LOW); // LED ON// initialize the serial port:Serial.begin(9600);// set the speedmyStepper.setSpeed(8);Wire.begin(); // join i2c bus (address optional for master)// search for DSif ( !ds.search(addr)){ds.reset_search();delay(250);return;}if ( OneWire::crc8( addr, 7) != addr[7]){Serial.print("CRC is not valid!\n");return;}}byte sense=0;void loop(){byte i;byte present = 0;byte data[12];byte inByte;int dd=0;// if we get a valid byteif (Serial.available() > 0){// get incoming byte:inByte = Serial.read();Serial.print("Prijat znak: ");Serial.print( inByte, HEX);Serial.println();}if(sense){digitalWrite(13, LOW); // blik// step one revolution in one direction:Serial.println("clockwise");myStepper.step(steps);delay(50);digitalWrite(9, LOW);digitalWrite(10, LOW);digitalWrite(11, LOW);digitalWrite(12, LOW);delay(500);sense=0;}else{digitalWrite(13, HIGH); // blik// step one revolution in the other direction:Serial.println("counterclockwise");myStepper.step(-steps);delay(50);digitalWrite(9, LOW);digitalWrite(10, LOW);digitalWrite(11, LOW);digitalWrite(12, LOW);delay(500);sense=1;}// 1-Wire busds.reset();ds.select(addr);ds.write(0x44,1); // start conversiondelay(1000); // maybe 750ms is enough, maybe notpresent = ds.reset();ds.select(addr);ds.write(0xBE); // Read ScratchpadSerial.print("P=");Serial.print(present,HEX);Serial.print(" ");for ( i = 0; i < 9; i++) // we need 9 bytes{data[i] = ds.read();Serial.print(data[i], HEX);Serial.print(" ");}Serial.print(" CRC=");Serial.print( OneWire::crc8( data, 8), HEX);Serial.println();Serial.print("Light0: COMMAND=");// Setup deviceWire.beginTransmission(address);Wire.send(0x00); // sends addressWire.send(0b11000001); // setup (eye light sensing; measurement range 2 [4000 lx])Wire.endTransmission(); // stop transmitting// Delay for measurementdigitalWrite(13, HIGH); // set the LED ondelay(500);digitalWrite(13, LOW); // set the LED offdelay(500);// Connect to device and set register addressWire.beginTransmission(address);Wire.send(0x00); // sends addressWire.endTransmission(); // stop transmitting// Connect to device and request one byteWire.beginTransmission(address);Wire.requestFrom(address, 1);dd = Wire.receive();Wire.endTransmission(); // stop transmittingSerial.print(dd, HEX);Serial.print(" LSB=");// Connect to device and set register addressWire.beginTransmission(address);Wire.send(0x01); // sends addressWire.endTransmission(); // stop transmitting// Connect to device and request one byteWire.beginTransmission(address);Wire.requestFrom(address, 1);dd = Wire.receive();Wire.endTransmission(); // stop transmittingSerial.print(dd, HEX);Serial.print(" MSB=");// Connect to device and set register addressWire.beginTransmission(address);Wire.send(0x02); // sends addressWire.endTransmission(); // stop transmitting// Connect to device and request one byteWire.beginTransmission(address);Wire.requestFrom(address, 1);dd = Wire.receive();Wire.endTransmission(); // stop transmittingSerial.print(dd, HEX);Serial.print("\n");}