The following diagram depicts the connection of UNO (Master) and NANO (Slave) using I2C Bus. Here, the Master sends 'temperature signal from LM35 sensor' to Slave and Slave sends (on request from Master) Pot value and 'temperature signal from DS18B20 sensor' to Master using I2C Bus.
There are questions (along with selective answers of few questions) in the attached pdf file. The interested readers may download it and practice the solutions of the questions as a 'Self Learning Approach'.
Reviews and recommendations are cordially invited.
Points i’d Suggest to review: Some typos, approximations on types and pointers, use of non C++ conformant rule for union access, the floating point example and explanation is probably a unnecessary digression, weird statement about transferring only 1 byte versus framed messages, signaling on the bus and behavior of slaves, mention the 3 typical modes, the role of the open collector, role of the 8th bit of the address, role of the reserved address, notion of deciding who is the master (Multiple masters on bus), timing challenge with slow equipment, etc...
Points i’d Suggest to review: Some typos, approximations on types and pointers, use of non C++ conformant rule for union access, the floating point example and explanation is probably a unnecessary digression, weird statement about transferring only 1 byte versus framed messages, signaling on the bus and behavior of slaves, mention the 3 typical modes, the role of the open collector, role of the 8th bit of the address, role of the reserved address, notion of deciding who is the master (Multiple masters on bus), timing challenge with slow equipment, etc...
Warm congratulation for the very constructive criticisms and directives to bring considerable improvements in my works on I2C Bus. I would like to convey my best regards for making a meaningful review of the works. I am in a position to assure you that the posted file will be extensively overhauled at the best level of my knowledge and ability in order to bring reflection of every aspect of your review. Your voluntary interest at my works has encouraged me to prepare a 'Text Book Chapter on I2C Bus' which, I am sanguine, will be lucky to receive your review/recommendation.
These questions/answers have been hurriedly prepared to distribute among my 4x50(200) undergraduate students of EEE Department after the delivery of only 3 classes (of 50 minute duration each). As the pupils have reported that the questions set (along with selective answers) has helped them to understand the 'theory of operation of the I2C Bus' in an alternative way, I have felt pleasure to share this resource with my readers of the Arduino Forum.
ans tons more... basically there are 1 380 000+ results for "I2C tutorial"
As I do also help learners from time to time, my recommendation would be to focus on the topic at hand and avoid bringing confusion by digression into non related fields (like IEEE-754 Standard which has nothing to do with I2C). Keep it simple, talk about sending structures or multi-byte data (an unsigned long would do for example)
So much thanks for putting all these reading materials at my door steps -- for sure, half of the 'light' that I will be gathering from the 'deep dark' would go to your part in the form of 'Light Upon Light'.