Proiektua

Precious Plastic plastikoak txikitzeko makina

Precious Plastic makina txikitzailean gerta daitekeen buxadura desegiteko motorraren norabidea inbertitzen duen buxadura-sistema.

Taldea Precious Plastic

Precious Plastic plastikoak txikitzeko makina

Plastikoak txikitzeko makina da Medialaben kopiatzen ari garen Precious Plastic proiektuaren lan-fluxuko elementurik garrantzitsuenetako bat; zehazki, hainbat plastiko txikitzeko aukera ematen du, trontza eskuratu eta birziklatze-prozesuari hasiera emateko. Behin makina eraikita eta probak egiten hasita, berehala konturatu ginen gure motor-erreduzitzaile-transmisio multzoak mugak zituela: buxatu egiten zen pieza handiekin eta material kantitate handiekin. Ondorioz, transmisioko akoplatze bat puskatzera ere iritsi ginen. Hori nola konpondu pentsatzen ari ginela, Carlosi plastikoak txikitzeko makinaren ardatzaren aitzinamendua detektatzeko sistema bat instalatzea otu zitzaion, ardatzak aitzinatzeari utzi diola detektatzen baldin badu, motorra geldi dezan. Ordurako lanean ari ginenez eta beharrezkoak ziren material guztiak eskura genituenez, motorraren norabidea segundo batzuez aldatzeko aukera emango zuen sistema bat diseinatzea pentsatu genuen. Horrela, buxadura desegin eta gero aurrera jarraituko du. Hori guztia Arduinon oinarrituta, noski. Ekin lanari!

Pausuz pausu

Kodetzailearen pieza 3Dn inprimatu behar da. FreeCAD fitxategia thingiverse-n dago eskuragarri. FreeCAD diseinuan badago gurpilaren beraren eta gurpilaren ardatzaren diametroa gure beharrizanen arabera doitzeko kalkulu-orri bat. Pieza horrek ez duenez indarrik egingo, perimetro pare batekin eta betegarri gutxirekin (% 10-15) inprimatu daiteke.

Jarraian datorren eskemari jarraikiz konektatu behar da sistema osoa. Edonola ere, aintzat hartu behar da 380 V-ko korronte trifasikoa erabiltzen ari garela, eta hori nahiko korronte handia da. Horregatik, kablearen sekzioak bat etorri beharko du korrontearekin (2,5 edo 3,5ekoa izan behar du). Posible bada, krinpatu egin behar dira , terminalak dituzten konexio guztiak. Arduinotik 12 V-ak ateratzeko, bihurgailu normal bat konektatu daiteke sarrerako faseetako batera.

// Precious Plastics Shredder anticlog system
// (C) Carlos Garcia "Txakurrakuka" & Hirikilabs
//
// This program is free software: you can redistribute it
// and/or modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation, either version 3
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program.
// If not, see <http://www.gnu.org/licenses/>.


#define RELE1PIN    8
#define RELE2PIN    9
#define RELE3PIN    10
#define SENSORPIN   4

int main_counter = 0;
int encoder_value = 1;
int encoder_counter = 1;
int change = 0;

void setup() {
    // init peripherals
    Serial.begin(9600);
    // GPIO
    pinMode(SENSORPIN, INPUT);
    pinMode(RELE1PIN, OUTPUT);
    pinMode(RELE2PIN, OUTPUT);
    pinMode(RELE3PIN, OUTPUT);
    
    digitalWrite(RELE1PIN, HIGH);
    digitalWrite(RELE2PIN, HIGH);
    digitalWrite(RELE3PIN, HIGH);
}

void loop() {
    // read encoder
    encoder_value = digitalRead(SENSORPIN);
    
    // check if we are advancing
    if (encoder_value == 1 && change == 0) {
        encoder_counter++;
        change = 1;
    }
    
    // yes, we are, reset counter
    if (encoder_value == 0 && change == 1) {
        main_counter = 0;
        change = 0;
    }
    
    // increment
    main_counter++;
    
    // if counter is big enough, we are not advancing, unclog
    if (main_counter == 20) {
        // turn off motor
        digitalWrite(RELE1PIN, LOW);
        delay(100);
        digitalWrite(RELE1PIN, HIGH);
        Serial.println("MOTOR STOPPED");
        delay(1000);
        
        // turn motor backwards
        digitalWrite(RELE2PIN, LOW);
        delay(100);
        digitalWrite(RELE2PIN, HIGH);
        Serial.println("MOTOR BACKWARDS");
        delay(1000);
        
        // turn off motor
        digitalWrite(RELE1PIN, LOW);
        delay(100);
        digitalWrite(RELE1PIN, HIGH);
        Serial.println("MOTOR STOPPED");
        delay(1000);
        
        // turn motor forward
        digitalWrite(RELE3PIN, LOW);
        delay(100);
        digitalWrite(RELE3PIN, HIGH);
        Serial.println("MOTOR FORWARD");
        delay(1000);
    }
    
    // reset counter
    if (encoder_counter == 25) {
        encoder_counter = 0;
    }
}