GPIO: esercizi

Attenzione! Attenzione! Questa pagina contiene immagini animate ad elevato contrasto Attenzione!

La frequenza di ripetizione dei singoli fotogrammi è circa 2 Hz e quindi la pagina è compatibile con le specifiche WCAG 1.0, ma non sono state fatte verifiche approfondite per le persone affette da epilessia fotosensibile. Se rilevate problemi, vi prego di contattarmi.

In fase di sviluppo Stesura preliminare In fase di sviluppo

I seguenti esercizi non hanno ovviamente una sola soluzione, ma sono possibili approcci diversi, più o meno furbi. L'invito è quello di non fermarsi alla prima stesura che viene in mente, ma provare strade differenti, valutando pregi e difetti di ciascuna.

Led

Nota preliminare: gli esercizi proposti in questo paragrafo utilizzano come hardware 8 LED connessi ad una delle porte di I/O del PIC18, da configurare come uscita. Se utilizzate PICdemo oppure PICdemo R2 questi LED sono già presenti e collegati a PORTC.

Esercizio 1

Scrivere il codice per far lampeggiare alternativamente due LED; il programma non deve mai terminare. Per impostare il ritardo potete far riferimento a questi esempi ed esercizi o, meglio, a quanto descritto nella pagina subroutines.

Lampeggio di due LED

Esercizio 1b

Far lampeggiare i due LED del precedente esercizio per 10 volte, quindi il programma termina.

Esercizio 1c

Invece di un LED collegare un driver per motore passo-passo basato su DRV8825 o simile. Lo schema dettagliato è per esempio disponibile su questo sito.

Esercizio 2

Scrivere il codice per far scorrere un LED spento da destra verso sinistra. In pratica si tratta qualcosa di simile a supercar, ma negato

7 Led accesi su 8

Esercizio 2b

Far scorrere il LED del precedente esercizio da sinistra verso destra

Esercizio 2c

Far scorrere in sequenza quando realizzato nei precedenti due esercizi: prima scorrimento verso sinistra e successivamente verso destra

Esercizio 3

Scrivere il codice che accende i LED nella sequenza mostrata

BarGraph

Esercizio 4

Scrivere il codice che accende i LED nella sequenza mostrata.

Il codice può essere strutturato secondo due modalità alternative:

  1. I tre LED accessi vengono accesi e fatti scorrere con modalità simile agli esercizi fin qui svolti
  2. I tre LED vengono accesi scrivendo direttamente in LATC i bit da accendere o spegnere, come fossero i fotogrammi indipendenti di un film: prima 11100000, poi 01110000... 00001110 ed infine 00000111

SI consiglia di provare entrambe le modalità

Scorrimento di tre LED

Esercizio 5

Scrivere il codice che accende i LED nella sequenza mostrata.

Sipario

Interruttori

Nota preliminare: gli esercizi proposti in questo paragrafo utilizzano oltre ai LED, alcuni interruttori, quali quelli già presenti sui circuiti PICdemo oppure PICdemo R2 e collegati a PORTB.

Esercizio 6

Scrivere il codice che fa scorrere un LED in un verso piuttosto che nell'altro a seconda dello stato di un interruttore. Come base può essere utilizzato uno qualunque dei tanti esempi ed esercizio già fatti.

Esercizio 7

Utilizzare alcuni interruttori per scegliere quale gioco di luci attivare, sulla falsariga di quanto avviene con alcun gadget per l'albero di Natale, scegliendoli tra quelli proposti nei precedenti esercizi:

Esercizio 8

Realizzare una porta AND a due ingressi. Utilizzare due interruttori collegati a PORTB come ingressi e un pin di PORTC come uscita. Visualizzare su tre LED ingressi e uscite

Esercizio 8a

Realizzare una porta OR a due ingressi. Utilizzare due interruttori collegati a PORTB come ingressi e un pin di PORTC come uscita. Visualizzare su tre LED ingressi e uscite

Esercizio 8b

Realizzare una porta OR a tre ingressi. Utilizzare tre interruttori collegati a PORTB come ingressi e un pin di PORTC come uscita. Visualizzare su quattro LED ingressi e uscite

 

Data di creazione di questa pagina: 12 aprile 2017
Ultima modifica: 25 aprile 2018


Licenza Creative Commons Attribuzione 4.0 Internazionale


Pagina principaleAccessibilitàNote legaliPosta elettronicaXHTML 1.0 StrictCSS 3

Vai in cima