cos'è arduino

arduino è una scheda dotata di una memoria flash da 32 k bytes (non tantissimi ma sufficientiper gestireprogrammianche abbastanza complessi), 2 kbyte di sdramed 1 kbyte di eeprom. E’priva disistema operativo ed e’in grado di gestire un solo programma per volta. Quando sicostruisce o si ricostruisce un prototipo bisogna quindi caricare, da pc, il relativo programma. Una caratteristica fondamentale del la memoria flash e’ la capacita’ di mantenere il suo stato anche in assenza di alimentazione per cui un programma, una volta caricato sulla scheda, resta memorizzato e disponibile sino a quando non ne viene caricato un altro.

 

Nel disegno, oltre al micro controllore (atmega328), sono riconoscibili i connettori (altrimenti chiamati porte o pin) ai quali collegare i sensori o gli attuatori (ledue file orizzontali situate sul lato superiore e inferiore della scheda), la presa USB, per collegare la scheda ad un pc e la presa di alimentazione esterna, indispensabile per garantire il funzionamento anche quando non e’ attivo ilcollegamento USB con un computer.

le parti

·        GND digital ground: collegamento di terra (polo negativo) per i componenti (digitali o analogici) collegati alla scheda;

 

·        Porte digitali I/O: porte di ingresso o uscita (Input/Output) di segnali digitali. Sono numerate da 2 a 13 e sono singolarmente indirizzabili dal micro controllore. Il loro utilizzo non è predefinito per cui in un programma si può ad esempio utilizzare la porta 13 come porta di output alla quale, sempre per esempio, collegare un led, e la porta 12 come porta di input alla quale collegare un sensore (ad esempio un pulsante) ed in un altro programma fare esattamente l’opposto. Tipicamente, su ogni porta presa in considerazione dal programma, Arduino assegnerà o rileverà (a seconda che la porta sia stata definita di output o di input) il valore 1 (HIGH) in caso di “porta attivata” ed il valore 0 (LOW) in caso di “porta disattivata”. Il valore 1 implica che attraverso la porta circoli una tensione di 5 volt mentre il valore 0 implica che attraverso la porta non circoli alcuna tensione. In realtà le cose non sono così nette e se alla porta sono collegati dei sensori è possibile che circoli comunque una tensione, anche quando dovrebbe essere rilevato uno stato “LOW”. Arduino considera LOW una tensione in entrata minore di 1,5 volt, considera HIGH una tensione superiore a 3 volt e non fornisce alcun responso (mantiene il preesistente valore HIGH o LOW) per le tensioni comprese tra 1,5 e 3 volt. Alcune porte digitali e più precisamente la 3, 5, 6, 9, 10 e 11 possono essere utilizzate anche in modalità PWM (Pulse Width Modulation) e cioè possono emettere un segnale di tipo analogico e quindi aumentare o diminuire il voltaggio in uscita per, ad esempio, aumentare o diminuire l’intensità luminosa di un led. Le porte 2 e 3, inoltre, sono abilitate a ricevere segnali di interrupt anche mentre Arduino è in stato di “sleep”.

 

·        Uscita Seriale TX: porta di output seriale, utilizzabile per inviare dati ad un’apparecchiatura esterna. Può anche essere utilizzata come porta digitale ma è soggetta ad interferenze dovute, forse, alla sua duplice funzione.

 

·        Entrata Seriale RX: porta di input seriale, utilizzabile per ricevere dati da un’apparecchiatura esterna. Puo’ anche essere utilizzata come porta digitale ma, sempre per esperienza personale, può essere soggetta ad interferenze dovute probabilmente alla sua duplice funzione.

 

·        Caricamento del bootloader (in circuit serial programmer): connettori utilizzati per caricare il bootloader, e cioè un piccolo programma stabilmente residente sulla scheda, che al momento dell’accensione avvia il microprocessore e lancia il programma utente. Sono connettori normalmente non utilizzati da coloro che si avvicinano per la prima volta ad Arduino e di fatto non tratti in queste note.

 

·        Microcontrollore ATmega328:  è il cuore della scheda, le cui specifiche sono state in parte già dichiarate. È un minicomputer che incorpora un microprocessore da 16 mhz, una memoria ram da 32 k byte, una eeprom, una sdram, i  relativi bus, il software di boostrap (il bootloader, e cioè il software di inizializzazione del microprocessore) ed il programma di gestione della connessione usb.

 

·        Porte analogiche: porte di input, numerate da 0 a 5, alle quali possono essere collegati dei sensori di tipo analogico (es. sensore di temperatura oppure sensore di luce). Le porte analogiche sono porte di input e generano un valore che va da 0 a 1023, a seconda della tensione rilevata sul sensore (il valore 0 corrisponde a 0 volt mentre il valore 1023 corrisponde a 5 volt). Attraverso una porta analogica è quindi possibile ricevere segnali come il livello di una temperatura o il livello di luminosità, che non potrebbero essere rappresentati da un semplice 0 oppure 1. Al di la del nome, inoltre, queste porte possono anche essere utilizzate anche come porte digitali di output ed in questo caso sono indirizzabili con i numeri da 14 a 19(la porta 14 è la A0 mentre la porta 19 è la A5). Le porte analogiche A4 ed A5, infine, gestiscono anche il protocollo SDA/SCL e quindi possono essere utilizzate per collegare componenti complessi, dotati di un circuito I2C o comunque in grado di dialogare tramite il bus SDA/SCL. Su Arduino uno R3 i segnali di gestione del bus, sono anche presenti, in replica, sulle porte SCL/SDA, poste a sinistra della porta AREF

 

·        Alimentazione secondaria Vin (voltage input): porta attraverso la quale può essere  fornita energia alla scheda tramite un’alimentazione esterna (da 7 a 12 volt cc).