Scheda Arduino UNO R3
Guida dettagliata a tutti i pini della scheda, raccolta estesa di esempi di programmazione C++ e collegamento all'archivio dei progetti realizzati in laboratorio.
Specifiche e Guida Completa ai Pini (Pinout)
Fai clic sui blocchi del diagramma per esplorare la funzione di ogni singolo gruppo di pini
Ispezione Pin / Componente
Seleziona un elemento
Fai clic su una sezione della scheda nel diagramma per visualizzarne la spiegazione dettagliata.
Mappatura Protocolli di Comunicazione
- UART (Seriale): Pin 0 (RX) e Pin 1 (TX)
- I2C / TWI: Pin A4 (SDA) e Pin A5 (SCL)
- SPI: Pin 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK)
- Interruzioni Esterne: Pin 2 (INT0) e Pin 3 (INT1)
Tabella Riassuntiva dei Pini
| Nome Pin | Tipo | Tensione / Segnale | Descrizione & Funzione Speciale |
|---|---|---|---|
| Digitali 0 - 13 | GPIO (Input / Output) | 0V - 5V (Max 40mA per pin) | Ingressi/uscite digitali generiche configurabili via software. |
| PWM (~3, ~5, ~6, ~9, ~10, ~11) | Digital Output PWM | Onda quadra a duty-cycle variabile | Generazione di uscite analogiche simulate mediante `analogWrite()`. |
| Analogici A0 - A5 | Input Analogico (o GPIO) | 0V - 5V (Lettura ADC 10-bit) | Lettura di sensori analogici (potenziometri, sensori di luce/temperatura). |
| 5V & 3.3V | Alimentazione Output | 5V DC / 3.3V DC | Forniscono tensione regolata per alimentare componenti esterni e sensori. |
| GND | Massa (Ground) | 0V | Punto di riferimento a potenziale zero per chiudere i circuiti. |
| Vin | Alimentazione Input | 7V - 12V DC | Pin per alimentare la scheda da una sorgente esterna non regolata. |
Esempi di Programmazione Arduino (C++)
1. Lampeggio LED (Blink)
BASEControllo del LED integrato sulla scheda al PIN 13.
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
2. Pulsante & LED (Input)
BASELettura dello stato digitale di un pulsante con resistenza pull-down.
const int btnPin = 2;
const int ledPin = 13;
void setup() {
pinMode(btnPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
int st = digitalRead(btnPin);
digitalWrite(ledPin, st);
}
3. Sensore HC-SR04
INTERMEDIOMisurazione della distanza tramite ultrasuoni e porta seriale.
const int trig = 9, echo = 10;
void setup() {
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(trig, LOW); delayMicroseconds(2);
digitalWrite(trig, HIGH); delayMicroseconds(10);
digitalWrite(trig, LOW);
long dur = pulseIn(echo, HIGH);
Serial.println(dur * 0.034 / 2);
delay(500);
}
4. Servomotore SG90
BASERotazione angolare guidata da segnale PWM tramite Servo.h.
#include <Servo.h>
Servo s;
void setup() {
s.attach(9);
}
void loop() {
s.write(0); delay(1000);
s.write(90); delay(1000);
s.write(180); delay(1000);
}
5. Display LCD 16x2 I2C
INTERMEDIOScrittura di testo su schermo LCD utilizzando il bus I2C.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
lcd.init(); lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Lab. Carconi");
}
void loop() {}
6. Sensore Temperatura LM35
INTERMEDIOConversione della tensione letta dal pin analogico A0 in gradi Celsius.
const int lm35Pin = A0;
void setup() {
Serial.begin(9600);
}
void loop() {
int val = analogRead(lm35Pin);
float mv = (val / 1024.0) * 5000;
float tempC = mv / 10.0;
Serial.println(tempC);
delay(1000);
}
Progetti Sviluppati in Laboratorio
Rover Evita-Ostacoli
Prototipo robotico con sensore ad ultrasuoni montato su servomotore per la scansione ed evitamento autonomo degli ostacoli.
Centrale Domotica Anti-Fuga Gas
Sistema di sicurezza per il rilevamento di gas/fumo via sensore MQ-2 con blocco automatico della linea ed allarme sonoro.
Serra Smart Automatizzata
Controllo di micro-irrigazione basato sulla misurazione dell'umidità del terreno e azionamento di una mini pompa ad immersione.