Archivi autore: admin

Appunti di programmazione su Arduino: ingressi e uscite digitali

Continuano le lezioni sulla programmazione su Arduino, se avete necessità di consultare le lezioni precedenti guardate la sezione Appunti di programmazione che trovate nella sezione Arduino di questo sito.

pinMode(pin, mode)

Utilizzato all’interno del void setup(), consente di configurare un determinato pin e stabilisce se deve essere un pin di INPUT o di OUTPUT.

pinMode(pin, OUTPUT);        // imposta 'pin' come output

I pin digitali di Arduino sono per default impostati come pin di INGRESSO, perciò non è necessario dichiararli esplicitamente come input con la pinMode(). Nel caso si debba utilizzarli come pin di uscite è indispensabile impostare il pin come OUTPUT con il comando pinMode(pin, OUTPUT). I pin configurati come input si dice che sono in uno stato di alta impedenza.

Il processore Atmega presente sulla scheda Arduino è dotata, sui ogni piedino di ingresso digitale, di una resistenza di pull-up da 20KOhm che abilitata via software consente di impostare il pin come input. Le istruzioni sono le seguenti:

pinMode(pin, INPUT);       // imposta 'pin' come input
digitalWrite(pin, HIGH);   // attiva la resistenza di pull-up,
                           //'pin' viene impostato HIGH

Le resistenze di pull-up vengono normalmente utilizzate per connettere gli input come interruttori.

Si noti che nell’esempio sopra non viene configurato un pin come output, è un modo per attivare il pull-up interno.

I pin configurati come OUTPUT sono detti a bassa impedenza e sono in grado di fornire 40 mA (milliampere) ad altri dospositivi o circuiti. Questa è una corrente sufficiente per accendere un LED (non dimenticate di inserire in serie una resistenza), ma non è una corrente sufficiente per pilotare la maggior parte dei relè, bobine o motori.

I cortocircuiti sui piedini di Arduino possono danneggiare o distruggere i pin di output o danneggiare l’intero chip Atmega. Quando si ha la necessità di utilizzare i pin come output per collegare dispositivi esterni è buona prassi inserire in serie al pin un resistore da 470 Ohm o 1 KOhm.

digitalRead(pin)

Legge lo stato di uno specifico pin digitale ed il valore restituito può essere HIGH o LOW. Il ‘pin’ può essere specificato come una variabile o una costante (0-13).

value = digitalRead(Pin);   // imposta 'value' al valore
                            // letto sul pin

digitalWrite(pin, value)

Pone a livello HIGH o LOW l’uscita digitale ‘pin’. Il ‘pin’ può essere specificato come una variabile o una costante (0-13).

L’esempio che segue legge un pulsante collegato ad un ingresso digitale e visualizza su un LED, connesso ad una uscita digitale, quando il pulsante viene premuto:

int led = 13;  // il LED è connesso all'uscita digitale 13
int pin = 7;   // il pulsante è collegato al pin digitale 7
int value = 0; // variabile per memorizzare il valore letto

void setup()
{
  pinMode(led, OUTPUT); // imposta il pin 13 come OUTPUT
  pinMode(pin, INPUT);  // imposta il pin 7 come INPUT
}

void loop()
{
  value = digitaRead(pin);   // imposta 'value' uguale
                             // al valore letto su 'pin'
  digitalWrite(led, value);  // imposta 'led' al valore
                             // della variabile 'value'
}

Per le lezioni precedenti consultare la sezione Appunti di programmazione che trovate nella pagina Arduino di questo sito.

Il piacere di…

Si riparte… idee, studio, lavoro e tanta serenità.

The pleasure of from Vitùc on Vimeo.

fonte: ilpost.it

Anche la carta può camminare

Un robot bipede fatto completamente di carta, nessun elemento di legno. Il movimento viene fornito dall’energia accumulata in un elastico. Un’opera di ingegneria meccanica ed artistica stupenda!

Fonte: Mechanical Paper Model

Edizione Unificata Dei Carnevali Scientifici Di Settembre: 1° Chiamata Per I Contributi Di Fisica

In occasione del 4� Congresso IAA (International Academy of Astronautics) �Cercando tracce di vita nell�Universo�, che si terr� a San Marino dal 25 al 28 settembre 2012, presso il Centro Congressi Kursaal sar� inaugurata l�Edizione Unificata dei Carnevali scientifici (di Chimica e di Fisica) con la deadline, per l�invio dei contributi, fissata al 10 settembre.

L’uscita in edizione congiunta dei carnevali scientifici � una opportunit� davvero unica, sia sotto il profilo scientifico che quello mediatico.

Il tema del carnevale scientifico � sicuramente affascinante e dar� spunto sicuramente ad articoli scientifici molto interessanti e di enorme rilevanza didattica: “Cercando tracce di vita nell�Universo”. Come in ogni edizione gli articoli potranno essere declinati a piacimento, spaziando, come suggerisce l’amica Annarita:

…dalla storia del Wow signal, del Big Ear telescope, del Progetto Drake e degli studi di sorgenti radio a banda stretta allo studio di Giuseppe Cocconi e Philip Morrison, i quali sostenevano che le frequenze di trasmissione pi� adatte alle comunicazioni interstellari fossero quelle tra 1 e 10 gigahertz. E poi, i progetti SERENDIP, META, MOP, BETA, ATA, SETI@home, gli esperimenti SETI ottici, la caccia ai pianeti extrasolari, la Missione Kepler, il paradosso di Fermi, il messaggio di Arecibo, l�equazione di Drake, il principio antropico, solo per citare alcuni argomenti…

Gli argomenti proposti sono soltanto spunti riguardo al tema del Carnevale della Fisica di settembre, ma naturalmente, come consuetudine saranno bene accetti anche i contributi fuori tema, insomma date sfogo alla vostra voglia di comunicare la scienza 🙂

I carnevali scientifici saranno online entrambi il 25 settembre 2012.

Per maggiori informazioni sulla partecipazione al congresso di San Marino e alla partecipazione al carnevale unificato di chimica e fisica, vi invito alla lettura dell’articolo sul blog Scientificando di Annarita Ruberto.

Buona scienza a tutti.

Couis 1: contemplare e sonnecchiare sulla cresta della montagna

Ieri 2 agosto sul Couis 1 (2700 m) – Valle d’Aosta con la famiglia.
Un panorama stupendo, da Cogne al Monte Bianco fino al Cervino, difronte a noi il Monte Grivola.

Click sull’immagine per vedere il panorama a 360� (7051px x 715px – 5,1MB)


Visualizzazione ingrandita della mappa