Ehitan kütte kontrollerit.
Kuna ATtiny45 ei ole nõus serial.print väljastama siis2 nädalat pimedas kobamist ja katsetamist on pea pulki täis ajanud.
Kaks analoog andurit LM35 ATtiny45 3. ja 4. jala otsas.
Potekas 2 jala otsas ja väljund 2 kanalilise triak mooduliga 1. ja 0. digijala küljes. keskkütte 3D kraani keeramas.
Kui andurid ja potekas arduino küljes maketeerimislaual siis töötab ilusti.
Kohe, kui üritan AT45 külge autonoomseks ajada hakkavad näidud jooksma ja aparaat muutub kasutuskõlbmatuks.
Kartsin, et äkki 45 ei oska matemaatikat. Lisasin include "math.h"
Pagaldasin 100 mikrofaradise lüüdi toitele otse 45 juurde. Proovisin film kondekat toppida potekale. Kohati jääb tunne, et poteka keeramisel jooksevad andurite näidud käest ära.
Proge loogika on selline, et süsteemi mineva "inin" andurit kontrollitakse avarii temp ja keeratakse jahedamaks. Kui temp norm siis võrreldakse poteka "set" väärtust anduri "back" väärtusega ja keritakse 3D kraani vastavalt. Poteka väärtus peaks olema 5 kraadist kuni 70 kraadini.
Palun abi. Kuidas saaks asja toimima. Kuhu peaksin mida toppima, et müra maha saada? ja kas ATtiny45 oskab serial.printi näidata?
Progest on näha, et sensor 2 paneb totaalselt segast. Arduino küljes sätin teda korrutades 0,49 ja ATtiny küljes tuleb 7,9 korrutada. Läbi häda saab neid näite testida seda esimest avarii argumenti katsetades toa tempiga 24 kraadi juures.
Kuna ATtiny45 ei ole nõus serial.print väljastama siis2 nädalat pimedas kobamist ja katsetamist on pea pulki täis ajanud.
Kaks analoog andurit LM35 ATtiny45 3. ja 4. jala otsas.
Potekas 2 jala otsas ja väljund 2 kanalilise triak mooduliga 1. ja 0. digijala küljes. keskkütte 3D kraani keeramas.
Kui andurid ja potekas arduino küljes maketeerimislaual siis töötab ilusti.
Kohe, kui üritan AT45 külge autonoomseks ajada hakkavad näidud jooksma ja aparaat muutub kasutuskõlbmatuks.
Kartsin, et äkki 45 ei oska matemaatikat. Lisasin include "math.h"
Pagaldasin 100 mikrofaradise lüüdi toitele otse 45 juurde. Proovisin film kondekat toppida potekale. Kohati jääb tunne, et poteka keeramisel jooksevad andurite näidud käest ära.
Proge loogika on selline, et süsteemi mineva "inin" andurit kontrollitakse avarii temp ja keeratakse jahedamaks. Kui temp norm siis võrreldakse poteka "set" väärtust anduri "back" väärtusega ja keritakse 3D kraani vastavalt. Poteka väärtus peaks olema 5 kraadist kuni 70 kraadini.
Palun abi. Kuidas saaks asja toimima. Kuhu peaksin mida toppima, et müra maha saada? ja kas ATtiny45 oskab serial.printi näidata?
Progest on näha, et sensor 2 paneb totaalselt segast. Arduino küljes sätin teda korrutades 0,49 ja ATtiny küljes tuleb 7,9 korrutada. Läbi häda saab neid näite testida seda esimest avarii argumenti katsetades toa tempiga 24 kraadi juures.
#include "math.h"
//float sensor1Value;
//float sensor2Value;
//float sensor3Value;
const float sensor1Pin = 3;
const float sensor2Pin = 4;
const float sensor3Pin = 2;
void setup() {
// open a serial connection to display values
// Serial.begin(9600);
// set the LED pins as outputs
// the for() loop saves some extra coding
for (int pinNumber = 0; pinNumber < 3; pinNumber++) {
pinMode(pinNumber, OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
// read the value on AnalogIn pin 0
// and store it in a variable
int sensor1Val = analogRead(sensor1Pin);
float inin = sensor1Val * 0.47;
int sensor2Val = analogRead(sensor2Pin);
float back = sensor2Val * 7.9;
int sensor3Val = analogRead(sensor3Pin);
float set = sensor3Val* 0.49;
// send the 10-bit sensor value out the serial port
//Serial.print(" ININ ");
//Serial.println(inin);
//Serial.print("BACK ");
//Serial.println(back);
//Serial.print(" SET ");
//Serial.println(set);
// IN temp > 80 siis 2 sek 3D jahutamist
// IN temp < 80 siis 3D vastavalt BACK <> SET
if (inin > 24) {
digitalWrite(0, HIGH);
delay(50);
digitalWrite(0, LOW);
delay(30);
}
else if (inin < 24) {
if (back + 2 < set) {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(600);
} // attiny45 jalg 1 sinine
else if (back - 2 > set) {
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(1, LOW);
delay(600);
}
}
delay(1);
}
//float sensor1Value;
//float sensor2Value;
//float sensor3Value;
const float sensor1Pin = 3;
const float sensor2Pin = 4;
const float sensor3Pin = 2;
void setup() {
// open a serial connection to display values
// Serial.begin(9600);
// set the LED pins as outputs
// the for() loop saves some extra coding
for (int pinNumber = 0; pinNumber < 3; pinNumber++) {
pinMode(pinNumber, OUTPUT);
digitalWrite(pinNumber, LOW);
}
}
void loop() {
// read the value on AnalogIn pin 0
// and store it in a variable
int sensor1Val = analogRead(sensor1Pin);
float inin = sensor1Val * 0.47;
int sensor2Val = analogRead(sensor2Pin);
float back = sensor2Val * 7.9;
int sensor3Val = analogRead(sensor3Pin);
float set = sensor3Val* 0.49;
// send the 10-bit sensor value out the serial port
//Serial.print(" ININ ");
//Serial.println(inin);
//Serial.print("BACK ");
//Serial.println(back);
//Serial.print(" SET ");
//Serial.println(set);
// IN temp > 80 siis 2 sek 3D jahutamist
// IN temp < 80 siis 3D vastavalt BACK <> SET
if (inin > 24) {
digitalWrite(0, HIGH);
delay(50);
digitalWrite(0, LOW);
delay(30);
}
else if (inin < 24) {
if (back + 2 < set) {
digitalWrite(0, HIGH);
delay(1000);
digitalWrite(0, LOW);
delay(600);
} // attiny45 jalg 1 sinine
else if (back - 2 > set) {
digitalWrite(1, HIGH);
delay(1000);
digitalWrite(1, LOW);
delay(600);
}
}
delay(1);
}
Comment