La scheda UNO R3 prodotta dalla ELEGOO è molto simile all’originale, la confezione proposta venduta a circa 10€ comprende oltre alla scheda un cavo USB lungo circa 50 cm.
La stessa scheda è anche presente all’interno del Basic Starter Kit sempre prodotto da Elegoo, per informazioni vedere l’artico dedicato. L’unica differenza è il colore del PCB che è di colore blu
Indice
Dove trovare la scheda
La scheda può essere trovato su siti on line, quali
Sito Amazon | Sito AliExpress |
La scheda è anche presente all’interno di alcuni kit venduti sempre da ELEGOO, come il Basic Starter Kit
Sito Amazon | Sito AliExpress |
Basic Starter Kit – Confezione
Descrizione dei pin
Scheda Elegoo e Arduino a confronto
Foto della scheda UNO R3 prodotta dalla ELEGOO
Foto della scheda Arduino UNO R3 ORIGINALE
Processore
Il cuore della scheda Arduino UNO è rappresentato dal processore ATMEGA328 un microcontrollore ad alte prestazioni con bus a 8 bit prodotto dalla Atmel con architettura di tipo RISC (acronimo di Reduced InstructionSet Computer) le caratteristiche salienti di questo processore sono:
- Memoria flash da 32KB ISP con possibilità di lettura/scrittura
- EEPROM da 1KB
- SRAM da 2KB.
- 23 porte general purpose di I / O
- 32 registri di lavoro general purpose
- Tre flessibili timer / contatori con modalità di confronto
- Possibilità dinterrupts esterni e interni,
- Una seriale USART programmabile,
- Uninterfaccia seriale a 2fili compatibile I2C
- Una porta SPI seriale
- 6 convertitori A / D a 10-bit
- Timer watchdog programmabile con oscillatore interno
- Cinque modalità di risparmio energetico selezionabili via software.
- Tensione di funzionamento compresa tra 1,8-5,5 volt.
Dettaglio sezione processore ATMega328
Processore ATMEGA328
Interfaccia seriale
Per convertire i segnali da USB a TTL e viceversa viene utilizzato un microcontrollore ATmega8U2 in cui è integrato un transceiver USB liberamente programmabile.
In questo modo a differenza del chip della FDTI di vecchia generazione non è necessario installare appositi driver, poiché son usati i driver comuni della periferica USB già disponibili con il sistema operativo. La presenza del connettore ICSP1 permette agli utenti avanzati di riprogrammare il processore, trasformando la scheda UNO R3 in un diverso tipo di dispositivo USB. Per esempio si potrà usare la scheda come tastiera, mouse, disco driver o come un’interfaccia MIDI, ecc Il clock del processore è fornito di quarzo da 16 MHz Q1
La memoria
Il microcontrollore ATmega328 dispone di 32 kB di memoria di programma, della quale 0,5 kB sono usati per il bootloader, abbiamo poi di 2 kB di SRAM (Static Random Access Memory) ed 1 kB di EEPROM che possiamo leggere o scrivere utilizzando la EEPROM library.
Pin connettore POWER
Tutte le tensioni sono disponibili sui pin del connettore POWER
-
Vin; restituisce la tensione applicata dall’alimentatore al plug e può essere usato per alimentare altri circuiti che dispongano già di un regolatore di tensione (ad esempio gli shield applicati al modulo);
-
GND;è il contatto di massa (GND).
-
5 V;fornisce i 5 volt prelevati dall’uscita del regolatore interno ed è utile per alimentare altri circuiti compatibili con i 5 volt;
-
3.3V; questo pin fornisce i 3,3 volt ricavati dal regolatore corrispondente e consente di alimentare circuiti compatibili con tensioni di 3,3 volt (la massima corrente prelevabile e di 150 mA);
-
Reset.Portando questa linea a livello basso permette di resettare il microcontrollore. Generalmente utilizzato per aggiungere un pulsante di reset sugli shields esterni. La funzione corrispondente può essere attivata anche tramite il pulsante presente sulla scheda Arduino;
-
IOREF, consente agli shield di adattarsi alla tensione fornita dalla scheda.
Pin connettore DIGITAL (PWM ~)
Ciascuno dei 14 pin digitali presenti sulla Arduino Uno può essere utilizzato indifferentemente come un ingresso o un’uscita, utilizzando le funzioni pinMode(), digitalWrite(), e digitalRead().
Le uscite operano a 5 volt e ogni pin può fornire o ricevere un massimo di 40 mA ed è dotato di una resistenza pull-up (sconnessa di default) del valore di 20-50 kΏ. Inoltre, alcuni pin hanno funzioni specializzate:
-
Pin: 0 (RX) e 1 (TX): possono essere utilizzati per ricezione (RX) e trasmissione (TX) dei dati seriali TTL. Questi sono collegati ai pin corrispondenti della porta USB-TTL del processore ATmega8U2.
-
Pin 2 e 3: possono essere configurati come trigger per eventi esterni, come ad esempio il rilevamento di un fronte di salita o di discesa di un segnale in ingresso.
-
Pin 3, 5, 6, 9, 10 e 11: possono essere configurati via software con la funzione analogWrite() per generare segnali PWM con risoluzione di 8 bit. Tramite un semplice filtro RC è possibile ottenere tensioni continue di valore variabile.
-
Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK): possono essere programmati per realizzare una comunicazione SPI, utilizza unapposita libreria SPI.
-
Pin 13 è connesso a un LED interno alla scheda, utile per segnalazioni di diagnostica. Quando il livello del pin è HIGH, il LED è acceso, quando il livello del pin è LOW, è spento.
-
GND; è il contatto di massa (GND).
-
AREF. Tensione di riferimento per gli ingressi analogici. Utilizzato con analogReference().
Pin Analogici
La Uno R3 ha 6 ingressi analogici etichettati da A0 ad A5, ognuno dei quali fornisce 10 bit di risoluzione (in pratica 1024 valori diversi). Per impostazione predefinita possono misurare una tensione di 5V riferita a massa, anche se è possibile cambiare l’estremità superiore del loro intervallo utilizzando il pin AREF e la funzione analogReference().
Inoltre, come per i pin digitali alcuni piedini hanno funzionalità specifiche: I pin A4 (SDA) e A5 (SCL). permettono di realizzare una comunicazione nello standard I2C a due fili, in abbinamento alla libreria Wire.
Primo collegamento
La scheda scheda UNO R3 ELEGOO arriva chiusa in un sacchetto antistatico, dopo averlo aperto occorrerà collegare il cavo fornito con la scheda stessa che dovrete inserire in una porta USB.
appena collegata al PC, sarà riconosciuta dal sistema, sarà richiesto di caricare il relativo driver, se avete già utilizzato delle schede Arduino UNO, non ci sono problemi e l’installazione andrà a buon fine, creando automaticamente una porta seriale, che dovrete fornire all’ IDE per la futura programmazione.
Al momento della costruzione della scheda è già stato caricato il programma “Blink”, per cui il led L inizierà a lampeggiare, siete ora pronti ad utilizzare la scheda per i vostri progetti.
Realizziamo un sensore di luce
Per testare la scheda UNO R3 ELEGOO possiamo realizzare un semplice sensore di luce, per realizzare questo progetto ci occorre:
- la scheda UNO R3
- un foto resistore
- un buzzer
- un resistore dal valore di 10 kΩ
- dei cavi colorati
I componenti necessari potranno essere trovati per esempio nel Basic Starter kit di Elegoo.
Descrizione del funzionamento
Quando una fonte luminosa colpisce la superficie del foto resistore, la sua resistenza diminuisce, essendo inserita in cui circuito insieme alla resistenza R1 con cui forma un partitore di tensione, il valore della tensione in uscita si modifica.
Questo valore viene letto tramite una porta analogica che convertirà il valore letto in un valore digitale.
Questo potrà essere valutato dal programma, che in base alla sogli impostata, attiverà la porta digitale a cui è collegati il buzzer che alimentato emetterà una nota acustica.
Sketch del test
Segue lo Sketch del breve programma utilizzato. Dopo aver dichiarato a quale pin sono collegati il buzzer e il foto resistore, nella sezione setup, si imposta il pin del buzzer come output.
Quindi nella sezione Loop, dopo aver letto il valore fornito dal foto resistore inizia il ciclo if, se il valore è inferiore a 100 (una fonte di luce colpisce il foto resistore) viene emesso un suono, se maggiore, foto resistore non illuminato il buzzer non viene attivato.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
int Buzzer = 2; //Il buzzer è collegato al pin digitale 2 int lightPin = 0; //La fotoresistenza è collegata al pin analogico 0 int light; //Variabile in cui è salvato il valore della luminosità letta void setup() { Serial.begin(9600); //inizializzo la porta seriale pinMode(Buzzer, OUTPUT); //Il pin a cui è connesso il buzzer è impostato come uscita } void loop() { light = analogRead(lightPin); //Valore della luminosità Serial.println(light); if (light <= 100) { //se il valore letto è <= 100 emetto il suono digitalWrite(Buzzer, HIGH); // emissione suono } else { digitalWrite(Buzzer, LOW); } //Non emette suono } |