10 de septiembre de 2013

Escancieitor plus

Todavia no habia subido el codigo del proyecto que nos llevo a ganar la Hackathon de Zaragoza, patrocinada por www.cooking-hacks.com. Aqui teneis algunas cosillas que he podido rescatar.



Presentacion del proyecto: PDF

Codigo despues del salto.



Codigo de la oruga:

//Arduino PWM Speed Control:
#define IRpin_PIN PIND
#define IRpin 2

int orangeLedPin =  7;
int E1 = 9;  
int M1 = 8; 
int E2 = 10;                      
int M2 = 11;  
int value1, value2, on;
int val;



void setup() 

    pinMode(M1, OUTPUT);   
    pinMode(M2, OUTPUT); 
    pinMode(12, INPUT);
    pinMode(orangeLedPin, OUTPUT); 
    Serial.begin(9600);


void loop() {
  
  while (IRpin_PIN & (1 << IRpin)) {
    delay(100);
    digitalWrite(orangeLedPin, LOW);
  }
  digitalWrite(orangeLedPin, HIGH);
  Serial.print('H');
  delay(1000);
  if (Serial.available()) {
    val = Serial.read();
    if (val == 'C') {
      getDrink();
    } 
  }
}

void getDrink() {
    digitalWrite(M1,HIGH);   
    digitalWrite(M2, LOW);           
    analogWrite(E1, 100);  
    analogWrite(E2, 100);   
    delay(3000);
    analogWrite(E1, 0); 
    analogWrite(E2, 0); 
    delay(10000);
    digitalWrite(M1,LOW);   
    digitalWrite(M2, HIGH);
    analogWrite(E1, 100);  
    analogWrite(E2, 100);   
    delay(3000);
    analogWrite(E1, 0); 
    analogWrite(E2, 0);   
}

Codigo del dispensador:

#include <Servo.h>

Servo servoR;
int servoPinR =  8;
int val;

void setup()
{
  servoR.attach(servoPinR);
  Serial.begin(9600);

}

void loop() {
  servoR.write(0);
  if (Serial.available()) {
    val = Serial.read();
    if (val == 'H') {
      delay(20);
      Serial.print('C');
      rotate();
    }    
  }
}

void rotate() {
  delay(5000);
  for(int i=0; i<160; i++){
    servoR.write(i);
    delay(20);
  }
  delay(1400);
  for(int i=160; i>=0; i--){
   servoR.write(i);
   delay(20);
  }

}


No hay comentarios:

Publicar un comentario