Archivi categoria: i miei allievi

Bloccare Arduino ed altre schede alla breadboard

L’ordine durante la realizzazione dei nostri prototipi su breadboard è fondamentale, in quanto il numero di schede e di componenti potrebbe essere elevato, ordine vuol dire soprattutto facilità nel trovare possibili errori di realizzazione.

Durante il laboratorio Arduino mi sono accorto che gli studenti posizionano la schede Arduino nelle maniere più strane ed alcune volte in modo poco sicuro rischiando in alcuni casi il danneggiamento della scheda. Ieri durante il laboratorio ho richiamato uno studente che aveva collegato la scheda mediante cavo USB al computer e la faceva penzolare dal banco… ovviamente posizione non idonea… ma si sa, la fantasia degli studenti non ha limiti 🙂

Per evitare che schede e display o altri dispositivi vadano a “spasso” per il banco di lavoro adotto un metodo semplicissimo e allo stesso tempo efficace, blocco la scheda mediante un jumper del timpo mostrato nell’immagine che segue, in questo modo rendo solidale il tutto alla breadboard:

Appunti su Arduino: pilotare un display LCD

In questi giorni sto realizzando con alcuni allievi della mia classe 5′ un misuratore di temperatura che utilizza un display LCD 16×2 (16 colonne e 2 righe) compatibile con i driver dell’Hitachi HD44780. Poiché la quantità di collegamenti è elevata ho deciso di realizzare questo post per non dimenticare ed avere traccia per le future realizzazioni in classe, in modo che possa essere di riferimento per gli allievi.
Per qualsiasi dettaglio fate riferimento al tutorial che trovate sul sito Arduino.cc: LiquidCrystal – “Hello World!”

Per poter pilotare il display avete necessità di utilizzare la libreria LiquidCrystal.h che vi permette di comunicare in modalità 4 bit o 8 bit, questo vuol dire che per la trasmissione dati possono essere utilizzate 4 o 8 linee di controllo a queste si aggiungono le due linee di controllo: Register Select (RS) e Enable (E) e alla linea opzionale Read/Write (RW).

In classe ho utilizzato la modalità a 4 bit, la stessa del tutorial sul sito Arduino, ciò comporta l’utilizzo di 6 uscite digitali sulla scheda Arduino.

Disponiamo di una serie di display economici: Xiamen GDM 1602K (seguite il link per prelevare il datasheet).

Dall’immagine tratta dal datasheet, notate che il display è dotato di 16 pin e la numerazione parte da sinistra.

Nella tabella allegata trovate le funzioni di ogni piedino.

Ricordate che la piedinatura di questi display è comune alla maggior parte degli LCD 16 x 2 standard Hitachi HD44780, ma potreste trovare qualche variazione tipicamente accade per i pin 15 e 16 che potrebbero essere al posto dei pin 1 e 2 (non è il caso di questo display).
In ogni caso come potete vedere dalle fotografie (sopra) il display reca sul lato piste, una legenda con il riferimento piedino -> funzione quindi, non potete sbagliarvi.

Funzione dei piedini

  • Pin 1: Vss – collegato al GND
  • Pin 2: VDD – collegato a +5V
  • Pin 3: V0 – controllo del contrasto dei caratteri. In genere viene collegato ad un potenziometro o trimmer in configurazione partitore di tensione in modo che possiate applicare sul Pin 3 una tensione che varia da 0 a +5V e al variare della tensione varia il contrasto.
  • Pin 4: RS segnale di selezione registro – per selezionare il registro nel quale registrare ciò che appare sul display oppure selezionare il registro di funzionamento in cui viene memorizzata di volta in volta l’istruzione da eseguire per il funzionamento dell’LCD
  • Pin 5: segnale Read/Write – per selezionare la modalità di funzionamento: lettura/scrittura – collegato a GND
  • Pin 6: segnale Enable (E) – per abilitare la scrittura nei registri
  • Pin 7 al Pin 14: linee dati che si inviano o si ricebono dai registri del display. Un valore HIGH (H) indica scrittura (WRITE) del bit nel registro del display, un valore LOW (L) indica un valore letto (READ) da un registro.
  • Pin 15: A (Anodo) – piedino a cui collegare una tensione positiva (nel caso del display descritto +4,2V) che serve per la retroilluminazione del display.
  • Pin 16: K (Catodo) – piedino da collegare a GND per consentire la retroilluminazione.

I collegamenti realizzati sono identici a quelli che trovate sul tutorial: LiquidCrystal – “Hello World!” dove al posto del potenziometro abbiamo utilizzato un trimmer:

Codice:

