upc eetac_1

Projecte P10: Màquines d'estats finits amb Arduino


Exemple inicial

1. Intermitent (2 estats)

Aquest exemple ja es va resoldre al projecte P4.1

1.- Especificació del problema.

Engegar i apagar un LED amb intermitència d'1 s.

block
Fig. 1. Esbós del primer circuit i la definició de la forma d'ona intermitent ON/OFF.

2.- Planificació.

Discusió sobre com organitzar el problema com una màquina d'estats. En aqeusta secció rau la novetat. Plantejarem a partir d'ara qualsevol projecte com una màquina d'estats finits per poer governar millor el sistema i aclarir l'arquitectura del programari.

Aquest estil de programar el projecte com una "maquina d'estats" l'usarem sempre. De manera que un dels aspectes de la planificació se centrarà en com preparem el diagrama d'estats.

Pel que fa al fitxer del programa, l'usarem com a "llavor" per modificar-lo i adaptar-lo segons siguin les especificacions dels altres projectes que ens proposin. No comenceu mai el fitxer de projecte (*.ino) des de zero. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

Per verificar que el vostre programari i la vostra targeta Arduino funcionen, feu-lo córrer, compileu aquest exemple i descarregueu-lo a la targeta. Veureu que usa el LED en el pin 13. Una vegada funcioni, podreu usar altres LED externs que connectareu a altres potes de l'Arduino i que muntareu a la placa de prototips.

 

Mitjançant el model en Proteus del projecte, poden executar pas a pas i observar les variables de programa per visualitzar millor la seqüència d'instruccions i detectar els errors.  

 

 Circuit i programa: (1) . 

 

 

Fig. 2.

 

2. Selecció de cicle de treball (DC) amb interruptor

1.- Especificació del problema. Canvieu de cicle de treball i de freqüències.

 

Fig. 3.

2.- Planificació.

Discusió sobre com organitzar el problema. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

 Circuit i programa: (1) . 

 

 

3. Polsador per arrencar/parar la màquina (interrupcions)

1.- Especificació del problema. Canvieu de cicle de treball i de freqüències.

Polsador "Start/Stop" o bé "trigger" per arrencar i parar la màquina. Lectura del flanc de pujada (RISING EDGE) d'un port d'entrada mitjançant interrupcions)

 

Fig. 4.

2.- Planificació.

Discusió sobre com organitzar el problema. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

 Circuit i programa: (1) . 

 

4. Aplicacions de la sortida PWM

1.- Especificació del problema.

Activació de la sortida PWM de l'Arduino. Modulació d'un parell de cicles de treball amb l'interruptor DC

 

Fig. 5.

2.- Planificació.

Discusió sobre com organitzar el problema. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

 Circuit i programa: (1)

 

5. Efecte d'esvaïment (fading)amb la sortida PWM

1.- Especificació del problema.

Aconseguiu l'efecte d'esvaïment "fading" cíclic. És a dir, el DC ha de variar lineament (talment com una ona triangular) entre els valor màxim i mínim generant una ona modulada en amplitud de polsos (PWM) en què el cicle de treball variï entre el 0% i el 100%.

 

Fig. 6.

2.- Planificació.

Discusió sobre com organitzar el problema. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

 Circuit i programa: (1)

 

 

6. Modulació PWM a partir de l'entrada analògica

1.- Especificació del problema.

Amplieu el Projecte 5 per tal d'aconseguir una variació lineal del DC en desplaçar el potenciòmetre entre 0% i 100%.

 

Fig. 7.

2.- Planificació.

Discusió sobre com organitzar el problema. 

 

3.- Desenvolupament i simulació en Proteus        4.- Test

 Circuit i programa: (1)

 

Recull de solucions a tall d'exemple. Cal actualitzar la targeta de simulació d'aquests exemples a la Arduino Uno bassada en el Atmega328P.

 

Altres referències similars

-

 

Altres materials d'interès

-