sábado, 24 de diciembre de 2016

CONTROL: Definició del programa Arduino (I)

Un dels aspectes fonamentals del nostre projecte és el de control, i consisteix en el conjunt de sistemes i algoritmes de control necessaris per al funcionament intern de la màquina. Així, i mitjançant una placa d'Arduino, la nostra tasca és aconseguir desenvolupar un programa que sigui capaç d'automatitzar el processos compresos entre la selecció del producte per part del consumidor fins a el seu proveïment, passant pel processament dels diners, el triatge de productes o la configuració dels motors. Aquest programa a dissenyar, però, és d'una complexitat força elevada i així requereix una planificació estricta i una comprovació quasi constant de cada nova introducció. Els progressos actuals en el desenvolupament del programa són els següents:

1. Rotació dels motors:

El primer repte al que ens vam enfrontar consistia en dissenyar un programa d'Arduino que permetés moure un motor en dues direccions durant un temps determinat. Això tenia com a objectiu la posterior aplicació del programa al control dels sistemes d'expulsió de productes, on un motor s'encarregaria de moure el cilindre expulsor. 

Va ser així com el professor ens va fer una breu explicació sobre el control de motors amb Arduino i ens va fer arribar a la conclusió de que, degut a l'elevada quantitat d'energia necessària per moure un motor, aquest no podia ser controlat directament des d'una placa d'Ardunio, la qual no proporcionaria l'energia suficient, sinó que havia de ser alimentat per una font d'alimentació i controlat mitjançant un microchip L239B que tot seguit ens va proporcionar.















Seguidament i un cop conegut el funcionament del controlador vam dissenyar la distribució del microchip i el cablejat necessari per fer-lo anar a una placa de protoboard. El resultat va ser el següent:

Per una banda, el microchip s'alimentaria (i així alimentaria al motor) per les sortides 1, 8, 9 i 16 al pol positiu (Vcc) i 4, 5, 12 i 13 al pol negatiu (GND), i ho faria directament des de la font d'alimentació. Per altra banda, les sortides 3 i 6 anirien cap a un motor i 11 i 14, cap a un altre. Cada parell de sortides té la possibilitat d'alternar, mitjançant ordres d'Arduino, la seva càrrega i així de fer girar els motors en un sentit o un atre. Per últim, les sortides 2, 7 i 10, 15 anirien connectades a la placa d'Arduino, i seria mitjançant aquesta per on les ordres serien enviades.















I és així com, un cop muntat el circuit, ens posem a dissenyar el programa encaminat a controlar-lo.
















Al programa, a més, hi vam afegir un polsador a partir del qual tot el sistema es posava a funcionar segons els paràmetres especificats. D'aquesta forma ens anàvem aproximant més al programa definitiu que seria implantat a la màquina. Aquest va quedar de la forma següent:

void setup() {
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(2, INPUT);
}
void loop() {
  if(digitalRead(2) == HIGH){
  digitalWrite(11, HIGH);
  delay(2500);        
  digitalWrite(11, LOW);
  delay(2500);
 digitalWrite(12, HIGH);
  delay(2500);        
  digitalWrite(12, LOW);
  delay(2500);
  }
 else {
  digitalWrite(11, LOW);
 digitalWrite(12, LOW );
 }
}

El funcionament del programa va ser l'esperat:











//video//





El següent pas, llavors, serà modificar aquest programa per a afegir-hi la llum dels polsadors led i conjugar-ho amb les senyals elèctriques del moneder electrònic. Molta feina per endavant!

No hay comentarios:

Publicar un comentario