Vs: ATtiny ei taha suhelda anduritega
Ei ei, m6te oli piirata ADC sisendi pinge VCC/2 peale.
Ei ei, m6te oli piirata ADC sisendi pinge VCC/2 peale.
/* Adafruit Arduino - Lesson 12. Light and Temperature */ #include <LiquidCrystal.h> int INtempPin = A0; int BACKtempPin = A1; float SETtempC = 25.0; int ButtonA = A2; int ButtonB = 6; // BS E D4 D5 D6 D7 LiquidCrystal lcd(7, 8, 9, 10, 11, 12); void setup() { lcd.begin(16, 2); //set the LED pins as outputs for (int pinNumber = 3; pinNumber < 5; pinNumber++) { pinMode(pinNumber, OUTPUT); digitalWrite(pinNumber, LOW); pinMode(2,INPUT_PULLUP); digitalRead(pinNumber); digitalWrite(pinNumber, LOW); } } void loop() { // Display Temperature in C int INtempReading = analogRead(INtempPin); float INtempVolts = INtempReading * 5.0 / 1024.0; float INtempC = (INtempVolts - 0.5) * 100.0 + 50; // ---------------- lcd.print("I"); lcd.setCursor(1, 0); lcd.print(INtempC); lcd.setCursor(3, 0); lcd.print((char)223); // Display BACK Temperature in C int BACKtempReading = analogRead(BACKtempPin); float BACKtempVolts = BACKtempReading * 5.0 / 1024.0; float BACKtempC = (BACKtempVolts - 0.5) * 100.0 + 50; lcd.setCursor(4, 0); lcd.print("B"); lcd.setCursor(5, 0); lcd.print(BACKtempC); lcd.setCursor(7, 0); lcd.print((char)223); // Display SET Temperature in C //int SETtempReading = analogRead(SETtempPin); //float SETtempVolts = SETtempReading * 5.0 / 1024.0; //float SETtempC = (SETtempVolts) * 12 +5; //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //button increase //pressed = button(high); if(ButtonA = HIGH) { SETtempC++; } else if(ButtonB = HIGH) { SETtempC--; } lcd.setCursor(8, 0); lcd.print("S"); lcd.setCursor(9, 0); lcd.print(SETtempC); lcd.setCursor(13, 0); lcd.print((char)223); lcd.setCursor(14, 0); if (SETtempC +1 < BACKtempC) { lcd.print("CO"); } else if (SETtempC > 1+ BACKtempC){ lcd.print("WO"); } else if ((SETtempC - BACKtempC) <1 > -1){ lcd.print("OK"); } //lcd.print("II"); lcd.setCursor(0, 1); lcd.print("ERTEC"); lcd.setCursor(7, 1); lcd.print(200*4.19*(INtempC-BACKtempC)/3600); lcd.setCursor(13, 1); lcd.print("KW "); delay(500); //could down if (SETtempC +1 < BACKtempC) { digitalWrite(3, HIGH); delay(1000); digitalWrite(3, LOW); delay(1000); } //warm up else if (SETtempC -1 > BACKtempC) { digitalWrite(4, HIGH); delay(1000); digitalWrite(4, LOW); delay(1000); } }
#include <OneWire.h> // DS18S20 Temperature chip i/o OneWire ds(10); // on pin 10 void setup(void) { // initialize inputs/outputs // start serial port Serial.begin(9600); } void loop(void) { byte i; byte present = 0; byte data[12]; byte addr[8]; ds.reset_search(); if ( !ds.search(addr)) { Serial.print("No more addresses.\n"); ds.reset_search(); return; } Serial.print("R="); for( i = 0; i < 8; i++) { Serial.print(addr[i], HEX); Serial.print(" "); } if ( OneWire::crc8( addr, 7) != addr[7]) { Serial.print("CRC is not valid!\n"); return; } if ( addr[0] == 0x10) { Serial.print("Device is a DS18S20 family device.\n"); } else if ( addr[0] == 0x28) { Serial.print("Device is a DS18B20 family device.\n"); } else { Serial.print("Device family is not recognized: 0x"); Serial.println(addr[0],HEX); return; } ds.reset(); ds.select(addr); ds.write(0x44,1); // start conversion, with parasite power on at the end delay(5000); // maybe 750ms is enough, maybe not // we might do a ds.depower() here, but the reset will take care of it. present = ds.reset(); ds.select(addr); ds.write(0xBE); // Read Scratchpad Serial.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(); }
Comment