/* uso del display LCD 16x2 standard Hitachi HD44780

  Circuito:
 * pin RS collegato al pin digitale 12
 * pin E (Enable) collegato al pin digitale 11
 * pin D4 collegato al pin digitale 5
 * pin D5 collegato al pin digitale 4
 * pin D6 collegato al pin digitale 3
 * pin D7 collegato al pin digitale 2
 * pin R/W collegato al GND
 * pin 1 e pin 4 collegati a GND
 * pin 2 collegato a +Vcc
 * centrale del potenziometro/trimmer da 10 KOhm collegato al pin 3 del'LCD
 * pin SX potenziometro/trimmer collegato a +Vcc
 * pin DX potenziometro/trimmer collegato a GND
 * i pin SX e DX del potenziometro/trimmer possono essere interscambiati
*/

// includere la libreria:
#include <LiquidCrystal.h>

/*
   Viene creata l'istanza dell'oggetto LiquidCrystal chiamata lcd in cui
   sono indicati i pin dell'LCD collegati alle uscite digitali di Arduino
*/
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
   //impostiamo il numero di colonne ed il numero di righe di lcd
  lcd.begin(16, 2);
  // Visualizzo il messaggio sul display
  lcd.print("Salve mondo!");
}

void loop() {
  // posiziona il cursore in colonna 0 e linea 1
  // (nota: la linea 1 e la seconda linea, poichè si conta incominciando da 0):
  lcd.setCursor(0, 1);
  // stampa il numero di secondi dall'ultimo reset
  lcd.print(millis()/1000);
}

Nel caso in cui colleghiamo il Pin 15 a +5V e il Pin 16 a GND abbiamo la retroilluminazione:

Anche gli “ammazza sogni” servono per sapere se stai andando nella giusta direzione

Riflessioni su me stesso
consigli per i mie studenti

oggi giornata rigida, -10 gradi,
il primo della famiglia giù dal letto,
sorseggio un caffé,
osservo il manto di ghiaccio che ricopre il parco davanti casa,
penso al copia e incolla delle azioni quotidiane,
ripercorre gli eventi che hanno segnato il mio lavoro negli ultimi 3 anni,
ma quanti “ammazza sogni” ho incontrato lungo il mio cammino!

E quanto sono vere queste frasi:

Non permettere mai a nessuno di dirti che non sai fare qualcosa.
Neanche a me. Ok?
Se hai un sogno tu lo devi proteggere.
Quando le persone non sanno fare qualcosa, lo dicono a te che non la sai fare.
Se vuoi qualcosa, vai e inseguila. Punto.

Costruiamo una proto shield per Arduino partendo da una basetta millefori

Mi trovo nella necessità di realizzare con i miei studenti dei circuiti custom per Arduino, realizzare gli shield delle nostre esperienze, senza ogni volta montare e rismontare i circuiti realizzati su breadboard. In commercio potete trovare Proto Shield già disponibili per realizzare shield personalizzati, però hanno tutti un difetto, costano 🙂 e per le ristrettezze economiche in cui ci troviamo meglio utilizzare i materiali, anche di recupero, che troviamo in laboratorio.

Di cosa abbiamo bisogno:

  • basetta millefori
  • strip maschio passo 2,54 mm
  • un po’ di filo
  • trapano piccolo da laboratori

Come sicuramente avrete notato, il passo dei dei connettori “Power” ed Analog in” su Arduino è standard di  2,54 mm, e i due gruppi distano anch’essi 2,54 mm, mentre dalla parte “Digital in” i due gruppi di 8 fori hanno una distanza inferiore a 2,54 mm, ciò non permette quindi di creare immediatamente uno shield con fori perfettamente allineati.

Per ovviare a questo inconveniente è sufficiente apportare una piccola modifica alla basetta millefori, procedendo come descritto di seguito.

Continua a leggere

Pin-out serie 74XX

Come avrete capito sto dedicando parte della giornata a sistemare appunti e dispense per i miei allievi 🙂 ricerco i datasheet di componenti elettronici per realizzare le  esperienze di laboratorio. Ho utilizzato la documentazione tecnica che ho trovato sui noti:

Capita però che molti dei PDF archiviati sono mal realizzati, molto spesso derivano dalla scannerizzazione di manuali vecchi, o la scannerizzazione non è stata fatta ad una risoluzione adeguata e quindi non riesco a prelevare immagini da integrare nelle mie dispense.
Nelle mie ricerche però ho trovato il bel lavoro realizzato da ecelab.com, nella sezione Pin-outs of Common IC’s trovate il pin-out degli integrati della famigla 74XX ben disegnati, chiari ed ottimi per usarli a scuola.

Vi consiglio di aggiungere il link tra i vostri preferiti.

Grazie Ece Lab 🙂