Add code to test I²C in practise
This commit is contained in:
		
							
								
								
									
										107
									
								
								arduino/I2CPractise/I2CPractise.ino
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										107
									
								
								arduino/I2CPractise/I2CPractise.ino
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,107 @@
 | 
			
		||||
/*
 | 
			
		||||
   Copyright (C) 2012 Nathanaël Restori
 | 
			
		||||
 | 
			
		||||
   Permission is hereby granted, free of charge, to any person
 | 
			
		||||
   obtaining a copy of this software and associated documentation
 | 
			
		||||
   files (the "Software"), to deal in the Software without
 | 
			
		||||
   restriction, including without limitation the rights to use, copy,
 | 
			
		||||
   modify, merge, publish, distribute, sublicense, and/or sell copies
 | 
			
		||||
   of the Software, and to permit persons to whom the Software is
 | 
			
		||||
   furnished to do so, subject to the following conditions:
 | 
			
		||||
 | 
			
		||||
   The above copyright notice and this permission notice shall be
 | 
			
		||||
   included in all copies or substantial portions of the Software.
 | 
			
		||||
 | 
			
		||||
   THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
 | 
			
		||||
   EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 | 
			
		||||
   MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 | 
			
		||||
   NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
 | 
			
		||||
   BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
 | 
			
		||||
   ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
 | 
			
		||||
   CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 | 
			
		||||
   SOFTWARE.
 | 
			
		||||
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
#include <Wire.h>
 | 
			
		||||
#include "Chronodot.h"
 | 
			
		||||
 | 
			
		||||
#define CHRONODOT_ADDRESS 0x68
 | 
			
		||||
 | 
			
		||||
static uint8_t bcd2bin (uint8_t val) { return val - 6 * (val >> 4); }
 | 
			
		||||
 | 
			
		||||
void setup() {
 | 
			
		||||
    Serial.begin(9600);
 | 
			
		||||
 | 
			
		||||
    Wire.begin();
 | 
			
		||||
 | 
			
		||||
    Serial.println("BEGIN transmission");
 | 
			
		||||
 | 
			
		||||
    Wire.beginTransmission(CHRONODOT_ADDRESS);
 | 
			
		||||
    Wire.write((byte)0);
 | 
			
		||||
    Wire.endTransmission();
 | 
			
		||||
 | 
			
		||||
    Wire.requestFrom(CHRONODOT_ADDRESS, 19);
 | 
			
		||||
    byte blah[20];
 | 
			
		||||
    int i;
 | 
			
		||||
    for(i=0; i<20; i++) {
 | 
			
		||||
        blah[i] = Wire.read();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    Serial.println("END transmission");
 | 
			
		||||
 | 
			
		||||
    uint8_t ss = bcd2bin(blah[0] & 0x7F);
 | 
			
		||||
    uint8_t mm = bcd2bin(blah[1]);
 | 
			
		||||
    uint8_t hh = bcd2bin(blah[2]);
 | 
			
		||||
    uint8_t d = bcd2bin(blah[4]);
 | 
			
		||||
    uint8_t m = bcd2bin(blah[5]);
 | 
			
		||||
    uint16_t y = bcd2bin(blah[6]) + 2000;
 | 
			
		||||
    float ttc  = (float)(int)blah[17];
 | 
			
		||||
    byte portion = blah[18];
 | 
			
		||||
    if(portion == 0b01000000) ttc += 0.25;
 | 
			
		||||
    if(portion == 0b10000000) ttc += 0.5;
 | 
			
		||||
    if(portion == 0b11000000) ttc += 0.75;
 | 
			
		||||
    float degF  = (((ttc * 9.0) / 5.0) + 32.5);
 | 
			
		||||
    int ttf  = (int)degF;
 | 
			
		||||
    //return DateTime (y, m, d, hh, mm, ss, ttf, ttc);
 | 
			
		||||
 | 
			
		||||
    Serial.println();
 | 
			
		||||
    Serial.println("What\tByte\tCorrespondance");
 | 
			
		||||
    Serial.println("------------------------------");
 | 
			
		||||
    Serial.print("seconds\t"); Serial.print(blah[0]); Serial.print("\t"); Serial.println(ss);
 | 
			
		||||
    Serial.print("minutes\t"); Serial.print(blah[1]); Serial.print("\t"); Serial.println(mm);
 | 
			
		||||
    Serial.print("hours\t"); Serial.print(blah[2]); Serial.print("\t"); Serial.println(hh);
 | 
			
		||||
    Serial.print("days\t"); Serial.print(blah[4]); Serial.print("\t"); Serial.println(d);
 | 
			
		||||
    Serial.print("monthes\t"); Serial.print(blah[5]); Serial.print("\t"); Serial.println(m);
 | 
			
		||||
    Serial.print("years\t"); Serial.print(blah[6]); Serial.print("\t"); Serial.println(y);
 | 
			
		||||
    Serial.print("temp\t"); Serial.print(blah[17]); Serial.print("\t"); Serial.println(ttc);
 | 
			
		||||
    Serial.print("temp\t"); Serial.print(blah[18]); Serial.print("\t"); Serial.println(portion);
 | 
			
		||||
 | 
			
		||||
    Serial.println();
 | 
			
		||||
    Serial.println("Byte\tContent");
 | 
			
		||||
    Serial.println("---------------");
 | 
			
		||||
    Serial.print("0\t"); Serial.println(blah[0]);
 | 
			
		||||
    Serial.print("1\t"); Serial.println(blah[1]);
 | 
			
		||||
    Serial.print("2\t"); Serial.println(blah[2]);
 | 
			
		||||
    Serial.print("3\t"); Serial.println(blah[3]);
 | 
			
		||||
    Serial.print("4\t"); Serial.println(blah[4]);
 | 
			
		||||
    Serial.print("5\t"); Serial.println(blah[5]);
 | 
			
		||||
    Serial.print("6\t"); Serial.println(blah[6]);
 | 
			
		||||
    Serial.print("7\t"); Serial.println(blah[7]);
 | 
			
		||||
    Serial.print("8\t"); Serial.println(blah[8]);
 | 
			
		||||
    Serial.print("9\t"); Serial.println(blah[9]);
 | 
			
		||||
    Serial.print("10\t"); Serial.println(blah[10]);
 | 
			
		||||
    Serial.print("11\t"); Serial.println(blah[11]);
 | 
			
		||||
    Serial.print("12\t"); Serial.println(blah[12]);
 | 
			
		||||
    Serial.print("13\t"); Serial.println(blah[13]);
 | 
			
		||||
    Serial.print("14\t"); Serial.println(blah[14]);
 | 
			
		||||
    Serial.print("15\t"); Serial.println(blah[15]);
 | 
			
		||||
    Serial.print("16\t"); Serial.println(blah[16]);
 | 
			
		||||
    Serial.print("17\t"); Serial.println(blah[17]);
 | 
			
		||||
    Serial.print("18\t"); Serial.println(blah[18]);
 | 
			
		||||
    Serial.print("19\t"); Serial.println(blah[19]);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void loop() {
 | 
			
		||||
    delay(1000);
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user