mattieharding
Well-Known Member
- Joined
- 25/3/07
- Messages
- 80
- Reaction score
- 0
Should be positive - data - ground
Well thats mine anyway
Well thats mine anyway
that is correct matt, it looks like the silkscreen formatting has got stuffed up and the terminal is not marked correctly. with the terminals facing you it should be + on the left data in the middle and ground on the right. I have a wiring diagram in the PDF's I made up that shows that.mattieharding said:Should be positive - data - ground
Well thats mine anyway
http://aussiehomebrewer.com/topic/59563-mathos-controller/?p=963694Deevotronics said:I downloaded the INO file in this thread, but when I compile I get the following errors. Havent tried loading it into the Arduino yet, my understanding of code is it should compile with no errors. Am I missing something?
brauduino2:28: error: 'OneWire' does not name a type
brauduino2:102: error: 'PID' does not name a type
brauduino2.ino: In function 'void Temperature()':
brauduino2:196: error: 'ds' was not declared in this scope
brauduino2.ino: In function 'void PID_HEAT()':
brauduino2:240: error: 'myPID' was not declared in this scope
brauduino2:244: error: 'myPID' was not declared in this scope
brauduino2.ino: In function 'void load_pid_settings()':
brauduino2:264: error: 'myPID' was not declared in this scope
brauduino2.ino: In function 'void setup()':
brauduino2:1011: error: 'myPID' was not declared in this scope
brauduino2:1011: error: 'AUTOMATIC' was not declared in this scope
the mash in timing is there to allow for the temperature to equalise before calling for the malt, if you stop the heating when the temperature is reach you could get overshoot or undershoot, if you leave the pid going for a few minutes then it will be right on.roguenorman said:hey mathos, thanks for the tip! it happens rarely now, but its when it does its a pain, so ill do that. I am using the code with the crc check and it is working really good now. the only thing that is weird is that it gets to the mash in temp, the timer starts right away, then after the mash in timer ends it then asks to add the malt. is that normal? I thought it would get to mash in temp, then ask for malt then begin the timer.
Bertie, how are you going with yours now?
What order do you have it connected.booargy said:My temp reading is displaying zero. When I reverse the DS18B20 it reads 4095.75. i have changed the sensor 10 x and still the same? anyone have any idea what is wrong?
So which version of the code are we using now, Roguey? :-Droguenorman said:correct me if im wrong, but how the arduino works is it constantly cycles through the code. when introducing a delay, it affects the whole thing. When I had the 1 sec delay in the code, it made everything slow. it even made it slow to update the temp settings when I pushed the up arrow during a brew. Bertie, I have since reflashed my unit to the one that has the crc check, and its working the best. I want to try and get a little usb socket that I can put on my box so it can be flashed without unscrewing the box everytime. that or having 6 dupont wires hanging out that I can connect the programmer to when needed.
To add to my statement,booargy said:now it makes sense.
on my arduino board pins 10 and 11 are 100 ohms to ground. so it is always going to read zero.
looks like I need a new arduino.
cheers Kev.
I added this to mathos original code and thats what I am using currently. I just did a brew with it on the weekend and it was good. not 1 bad read. Here is the code.Lance2 said:Hi I've added CRC checks to temperature readings. Can't figure out how to attach a file so here are the changes (based on comparison with brauduino2.txt posted by Matho in this thread 10th June):
Line 71: Change size of data from 2 to 9:
byte data[2];
byte data[9];
Line 213: Read 9 bytes instead of 2 and then do a crc check:
for ( int i = 0; i < 2; i++) { // we need 2 bytes
data = ds.read();
}
for ( int i = 0; i < 9; i++) { // we need 9 bytes
data = ds.read();
}
// if checksum fails start a new conversion right away
if ( OneWire::crc8(data, 8) != data[8]) {
ds.reset();
ds.skip();
ds.write(0x44,0);
Conv_start = true;
return;
}
Enter your email address to join: