Archivi tag: elettronica

Arduino – lezione 04: realizzare un programma che identifica le variazioni di stato

Prenderò spunto dal commento che mi è stato lasciato da un mio studente per introdurre l’uso delle istruzioni:

if
if...else
Switch Case

Lo scopo di questa lezione è quello di realizzare un programma che conta quante volte il pulsante viene premuto, per un ciclo di 4 pressioni, alla quinta pressione il led lampeggia una volta e poi si riavvia il ciclo.

Per questa lezione useremo:

  1. breadboard
  2. 4 diodi led
  3. 1 pulsante
  4. 1 resistenza da 10KOhm
  5. Arduino duemilanove

La prima versione del programma è quella che è stata realizzata dal mio studente, realizzazione di uno sketch per effettuare la seguente funzione:

Prima pressione: led lampeggia ogni mezzo secondo
Seconda pressione: led lampeggia ogni secondo
Terza pressione: led lampeggia ogni secondo e mezzo
Quarta pressione: led si spegne

Realizziamo un circuito come indicato nelle immagini che seguono:

La proposta interessante ed elegante dell’allievo, sfrutta l’istruzione “Switch Case” che permette di definire quale porzione di codice eseguire in funzione del valore di una variabile. Ciò consente di evitare lunghe catene di if-else.
Il “break” alla fine di ogni “case” viene usato per interrompere il controllo degli altri “case“.

// Esempio 05:
// Primo tocco: led lampeggia ogni mezzo secondo
// Secondo tocco: led lampeggia ogni secondo
// Terzo tocco: led lampeggia ogni secondo e mezzo
// Quarto tocco: led si spegne

const int  BUTTON = 2;    // pin di input a cui è collegato il pulsante
const int LED = 13;       // LED collegato al pin digitale 13

// Variabili globali (tutti interi)
int statoButton     = 0;      // stato del pulsante (inizialmente non premuto)
int lastStatoButton = 0;      // ultimo stato del pulsante (per ora non premuto)
int countButton     = 0;      // Conteggio del bottone

// Avvio dell'applicazione
void setup()
{
  pinMode(LED, OUTPUT);       // imposta il pin digitale come output
  pinMode(BUTTON, INPUT);     // imposta il pin digitale come input
}

// Avvio del loop
void loop()
{

  // Verifico se l'utente ha premuto il bottone
  if(digitalRead(BUTTON))
  {
    // Aspetto 15ms per far alzare il dito all'utente
    delay(15);
    // Cambio l'ultimo stato del bottone
    if(lastStatoButton==0) lastStatoButton=1;
    else lastStatoButton=0;
    // Aumento il count del bottone
    if(countButton<=3) countButton=countButton+1;
    else countButton=0;
  }

  // In base allo stato del bottone scelgo l'azione del led
  switch (countButton)
  {
    // Led lampeggia ogni mezzo secondo
  case 1:
    digitalWrite(LED, HIGH);  // accende il LED
    delay(500);              // aspetta un secondo
    digitalWrite(LED, LOW);   // spegne il LED
    delay(500);              // aspetta un secondo
    break;

    // Led lampeggia ogni secondo
  case 2:
    digitalWrite(LED, HIGH);  // accende il LED
    delay(1000);              // aspetta un secondo
    digitalWrite(LED, LOW);   // spegne il LED
    delay(1000);              // aspettaun secondo
    break;

    // led lampeggia ogni secondo e mezzo
  case 3:
    digitalWrite(LED, HIGH);  // accende il LED
    delay(1500);              // aspetta un secondo
    digitalWrite(LED, LOW);   // spegne il LED
    delay(1500);              // aspetta un secondo
    break;

    // Led si spegne
  case 0:
    delay(15);
    digitalWrite(LED, LOW);
    delay(5000);              // aspetta un secondo
    break;
  }
}

Il programma come si intuisce dal filmato, presenta alcuni problemi.

Rimbalzo
Il problema dei segnali spuri dovuti al rimbalzo del pulsante non consente di controllare esattamente la selezione.

Attesa
Durante l’attesa, mentre si vede lampeggiare il led, premendo il pulsante non si ha cambiamento di stato fino a quando non termina il tempo in cui lampeggia il led.

Discriminare
Difficoltà di discriminare in quale situazione ci si trova, tempi troppo brevi per percepire la differenza delle 4 condizioni.

Per risolvere i problemi sopra elencati vi propongo 6 varianti all’esempio 1, ciò mi permetterà di introdurre nuove istruzioni del linguaggio di programmazione.

Prima di fornirvi le mie soluzioni ho necessità di introdurre l’uso dell’istruzioni Serial ed utilizzare il programma “StateChangeDetection” che potete trovare in File > Examples > 2.Digitale > StateChangeDetection o direttamente on-line sul sito Arduino che trovate di seguito

Continua a leggere

Lezione n.4 – microcorso di elettronica per principianti: corrente elettrica

Per avere un flusso di elettroni è necessario che ci sia un movimento continuo in cui gran parte degli elettroni liberi si muove nella stessa direzione.

Se si crea un percorso che permette di far muovere gli elettroni da un materiale carico negativamente ad uno carico positivamente allora gli elettroni potranno fluire, quando ciò accade si dice che si ha una corrente elettrica ed il fluire di cariche elettriche continuerà fino a quando il percorso non viene interrotto oppure finchè la carica elettrica non è la stessa per entrambi i materiali.

Per avere una corrente misurabile è indispensabile che vi sia un movimento di una grande quantità di elettroni, dell’ordine del milione.

L’unità di misura della corrente elettrica è l’Ampere.
Un flusso di corrente di 1 Ampere corrisponde al movimento di 6,25 x 10^18 elettroni al secondo che passano in un un determionato punto.
Se non siete pratici con la notazione scientifica vi ricordo che il numero 6,25 x 10^18 corrisponde a 6.250.000.000.000.000.000 piuttosto grande non trovate ? 🙂

Direzione del flusso degli elettroni

Abbiamo detto che la corrente è un flusso di elettroni e questo flusso va sempre da un punto ad eccesso di elettroni, carico negativamente (-), verso un punto che non ha elettroni, carico positivamente (+).
Fate attenzione però che questa affermazione è vera se si considera la corrente come flusso di elettroni ciò che accade realmente nei conduttori.

Prima che si conoscesse la teoria dell’elettrone si pensava che la corrente fluisse dal (+) al (-) ed la simbologia di alcuni componenti riflette ancora questa teoria e quindi viene considerato che il verso della corrente è quello delle cariche positive da un punto a potenziale positivo (+) a quello a potenziale (-), quindi nonostante ciò la definizione originale di corrente elettrica resta ancora valida e viene oggi usata e quindi nella lettura e risoluzione di schemi elettrici considererete sempre il verso del flusso convenzionale di corrente.

 

Sorgenti di elettricità

Per far si che vi sia una corrente che fluisca continuamente è indispensabile una forma di energia che continuamente ponga in moto le cariche positive (secondo il flusso convenzionale).

Le sorgenti di energia elettrica possono essere di diverso tipo:

Attrito
Lo strofinamento di materiali, come visto nella lezione precedente, determina la formazione di cariche; probabilmente tale situazione è stata da voi sperimentata quando passeggiate su alcuni tipi di tappeti.

Azione chimica
Una batteria elettrica utilizza l’azione chimica di diversi materiali per produrre energia elettrica.

Pressione
Se su alcuni tipi di cristalli applicate una pressione è possibile produrre energia elettrica.

Calore
Il principio della termocoppia sfrutta proprio il calore applicato alla giunzione di due materiali diversi.

Magnetismo
Il movimento di un filo costituito da materiale conduttore in un campo magnetico determina il movimento degli elettroni verso un capo del filo.

Luce
Alcuni dispositivi, come le fotocellule, se colpiti da luce possono produrre energia elettrica.

Guarda un po’ cosa ho trovato in archivio: microcorso di elettronica per principianti

Perché un microcorso per principianti di elettronica?

Non me ne vogliano i colleghi di discipline scientifiche, sicuramente saranno loro i primi a spaventarsi nel leggere queste brevissime lezioni e notare che i contenuti sono ridotti ai minimi termini e che la matematica e quasi assente, ma questo corso per principianti nasce da un piccolo progetto di qualche anno fa quando mi venne richiesta, per una serie di attività per l’orientamento scolastico, la realizzazione per gli studenti di terza media di un brevissimo e semplicissimo corso di elettronica corredato da piccoli esperimenti divertenti di elettrostatica, elettronica ed elettromeccanica da realizzare presso i laboratori di un istituto superiore, in modo che gli studenti interessati potessero ancor di più essere sicuri sulla scelta che da li a pochi mesi avrebbe condizionato tutto il loro percorso di studi.
La scorsa settimana nell’organizzare i corsi di recupero per alcuni miei allievi di terza superiore, scartabellando tra le mie vecchie dispense ho ritrovato la cartellina del progetto, tutto in versione analogica 🙂 (progetto scritto su carta a mano) e non so per quale motivo ho collegato questi appunti e il ricordo di quell’esperienza ad alcune frasi che ho scritto qualche tempo fa nell’articolo: Chi ha paura della matematica? L’insegnante o l’allievo?

Gli studenti giungono all’istituto professionale perché ultima spiaggia, il professionale ormai è il luogo che accetta chi ha fallito in altre scuole per causa propria o per insegnanti che non sono riusciti ad instaurare un rapporto educativo con l’allievo.

non voglio che l’istituto professionale “sia scuola di parcheggio”, ma luogo di studio e creatività…

piantala di sognare!

Toriniamo al piccolo corso.
Poiché non volevo che queste poche righe venissero cestinate ho deciso di renderle pubbliche, magari potranno servire per implementare da altri idee migliori, o ancora per aiutarmi, ampliando questi appunti, ad aiutare coloro che passando per insuccessi scolastici tra un liceo ed ITIS arrivano all’IPSIA senza sapere cos’è una resistenza o un condensatore, come fare con queste persone?

Butto giù tutto e ricostruisco le fondamenta del loro sapere disordinato, piano piano… prima con un leggerissimo corso di elettronica, poi si va verso la robotica per aumentare la loro voglia di sperimentare e scoprire, poi senza che l’allievo se ne accorga si trova ad usare diodi, transitor, operazionali e magicamente dispositivi più complessi come Arduino.

ancora il sognatore…. piantala!

Bene dopo questa serena e tranquilla introduzione 🙂 ho posto le basi per riscrivere in digitale, quei brevi appunti in una decina di articoletti semplici semplici che introdurranno all’elettronica in questa versione ho eliminato alcuni disegni integrando con video da YouTube, ma la semplicità è rimasta.

Questo microcorso è dedicato a:

  • tutti quegli allievi che hanno perso la voglia di studiare
  • agli studenti che non hanno mai sentito parlare di corrente elettrica
  • a chi è giunto al professionale perché non sapeva dove andare
  • all’autodidatta che vuole incominciare a capirci qualcosa
  • a mia suocera che mi guarda “stranita” quando gioco con schede elettroniche e diodi led
  • al collega che si ostina a spiegare le Trasformate di Lapace ad allievi che fanno difficoltà a risolvere derivate ed integrali
  • al collega di sostegno che con la scusa che non conosce l’elettronica vuole affibbiare a me la piena gestione didattica dell’allievo con difficoltà… caro collega ora ti frego, usa questi appunti per imparare e per far imparare l’allievo che segui.

Benvenuti al microcorso di elettronica per principianti.

Vai alla prima lezione.

Scultura cinetica

Sono rimasto impressionato dalla scultura cinetica di Seth Goldstein in grado di legare e slegare perfettamente una cravatta. E’ incredibile come azioni apparentemente semplici per un essere umano, viste realizzate da un automa risultano complesse e allo stesso tempo armoniose.

Un semplice simulatore di circuiti elettronici on-line

Se avete necessità di introdurre i concetti di base sull’elettricità, in una classe prima superiore o in una terza media, vi propongo oggi un simulatore di circuiti elettrici online essenziale, basato su Flash Player 10 con un’interfaccia grafica semplice e gradevole. Potete realizzare circuiti con batterie, luci, resistenze, ventole con possibilità di impostare il valore. Disponibili anche strumenti di misura: voltmetri, amperometri e ohmetri. Per ogni componente potete variarne il valore. Se volete provare il simulatore seguite il link.