Presstest v1.0
Note: view this code in Edit mode in Mediawiki to see the correct formatting.
//This code is in the public domain. By Marcin Jakubowski on Nov. 5, 2009 //Control code for running The Liberator high performance CEB press; this code yields 6 bricks per minute //with a 5 inch main cylinder and a 2.5 inch secondary cylinder.
int mainup = 5; // Sets pinout on the Arduino - pins 5,6,10, and 11 are used. int maindown = 6; int secin = 10; int secout = 11; unsigned long time = 800; float factor1 = 3.0; // Main cylinder moves down 7 inches to load soil. float factor2 = 0.9; // Sec. cylinder moves to pressing position, or 7 inches out. float factor3 = 2.0; // Main moves up 4 inches to compress the brick. float factor4 = 0.1; // Main moves down 1/4" to release pressure. float factor5 = 1.0; // Sec. opens drawer, or 7 inches out. float factor6 = 2.0; // Main ejects brick from compression chamber, 4.5 inches up.
// Extra half inch accoounts for extra thick bricks.
float factor7 = 2; // Sec. cylinder moves 14 inches in to eject block from machine.
// Cycle of 7 steps repeats.
void setup() { pinMode(mainup, OUTPUT); pinMode(maindown, OUTPUT); pinMode(secin, OUTPUT); pinMode(secout, OUTPUT); // To initialize cylinders: // 1. Release drawer (if pressured).
digitalWrite(maindown, HIGH); delay(time*.2); digitalWrite(maindown, LOW);
// 2. Move drawer all the way out.
digitalWrite(secout, HIGH); delay(time*1.31); digitalWrite(secout, LOW);
// 3. Eject any block from compression chamber.
digitalWrite(mainup, HIGH); delay(time*4); digitalWrite(mainup, LOW);
// 4. Eject any block from machine
digitalWrite(secin, HIGH); delay(time*1.75); digitalWrite(secin, LOW);
}
void loop() { // Main cylinder moves down 8 inches to load soil. digitalWrite(maindown, HIGH); delay(time*factor1); digitalWrite(maindown, LOW);
// Sec. cylinder moves to pressing position, or 7 inches out. digitalWrite(secout, HIGH); delay(time*factor2); digitalWrite(secout, LOW);
// Main moves up 4 inches to compress the brick. digitalWrite(mainup, HIGH); delay(time*factor3); digitalWrite(mainup, LOW);
// Main moves down 1/4" to release pressure. digitalWrite(maindown, HIGH); delay(time*factor4); digitalWrite(maindown, LOW);
// Sec. opens drawer, or 7 inches out. digitalWrite(secout, HIGH); delay(time*factor5); digitalWrite(secout, LOW);
// Main ejects brick from compression chamber, 4.5 inches up. digitalWrite(mainup, HIGH); delay(time*factor6); digitalWrite(mainup, LOW);
// Sec. cylinder moves 14 inches in to eject block from machine. digitalWrite(secin, HIGH); delay(time*factor7); digitalWrite(secin, LOW); }