Calcetto elettronico
PROGRAMMA IN LINGUAGGIO BASIC

Dopo aver realizzato lo schema elettrico, bisogna creare il programma per il microcontrollore. Innanzitutto ho realizzato tutto il software per il programmatore Basic Stamp 2, aggiornandolo poi per il PIC. I piedini del PIC che sono stati utilizzati sono i seguenti:

  • pin 0, per rappresentare il primo microinteruttore;
  • pin 1, per rappresentare il secondo microinteruttore;
  • pin 2, per ricevere l'input dell'inserimento del gettone;
  • pin 3, per visualizzare l'attivazione del solenoide di blocco tramite LED;
  • pin 4, per attivare/disattivare il latch della seconda decodifica;
  • pin 5,6,7,8, per gestire i punteggi in valore delle unità alla decodifica;
  • pin 9, per attivare/disattivare il latch della prima decodifica;
  • pin 10, per il display della prima decina;
  • pin 11, per il display della seconda decina.

Ecco, dunque, il programma realizzato:

 
             Include bs2defs.bas                   

gettone:     b0=0:b1=0:b2=0:b3=0:b4=0

             low 10:low 5:low 8:low 7:low 6:low 11:low 9:low 4

             button 2,1,100,200,b2,1,inizio

             goto gettone

In questa routine vengono azzerate tutte le veriabili ed i display. Finché il micro non riceve il segnale di inserimento del gettone, l'elaborazione del programma rimane all'interno di "gettone".

 

 
inizio: if b3=10 then gettone

        if b4=10 then gettone

        low 3

button 0,1,100,200,b0,1,puntoA

        button 1,1,100,200,b1,1,puntoB

        goto inizio

 

 

puntoA: low 9:high 4

        b3=b3+1

        if b3=1 then uno

        if b3=2 then due

        if b3=3 then tre

        if b3=4 then quattro

        if b3=5 then cinque

        if b3=6 then sei

        if b3=7 then sette

        if b3=8 then otto

        if b3=9 then nove

        if b3=10 then dieciA

 

puntoB: high 9:low 4

        b4=b4+1

        if b4=1 then uno

        if b4=2 then due

        if b4=3 then tre

        if b4=4 then quattro

        if b4=5 then cinque

        if b4=6 then sei

        if b4=7 then sette

        if b4=8 then otto

        if b4=9 then nove

          if b4=10 then dieciB

A questo punto viene abilitato il latch della decodifica assegnata e corrispondente alla squadra siglante. Incrementando di uno la variabile b3, questa permette di saltare, in base al suo valore, alla routin di punteggio che illumina i segmenti specifici della decodifica.

 

 

 

 

 

A questo punto viene abilitato il latch della decodifica assegnata e corrispondente alla squadra siglante. Incrementando di uno la variabile b3, questa permette di saltare, in base al suo valore, alla routin di punteggio che illumina i segmenti specifici della decodifica.

 

 
uno: high 5:low 8:low 7:low 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

due: low 5:high 8:low 7:low 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

tre: high 5:high 8:low 7:low 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

quattro: low 5:low 8:high 7:low 6

         pause 100:high 3:pause 3000:pause 1000

         goto inizio

cinque: high 5:low 8:high 7:low 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

sei:   low 5:high 8:high 7:low 6

       pause 100:high 3:pause 3000:pause 1000

       goto inizio

sette: high 5:high 8:high 7:low 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

otto: low 5:low 8:low 7:high 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

nove: high 5:low 8:low 7:high 6

        pause 100:high 3:pause 3000:pause 1000

        goto inizio

        dieciA: low 5:low 8:low 7:low 6:high 10

        pause 100:high 3:pause 3000:pause 10000

        goto inizio

dieciB: low 5:low 8:low 7:low 6:high 11

        pause 100:high 3:pause 3000:pause 10000

        goto inizio

Quest'ultima serie di subroutine ha il compito di abilitare i segmenti rispettivi al valore della variabile selezionata, e di attivare per un tempo di tre secondi il solenoide di blocco. Terminato questo tempo la pallina viene liberata ed il programma torna alla routine "inizio".

 

 

Top                 Schema a blocchi