SharpIR.cpp
00001
00002 #include <WProgram.h>
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 int pDat = 14;
00014 int pClk = 15;
00015
00016
00017 void setupSensor()
00018 {
00019 pinMode(pClk, OUTPUT);
00020 pinMode(pDat, INPUT);
00021 digitalWrite(pClk, LOW);
00022 }
00023
00024 byte readSensor()
00025 {
00026 byte dataIn = 0;
00027 digitalWrite(pClk, LOW);
00028 while(digitalRead(pDat) != HIGH);
00029
00030 digitalWrite(pClk, HIGH);
00031 for(int i=0; i<8; i++)
00032 {
00033 digitalWrite(pClk, LOW);
00034 dataIn = (dataIn << 1) | digitalRead(pDat);
00035 digitalWrite(pClk, HIGH);
00036
00037 }
00038 delay(1);
00039 return dataIn;
00040 }
00041
00042 void setup() {
00043 beginSerial(19200);
00044 setupSensor();
00045 Serial.println("Setup Done");
00046 }
00047
00048 void loop() {
00049
00050 int dist = readSensor();
00051 Serial.print("IR: ");
00052 Serial.println(dist);
00053
00054 }
00055
00056 int main()
00057 {
00058 init();
00059 setup();
00060
00061 for(;;)
00062 loop();
00063
00064 return 0;
00065 }
00066
00067