Go Down

Topic: Software macchinetta caffè (Read 579 times) previous topic - next topic

garius

Oct 18, 2012, 03:16 pm Last Edit: Oct 18, 2012, 07:56 pm by UweFederer Reason: 1
Buonasera a tutti,
purtroppo sono alle prime armi, anzi primissime e dovrei realizzare per scuola un programmino basilare, che deve simulare una macchinettà del caffè che accetta soltanto monete da 20c. e che a 60 eroga il caffè. Ora, so che per voi è una stupidaggine, però io mi sono arenato e non riesco a uscirne fuori, vi posto di seguito il programma che ho buttato giù, se potete dirmi dove ho sbagliato.

Quote

/*
Il sistema deve erogare quando vengono inserite 3 monete da 20c.
S0=out 0
S1=out 0
S2=out 0
S3=out 1
L'automa deve simulare il funzionamento di una macchinetta del caffè.
quindi deve accendere il led quando viene premuto il bottone 3 volte
(che a sua volta simula la moneta che viene inserita nella macchina)

*/

const int ledpin=13;
const int input_pin=12;

int stato_att=0;
int stato_fut=0;
int stato_led=0;
int stato_inp=0;

void setup ()  {
  pinMode(ledpin, OUTPUT);
  pinMode(input_pin, INPUT);
  stato_inp=digitalRead(input_pin);
  stato_fut=fissa_stato(stato_inp,stato_led);
  stato_att=stato_fut;
}
void loop ()  {             /* in teoria, dovrebbe andare in loop fintanto gli arriva 0 */
  while(1)
    while(stato_inp=0)
    {
    }
}
int fissa_stato (int stato_att,int stato_fut)

  switch (stato_att)            /* l'automa essendo progettato con un automa a stati finiti, questa istruzione dovrebbe rappresentare, il passaggio degli stati. */
  {
    case 0:   
      stato_fut=1;
      stato_led=0;
      break;
        case 1:
        stato_fut=2;
        stato_led=0;
        break;
          case 2:
          stato_fut=3;
          stato_led=1;
          break;
            case 3:
            stato_fut:1
            stato_led:0
            return stato_fut
  }         
}         
     
   
 




Sono sicuro che è sbagliato e incompleto ma non so andare avanti. :smiley-roll-sweat:

stefa24

ciao
ti chiedo di commentarlo inoltre spiega che problema incontri

ciao
stefano
https://sites.google.com/site/agritronica/
https://sites.google.com/site/t3chconcrete/
arduino UNO rev 3
ide 105

garius


ciao
ti chiedo di commentarlo inoltre spiega che problema incontri

ciao
stefano


Ora l'ho modificato, il problema sarebbe che penso sia sbagliato come ho impostato il programma.

leo72

L'indentazione è fatta male e non capisco i vari blocchi dove iniziano e dove terminano.
Inoltre qual è esattamente il problema? Ti fa il caffè troppo amaro?  ;)

uwefed

Code: [Select]
while(1)                     /* in teoria, dovrebbe andare in loop fintanto gli arriva 0 */
    while(stato_inp=0)
    {
    }


Ma da dove dovrebbe arrivargli il 0?
while(1) é un ciclo infinito
while(stato_inp=0) é un ciclo mai vero perché non controlli la variabile (==) ma assegni un valore e il risultato della assegnazione é sempre vero o 1.

Caio Uwe

leo72

Sì, difatti non uscirà mai da while(1).
Ma anche se lo facesse, nel resto delle altre 2 righe del loop() non c'è traccia del richiamo dell'altra funzione dello sketch.

Go Up