Arduino PCF8575 8xLED LM35 Thermometer

My code:

#include <Wire.h>  // Set I2C address int address = 0x20;  int samples = 2; int collectDelay = 1000; int ledPin = 13; int tempPin = 0;  float tempC = 0;  void setup() {   pinMode(ledPin, OUTPUT);   Wire.begin();   pf575_write(word(B11111111,B11111111));   delay(200);   pf575_write(word(B00000000,B11111111));   delay(200);   pf575_write(word(B11111111,B11111111));   delay(200);   pf575_write(word(B00000000,B11111111));   delay(200);   pf575_write(word(B11111111,B11111111));   delay(1000); }  void loop() {   tempC = 0;   for(int i = 0; i <= (samples - 1); i++) {     tempC = tempC + ((5.0 * analogRead(tempPin) * 100.0) / 1024.0);     digitalWrite(ledPin, HIGH);     delay((collectDelay / 2));     digitalWrite(ledPin, LOW);     delay((collectDelay / 2));   }   tempC = tempC / (float)samples;   if(tempC > 21) {     pf575_write(word(B11111110,B11111111));   }   if(tempC > 23) {     pf575_write(word(B11111100,B11111111));   }   if(tempC > 25) {     pf575_write(word(B11111000,B11111111));   }   if(tempC > 27) {     pf575_write(word(B11110000,B11111111));   }   if(tempC > 29) {     pf575_write(word(B11100000,B11111111));   }   if(tempC > 31) {     pf575_write(word(B11000000,B11111111));   }   if(tempC > 33) {     pf575_write(word(B10000000,B11111111));   }   if(tempC > 35) {     pf575_write(word(B00000000,B11111111));   } }  void pf575_write(uint16_t data) {   Wire.beginTransmission(address);   Wire.write(highByte(data));   Wire.write(lowByte(data));   Wire.endTransmission(); }

Permalink: https://hanez.org/2015/09/24/arduino-pcf8575-i2c-8xled-lm35/

Comments